* Machinedrum OS X.04 Release information *
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

This is an unofficial firmware release and is not
affiliated or endorsed by Elektron.

How to upgrade:
−−−−−−−−−−−−−−−
* Hold down the [FUNCTION] button while powering up.
* This should take you to the Machinedrum boot menu.
* Enter the "MIDI Upgrade" mode by pressing [5 LT].
* Send either the SYSEX or the MIDI firmware file to the Machinedrum.

To transfer the SYSEX file we recommend using C6 − Sysex Tool by Elektron.
After starting the transfer you should see the trig LED’s lighting
up, and when the update is done the unit should reset itself and
boot the new OS.

Detailed instructions are available in the EARLY STARTUP MENU chapter
in the latest Machinedrum users manual.

PLEASE BACKUP ALL USER DATA VIA SYSEX BEFORE UPGRADING.
BETTER SAFE THAN SORRY.

The [redacted] development team

List of changes from Machinedrum SPS-1 OS X.03 to X.04
------------------------------------------------------

Updates
-------

** Three new GND machines are now available. **
GND-SN-PRO is a compatible model for GND-SN, featuring up to 4 sine OSCs.
GND-SW is a sawtooth/triangle machine with up to 3 variable waveform OSCs.
GND-PU is a pulse wave machine with adjustable duty ratio and up to 3 OSCs.
All new GND machines have relative pitches for additional OSCs, and UNISON
capability.

** The following machines gain a new tuning setting: **
GND:  SN SW PU
TRX:  BD SD XT RS CB CL XC B2 S2
EFM:  BD SD XT CP RS CB HH CY
The "EDIT KIT" menu is updated to incorporate the tuning setting per-track. In
addition to SYNTH, MACHINE and RELATE, one can use [LEFT]/[RIGHT] keys to
access the tonality setting in the right upper corner of the menu, and toggle
between "DEFAULT" and "TONAL" with [UP]/[DOWN] keys.

"TONAL" tuning implements a quater-tone equal tempered tuning scale across the PTCH
parameter of selected machines. When enabled, TONAL has the added benefit of
increasing the machine's maximum tuning range.

** Machinedrum Kit version increased to 64.1 **
Kit dumps from X.04 firmware will be tagged with version 64 revision 1.
Machinedrums running an older firmware will not support these dumps indicated by
a "SYSEX ERROR 4" message.

Changes from Kit Version 4.1 to 64.1:

When set, bit 17 of uint32_t model indicates the model tuning is tonal.

** TRX-S2 decay and noise parameters sensitivity has been improved" **

** New LFO shapes are available: SINE, REV-LINEAR, REV-EXP, NOTCH and STEP. **

** Trigger groups can be arbitrarily chained. **
For example, you can set track 1 to trigger track 2 and track 2 to trigger
track 3, and thus track 1 will trigger all three tracks.

** Triggers can now be previewed in step editing mode. **
Hold a P-locked trigger and press [ENTER] will preview the P-locked sound.

** Solo Mode **
From the mute menu, you can now toggle between MUTE/SOLO mode with [ENTER].
The toggle also functions as a mute inversion tool, so that you can switch
between two playback states.

** Mute/solo actions are now transmitted via MIDI. **

** Trig Interface (TI) Extended Response: **

The TI has been extended to respond to press and release of some command keys.

  MIDI Byte | Purpose
----------------------------------------
(Universal
SYSEX)      | Realtime Universal System Exclusive Header
        $0D | Status for parameter %aaaaaa (see list below)
  %0aaaaaaa | if (aaaaaaa >= 64) Button Press
            | else { Button Release }
            | aaaaaaa = [ 0x00 .. 0x0F ] = Trigs 0 to 16
            |         = 0x25 = FUNCTION
            |         = 0x26 = FUNCTION + LEFT
            |         = 0x27 = FUNCTION + RIGHT
            |         = 0x28 = YES
            |         = 0x29 = NO
            |         = 0x2a = SCALE
            |         = 0x30 = UP
            |         = 0x31 = DOWN
        $f7 |

** Status request 0x5b (Assign Machine Bulk): has been updated to support machine tuning **

SYSEX status request:

  MIDI Byte | Purpose
----------------------------------------
(SYSEX init)|
        $70 | Status for parameter %aaaaaa (see list below)
  %00aaaaaa |
  %0bbbbbbb | <Extended paramater>
        ... | <additional data>
        $f7 |

<Extended functionality>

0x5b Assign Machine Bulk:

  %0000bbbb | Select track bbbbb
  %0bbbbbbb | Assign machine Model
  %000000dc | c = 0 = SPS-1, c = 1 = SPS-1UW
            | d = 1 = TONAL, d = 0 = DEFAULT

  <Optional>
  As previously described.

Bug fixes
---------

Sound triggered by external MIDI is no longer phase-inverted.
Status request 0x5b would ignore ROM-48, and not support short messages in some circumstances.

List of changes from Machinedrum SPS-1 OS X.02 to X.03
------------------------------------------------------

The X.03 firmware features additional expansion of the Machinedrum's
MIDI SYSEX Specificaiton.

We have included more efficient commands for updating multiple kit parameters
simultaneously and functionality for controlling the Trig LEDs.

Updates
-------

When TrigInterface mode is enabled, the Machinedrum will automatically
exit any menu using the TrigInterface such as Record Mode and Mute menu.

When sending kit to workspace, the workspace kit will be copied to the
UNDO kit. [ Function ] + [ Extended ] will therefore reload the workspace
kit.

SYSEX status request:

  MIDI Byte | Purpose
----------------------------------------
(SYSEX init)|
        $70 | Status for parameter %aaaaaa (see list below)
  %00aaaaaa |
  %0bbbbbbb | <Extended paramater>
        ... | <additional data>
        $f7 |

0x01 Current global slot (0 to 7)
0x02 Current kit number (0 to 63)
0x04 Current pattern number (A1=0, A2=1, ... B1=16, ...)
0x08 Current song number (0 to 31)
0x10 Current sequencer mode (pattern mode=0, song mode=1)
0x20 Current lock mode (classic=0, extended=1)

<Extended functionality>

0x30 Firmware capabilities:
  Returns a multibyte bitmask indicating available firmware features

0x31 Enable/disable Trig Interface mode:
  %0000000b | bb: 0x01 = Enable
  %0000000b | bb: 0x00 = Disable

0x32 Enable/disable Track Select mode:
  %0000000b | bb: 0x01 = Enable
  %0000000b | bb:  0x00 =  Disable

0x33 Query mute state

0x34 Query sample slot:
  %0bbbbbbb | Slot Number

0x35 Set Trig Interface LEDs:
  %0bbbbbbb | LEDs 0 -> 6
  %0bbbbbbb | LEds 7 -> 14
  %0000aabb | bb: Leds 15 -> 16
              aa: 0 = Overlay mode, 1 = StepEdit mode, 2 = Exclusive

0x40 Kit Dump Workspace

0x41 Kit Recv Workspace:
  %0bbbbbbb | kit data 0
  ....
  %0bbbbbbb | kit data end

0x42 UndoKit Sync:
  Copy contents of workspace kit into the UNDO kit.

0x5b Assign Machine Bulk:
  %0000bbbb | Select track bbbbb
  %0bbbbbbb | Assign machine Model
  %0000000c | 0 = SPS-1, 1 = SPS-1UW

  <Optional>
  %0bbbbbbb | Synthesis parameter 0
  ...       |
  %0bbbbbbb | Synthesis parameter 23

  <Optional>
  %0000bbbb | LFO destination track
  %0bbbbbbb | LFO destinaiton param number
  %0bbbbbbb | LFO shape1
  %0bbbbbbb | LFO shape2
  %0bbbbbbb | LFO type

  <Optional>
  %0000bbbb | trig group
  %0000bbbb | mute group

  <Optional>
  %0bbbbbbb | track level

0x5c Set Track Routing Bulk:
  %0bbbbbbb | Track 1 Destination
  ...
  %0bbbbbbb | Track 16 Destination

0x5d Set FX Delay Bulk:
0x5e Set FX Reverb Bulk:
0x5f Set FX EQ Bulk:
0x60 Set FX Dynamics Bulk:
  %0bbbbbbb | FX parameter 0
  ...
  %0bbbbbbb | FX parameter 7

0x61 Set FX Bulk:
  %0bbbbbbb | FX parameter 0
  ...
  %0bbbbbbb | FX parameter 23

List of changes from Machinedrum SPS-1 OS 1.71 to X.02
------------------------------------------------------

Updates
-------

The versioning scheme has changed to 'X.vv' to indicate this is not an official
firmware.

Bug fixes
---------

Fix the disappearance of RAM machines on MKI models.


List of changes from Machinedrum SPS-1 OS 1.70 to 1.71
------------------------------------------------------

Updates
-------

A hidden machine, TRX-S2, is now available. The machine can be accessed
in the TRX category, below TRX-B2.

Sample slot query command 0x34 now returns information for all ROM slots.

  MIDI Byte | Purpose
----------------------------------------
(SYSEX init)|
        $70 | Status query.
        $34 | Sample slots query. The slot id param is removed.
        $f7 |

The response message contains n, the number of available slots (30 for MKI and 
48 for MKII), followed by n 5-byte slot information.

  MIDI Byte | Purpose
----------------------------------------
(SYSEX init)|
        $72 | Status response.
        $34 | Sample slots query response.
   %0aaaaaa | n, the number of available slots.
        ... | ROM-01, 4 bytes ASCII name (7-bit)...
   %000000b | ... b=0 if slot is empty
        ... | ROM-02, 4 bytes ASCII name (7-bit)...
   %000000b | ... b=0 if slot is empty
        ... |
        $f7 |

Bug fixes
---------

SYSEX kit dump receive bug:
  Fixed regression when storing kits to a specific slot.

List of changes from Machinedrum SPS-1 OS 1.63 to 1.70
------------------------------------------------------

Updates
-------

Updates to the MD's SYSEX specification are listed below.

SYSEX kit request:

  MIDI Byte | Purpose
----------------------------------------
(SYSEX init)|
        $53 | Kit dump request ID
  %0aaaaaaa | Send kit number %0aaaaaa ( 0 to 63 )
              If kit number >= 64, the current unsaved kit data (workspace)
              is sent.

SYSEX kit sysex dump:

  MIDI Byte | Purpose
----------------------------------------
(SYSEX init)|
        $52 | Kit dump ID
        $04 | Version
  %0aaaaaaa | Kit originalPosition %0aaaaaa ( 0 to 63 )
              If kit number >= 64, the kit is copied to the current
              unsaved kit data (workspace)

SYSEX status request:

  MIDI Byte | Purpose
----------------------------------------
(SYSEX init)|
        $70 | Status for parameter %aaaaaa (see list below)
  %00aaaaaa |
  %0bbbbbbb | <Extended paramater>
        $f7 |

0x01 Current global slot (0 to 7)
0x02 Current kit number (0 to 63)
0x04 Current pattern number (A1=0, A2=1, ... B1=16, ...)
0x08 Current song number (0 to 31)
0x10 Current sequencer mode (pattern mode=0, song mode=1)
0x20 Current lock mode (classic=0, extended=1)

<Extended functionality>

0x30 Firmware capabilities:
  Returns a multibyte bitmask indicating available firmware features

0x31 Enable/disable Trig Interface mode:
  %0000000b | bb: 0x01 = Enable
  %0000000b | bb: 0x00 = Disable

0x32 Enable/disable Track Select mode:
  %0000000b | bb: 0x01 = Enable
  %0000000b | bb:  0x00 =  Disable

0x33 Query mute state

0x34 Query sample slot:
  %0bbbbbbb | Slot Number

Trig Interface (TI) Response:

When the TI is enabled, the Machinedrum will send a SYSEX message upon
trig key press, without triggering internal sounds.
This can be used to extend the GUI of an attached MIDI devices.

  MIDI Byte | Purpose
----------------------------------------
(Universal
SYSEX)      | Realtime Universal System Exclusive Header
        $0D | Status for parameter %aaaaaa (see list below)
  %0aaaaaaa | if (%0aaaaaaa >= 64) Trig on
            | else { Trig off }
        $f7 |

Track Select Response:

When Track Select is enabled, the Machinedrum will send a SYSEX message
when the current track is changed.

  MIDI Byte | Purpose
----------------------------------------
(Universal
SYSEX)      | Realtime Universal System Exclusive Header
        $0E | Status for parameter %aaaaaa (see list below)
   %000aaaa | Current MD track.
        $f7 |

Bug fixes
---------

SDS Lockup bug:
  Sending samples to the MD could cause the buttons and encoders
  to become unresponsive, requiring a restart.


List of changes from Machinedrum SPS−1 OS 1.62 to 1.63
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

Updates
−−−−−−−

Program change channel can now be selected in the Global
settings. Base means receiving only on the four MIDI channels
the Machinedrum usually reacts to.

Bug fixes
−−−−−−−−−
Song Pointer Position did not work properly without a MIDI base
channel assigned. Fixed.
− +Drive −
INP machines soundes strange during Snapshot change. Fixed.

