
                         WALDORF MICROWAVE
                          SYSTEM EXCLUSIVE
                           DOCUMENTATION
                         (c) Waldorf Electronics

            Microwave System Software Version 2.00 Revision 00

March, 1st, 1994
-----------------------------------------------------------------------

Preface
-------

This document is prepared under great caution in a most precise manner.
Several experts took care in sorting and checking the available information
the best way possible.
However, we cannot guarantee that all information is absolutely correct,
nor can we guarantee that there won't be changes due to further software
enhancements.

General info
------------

Sys-Ex dumps and requests will always be in the following format:

F0h IDW DEV IDM --------data--------- CHKSUM F7h

where

F0h       : Status for System Exclusive
IDW       : Waldorf MIDI ID = 3Eh
IDE       : Equipment ID = 00h for MicroWave
DEV       : Device number, 00h to 7Eh, 7Fh = global
IDM       : Message ID
data      : whatever data bytes, 00h to 7Fh
CHKSUM    : Sum of all data bytes truncated to 7 bits. The addition is done
            in 8 bit format, the result is masked to 7 bits (00h to 7Fh).
            IMPORTANT: The MIDI status bytes as well as the ID's are not
                       used for computing the checksum.
                       If there are no data bytes in the message (simple
                       request), the checksum will always be 00h.
F7h       : End of System Exclusive transmission

To verify a message, all ID's, the checksum, the EOX-status and the total
length of the message are used.

An unknown message will lead to no reaction; it will be ignored completely.

There is no provision for implementing a handshake protocol. Upon sending a
request the transmitter of the request must not wait explicitly for a dump
since there is no error message issued if a transmission error occurs.
The transmitter of a request must be prepared to recieve a dump at any time.
Just exactly when the dump will be sent is dependent on the current CPU state
of the system.

A Sys-Ex message must always be terminated by an EOX (7Fh). In case it is
not, the Sys-Ex message will either be regarded as uncomplete or ignored.
The following status byte then won't be recognized.

In all dumps there may be unused data bytes. Those data-bytes represent
reserved, but yet unused parameters. It is advised to administer those
parameters in all applications, but without displaying them to the user.
This means, that for instance a single sound-dump contains 180 data-bytes
of which only around 160 are used. In an editor- or librarian-program the
unused bytes should be recognized and administered at any operation, since
those data may become valid parameters in future MicroWave software releases.
Besides that, even though the values of those data bytes are currently
unimportant, zeros should be used.

Data formats
------------

If not indicated differently, a data byte consists of a regular MIDI data
byte. (00h..7Fh).

Otherwise:

ASCII: A MIDI data byte in the range of 20h..7Fh.
BYTE : Two consecutive nibbles form an 8-bit byte.
       The MS nibble is sent first.
WORD : Four consecutive nibbles form a 16-bit word.
       The MS nibble is sent first.

No other data formats will be provided.
Within a single message data formats may be mixed.


Detailed information
--------------------

The difference between dumps and requests is determined by a high or low
bit 6. This means: requests occupy IDM-numbers 00h to 3Fh, while the
corresponding dumps have IDM-numbers 40h to 7Fh.
As you can see, a dump always has the same IDM-number as it's request,
the difference being a high (set) bit 6.

IDM Mnemonic/Function                IDM Mnemonic/Function
------------------------------------------------------------------
00  VERR Version Number and Date     40  VERD Version Number and Date
    Request                                   Dump
01  DEVR Device Status Request       41  DEVD Device Status Dump
02  BPRR BPR Dump Request            42  BPRD BPR Dump
    (BPR = Basic Program)
03  ARPR ARR Dump Request            43  ARPD Arrangement Dump
                                              (without BPRs)
04  WAVR Wave Dump Request           44  WAVD Wave Dump
                                              (withoutWaveControlTbl)
05  WCOR Wave Controltab. Request    45  WCOD Wave Controltab. Dump
06  TUNR Tuning Table Dump Req.      46  TUND Tuning Table Dump
07  VELR Velocity Table Dump Req.    47  VELD Velocity Table Dump
08  BPCR BPR Change Map Dump Req.    48  BPCD BPR Change Map Dump
09  APCR ARR Change Map Dump Req.    49  APCD ARR Change Map Dump
0A  GLBR Global Parameter Request    4A  GLBD Global Parameter Dump
0B  ABPR Arr. Bank Program Request   4B  ABPD Arr. Bank Program Dump

0Ch ... 0Fh / 4Ch ... 4Fh are currently unused

10  BPBR BPR Bank Dump Request       50  BPBD BPR Bank Dump
11  ARBR ARR Bank Dump Request       51  ARPD ARR Bank Dump
12  TABR Table Dump Request          52  TABD Table Dump
13  UWVR Userwavetable Request       53  UWVD Userwavetable Dump
14  CRTR Cartridge Dump Req.         54  CRTD Cartridge Dump
15  ARRR ARR Dump Request            55  ARRD Arrangement Dump
                                              (with BPRs)

16h ... 3Fh / 56 ... 6Fh are currently unused.

The following IDM's doesn't have corresponding requests. The Microwave
doesn't send these IDM's but it recognizes them. They are useful for
Editors or Remote Controls.

                                     70  STRA Store arrangement
                                     71  STRB Store BPR
                                     72  RCLA Recall arrangement
                                     73  RCLB Recall BPR
                                     74  CMPA Compare arrangement
                                     75  CMPB Compare BPR
                                     76  BTNM Button/dial message

The following IDM's doesn't have corresponding requests. They will be sent
by changing a parameter on the Microwave with Overflow Mode is set to "Lnk".

                                     60  RTBP Real Time BPR Edit
                                     61  RTAR Real Time ARR Edit
                                     62  RTGL Real Time Global
                                              Parameter Edit
                                     63  RTTT Realtime tuning table edit
                                     64  RTVT Realtime velocity table
                                              edit

Changes in V2.0:
----------------

Accordingly to some new parameters and changed functionality of existing
parameters, the format or content of some SysEx messages has been changed
in V2.0.

The following messages have been changed in V2.0:

        41h     DEVD (Device Status Dump)
        42h     BPRD (Sound Dump)
        43h     ARPD (Arrangement Program Dump)
        05h     WCOR (Wave Control Table Dump Request)
        4Bh     ABPD (Arrangement Sound Program Dump)
        50h     BPBD (Sound Program (BPR) Bank Dump)
        51h     ARBD (Multi Program (ARR) Bank Dump)
        54h     CRTD (Cartridge Dump)
        55h     ARRD (Arrangement Dump)
        60h     RTBP (Real Time BPR Edit)
        61h     RTAR (Real Time Arrangement Edit)

                     Description of messages
                     -----------------------

VERR
----------------------------------
IDM: 00h  (Version Number and Date request)

Requests version number and date of the software.


VERD
--------------------------------------
IDM: 40h (Version Number and Date Dump)

Contains version number and date of software. Uses standard 7bit ASCII
format, no delimiters. If the MicroWave recieves that message, it won't
react. And why should it.

  Byte #   Value

       0   F0h (EXC)
       1   IDW
       2   IDE
       3   DEV
       4   IDM
   5..14   Ascii Version Number and Date ( VVRRYYMMDD )
           V=Version R=Revision Y=year M=month D=day
      15   CHKSUM
      16   F7h (EOX)


DEVR
--------------------------------
IDM: 01h (Device Status Request)

Requests device status dump.


DEVD
--------------------------------
IDM: 41h (Device Status Dump)

is sent upon reception of a DEVR.
If a DEVD is recieved, the data it contains become valid.
Since there is a new device parameter in V2.0 (SysEx Transmission Speed),
the length of this dump changed.
To keep compatibility, the 2.0 firmware still accepts the old format, but
always sends the new format.

   Byte #   Value

        0   F0h (EXC)
        1   IDW
        2   IDE
        3   DEV
        4   IDM

        5   Overflow Mode  (off = 0, on = 1)
        6   MIDI Out=Thru  (0=off, 1=on, if Overflow = off)
        7   Device Number  (0...126)
            Device Number 127 must never be sent !
        8   Sys Ex Transmission Speed (0=fast, 1=slow)

        9   CHKSUM over data bytes 5...8
       10   F7h (EOX)


BPRR
-----------------------------
IDM: 02h (Sound Dump Request)

Requests a dump of the active sound program.
If a certain sound program shall be dumped, you must first sent the according
program-change command (C0h PRG#).
This request is only useful in Single-mode, since in Multi-mode a program
change command might either call a different sound for an Instrument or a
different Multi-program, depending on a parameter (PC-mode) of each Multi-
program. Besides, the active sound program
is always that of the last Instrument selected. Therefore it is unpredictable,
which sound-data will be sent by a MicroWave set to Multi-mode.
Therefore you must switch the MicroWave to Single (MIDI-Poly)-mode before
requesting a sound dump.


BPRD
---------------------
IDM: 42h (Sound Dump)

After recieving a BPRR the MicroWave will sent the data of the active sound-
program. If this sound resides in one of the eight edit buffers, the data of
the edited version will be sent.

When recieving a sound-dump, the MicroWave first switches into Poly Mode.
Then it checks if the currently active sound resides in an edit buffer. In
that case the sound-program will be dumped to the very same edit buffer. If
the currently active sound does not reside in an edit buffer, the sound-
program will ALWAYS be dumped to the first edit buffer; at the same time an
auto-edit procedure will be executed. That means that the original sound at
the active memory location remains unaltered, even though the 

r
cieved sound-dump will be connected directly to the sound-generation process.
Under all circumstances a sound-dump is ALWAYS just temporary, meaning it
only resides in an edit buffer but not in internal- or card-memory. If the
recieved sound-dump shall be saved permanently, you must do it by hand at the
front panel. Otherwise the sound-dump will be erased after powering down or
even after recieving the following sound-dump.

If automatic switching from Multi to Poly Mode is not desired, BPRD can be
replaced by ABPD, which works also in Poly Mode.

The format of this dump hasn't changed in V2.0, but some in earlier versions
reserved parameters got functionality now. These are marked with an asterix
(*). Other parameters are changed in their range in V2.0. These are marked
with a plus sign (+).

   Byte #   Value

      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM

            Data:
      5     Osc 1 Octave (0=-2, 10h=-1, 20h=0, 30h=+1, 40h=+2)
      6     Osc 1 Semitone (0...120, 1 Semitone equals a value
                            of 8)
      7     Osc 1 Detune (0...127, equals Detune -64...+63 )
      8     Osc 1 Bend Range (0...12 Semitones)
      9     Osc 1 Pitch Mode (0=normal, 1=fixed)
+    10     Osc 1 Modifier 1 Source (0...23, see Modifier Table)
+    11     Osc 1 Modifier 1 Control (0...23,  "      "      " )
     12     Osc 1 Modifier 1 Amount (0...127, equals -64...+63)
     13     Osc 1 Modifier 2 Source (0...15, see Modifier Table)
     14     Osc 1 Modifier 2 Amount (0...127, equals 64...+63)
     15     Osc 1 Modifier 2 Quantize (0...7)
     16     Osc 2 Octave
     17     Osc 2 Semitone
     18     Osc 2 Detune
     19     Osc 2 Bend Range
     20     Osc 2 Pitch Mode
+    21     Osc 2 Modifier 1 Source
+    22     Osc 2 Modifier 1 Control
     23     Osc 2 Modifier 1 Amount
+    24     Osc 2 Modifier 2 Source
     25     Osc 2 Modifier 2 Amount
     26     Osc 2 Modifier 2 Quantize
     27     Osc 2 Link Mode (0 = off, 1 = on, ON takes over all
                             Modifier values of OSC 1)
+    28     Wave 1 & 2 Wavetable (0...80)
     29     Wave 1 Startwave (0...63)
     30     Wave 1 Startsample (0...127, 0 equals free running)
     31     Wave 1 Envelope Amount (0...127, equals -64...+63)
     32     Wave 1 Envelope Velocity (0...127, equals -64...+63)
     33     Wave 1 Keytrack Amount (0...127, equals -64...+63)
+    34     Wave 1 Modifier 1 Source  (0...23, see Modifier Table)
+    35     Wave 1 Modifier 1 Control (0...23,   "      "    "   )
     36     Wave 1 Modifier 1 Amount (0...127, equals -64...+63)
+    37     Wave 1 Modifier 2 Source (0...23, see Modifier Table)
     38     Wave 1 Modifier 2 Amount (0...127, equals -64...+63)
     39     Wave 1 Mode (0=stepped, 1=smooth)
     40     --------unused----------
     41     Wave 2 Startwave
     42     Wave 2 Startsample
     43     Wave 2 Envelope Amount
     44     Wave 2 Envelope Velocity
     45     Wave 2 Keytrack Amount
+    46     Wave 2 Modifier 1 Source
+    47     Wave 2 Modifier 1 Control
     48     Wave 2 Modifier 1 Amount
+    49     Wave 2 Modifier 2 Source
     50     Wave 2 Modifier 2 Amount
     51     Wave 2 Mode
     52     Wave 2 Link Mode (0 = off, 1 = on, ON takes over all
                              Modifier values of Wave 1)
     53     Wave 1 Volume (0...112, in steps of 16, => 0...7)
     54     Wave 2 Volume (0...112), see above
     55     Noise Volume  (0...112), see above
     56     Sound Volume  (0...127)
     57     Volume Envelope Amount (0...127, equals -64...+63)
     58     Volume Envelope Velocity (0...127, equals -64...+63)
     59     Volume Keytrack Amount (0...127, equals -64...+63)
+    60     Volume Modifier 1 Source  (0...23, see Modifier Table)
+    61     Volume Modifier 1 Control (0...23,   "      "    "   )
     62     Volume Modifier 1 Amount  (0...127, equals -64...+63)
+    63     Volume Modifier 2 Source  (0...23, see Modifier Table)
     64     Volume Modifier 2 Amount  (0...127, equals -64...+63)
     65     Filter Cutoff Frequency   (0...127)
     66     Filter Resonance (Q)      (0...127)
     67     Cutoff Envelope Amount    (0...127, equals -64...+63)
     68     Cutoff Envelope Velocity  (0...127, equals -64...+63)
     69     Cutoff Keytrack Amount    (0...127, equals -64...+63)
+    70     Cutoff Modifier 1 Source  (0...23, see Modifier Table)
+    71     Cutoff Modifier 1 Control (0...23,   "      "    "   )
     72     Cutoff Modifier 1 Amount  (0...127, equals -64...+63)
+    73     Cutoff Modifier 2 Source  (0...23, see Modifier Table)
     74     Cutoff Modifier 2 Amount  (0...127, equals -64...+63)
+    75     Reson. Modifier 1 Source  (0...23, see Modifier Table)
     76     Reson. Modifier 1 Amount  (0...127, equals -64...+63)
     77     Vol Envel Attack Time     (0...127)
     78     Vol Envel Decay Time      (0...127)
     79     Vol Envel Sustain Level   (0...127)
     80     Vol Envel Release Time    (0...127)
+    81     Vol Envel Attack Modifier Source (0...23, see Modifier Table)
     82     Vol Envel Attack Modifier Amount (0...127, equals -64...+63)
+    83     Vol Envel Decay Modifier Source (0...23, see Modifier Table)
     84     Vol Envel Decay Modifier Amount (0...127, equals -64...+63)
+    85     Vol Envel Sustain Modif. Source (0...23, see Modifier Table)
     86     Vol Envel Sustain Modif. Amount (0...127, equals -64...+63)
+    87     Vol Envel Release Modif. Source (0...23, see Modifier Table)
     88     Vol Envel Release Modif. Amount (0...127, equals -64...+63)
     89     ----------unused---------
     90     Fltr Envel Delay Time     (0...127)
     91     Fltr Envel Attack Time    (0...127)
     92     Fltr Envel Decay Time     (0...127)
     93     Fltr Envel Sustain Level  (0...127)
     94     Fltr Envel Release Time   (0...127)
+    95     Fltr Envel Delay Modif. Source  (0...23, see Modifier Table)
     96     Fltr Envel Delay Modif. Amount  (0...127, equals -64...+63)
+    97     Fltr Envel Attack Modif. Source (0...23, see Modifier Table)
     98     Fltr Envel Attack Modif. Amount (0...127, equals -64...+63)
+    99     Fltr Envel Decay Modif. Source  (0...23, see Modifier Table)
    100     Fltr Envel Decay Modif. Amount  (0...127, equals -64...+63)
+   101     Fltr Envel Sustain Modif. Source (0...23, see Modifier Table)
    102     Fltr Envel Sustain Modif. Amount (0...127, equals -64...+63)
+   103     Fltr Envel Release Modif. Source (0...23, see Modifier Table)
    104     Fltr Envel Release Modif. Amount (0...127, equals -64...+63)
    105     ----------unused-----------
    106     Wav Envel Time 1         (0...127)
    107     Wav Envel Level 1        (0...127)
    108     Wav Envel Time 2         (0...127)
    109     Wav Envel Level 2        (0...127)
    110     Wav Envel Time 3         (0...127)
    111     Wav Envel Level 3        (0...127)
    112     Wav Envel Time 4         (0...127)
    113     Wav Envel Level 4        (0...127)
    114     Wav Envel Time 5         (0...127)
    115     Wav Envel Level 5        (0...127)
    116     Wav Envel Time 6         (0...127)
    117     Wav Envel Level 6        (0...127)
    118     Wav Envel Time 7         (0...127)
    119     Wav Envel Level 7        (0...127)
    120     Wav Envel Time 8         (0...127)
    121     Wav Envel Level 8        (0...127)
+   122     Wav Envel Time Modifier Source (0...23, see Modifier table)
    123     Wav Envel Time Modifier Amount (0...127, equals -64...+63)
+   124     Wav Envel Level Modifier Source (0...23, see Modifier Table)
    125     Wav Envel Level Modifier Amount (0...127, equals -64...+63)
    126     Wav Envel Key Off Point (0...7)
    127     Wav Envel Loop Start Point (0...7)
    128     Wav Envel Loop Mode (0 = off, 1 = on)
    129     LFO 1 Rate               (0...127)
+   130     LFO 1 Shape   (0=sin, 1=saw, 2=pulse, 3=random, 4=sample&hold)
    131     LFO 1 Symmetry (0...127, equals -64...+63)
    132     LFO 1 Humanize  (0...4, 0 = off)
+   133     LFO 1 Rate Modifier Source (0...23, see Modifier table)
    134     LFO 1 Rate Modifier Amount (0...127, equals -64...+63)
+   135     LFO 1 Level Modifier Source (0...23, see Modifier table)
    136     LFO 1 Sync (0 = off, 1 = on)
    137     LFO 1 Delay (0...127, 0=off, 1=retrigger, 2...127=delay&retrig)
    138     LFO 1 Attack (0...127)
    139     LFO 1 Decay  (0...127, 0=uses Vol Env., 1...126=Decay Time,
                          127=infinite)
    140     LFO 2 Rate   (0...127)
+   141     LFO 2 Shape  (0=sin, 1=saw, 2=pulse, 3=random, 4=sample&hold)
    142     LFO 2 Symmetry (0...127, equals -64...+63)
    143     LFO 2 Humanize (0...4, 0=off)
*   144     LFO 2 Phase Shift (0=independent, 1...90 equals 2...180 degree)
    145     -----------unused-----------
    146     Panning (0...127, equals L64...M00...R63)
+   147     Pan Modifier Source (0...23, see Modifier table)
    148     Pan Modifier Amount (0...127, equals -64...+63)
+   149     Glide (0...6, 0=off, 1=Glissando, 2=Portamento,
                          3=MIDI Glissando, 4=MIDI Portamento,
                          5=Fingered Glissano, 6=F. Portamento)
    150     Glide Rate (0...127)
    151     Glide Mode (0 = equal Time, 1= equal Distance)
    152     Tuning Table (0...7, 0=pos, 1=neg, 2=slight detune,
                          3=honky tonk, 4...7 = User Tables 1...4)
    153-168 Sound Name (16 Digits ASCII from 20h to 7fh,
                        7bit, no terminator)
*   169     Wave 1 Level Modifier Source (0...23, see Modifier table)
*   170     Wave 1 Level Modifier Amount (8...120 equals -7...+7)
*   171     Wave 2 Level Modifier Source (0...23, see Modifier table)
*   172     Wave 2 Level Modifier Amount (8...120 equals -7...+7)
*   173     Noise Level Modifier Source (0...23, see Modifier table)
*   174     Noise Level Modifier Amount (8...120 equals -7...+7)
    175-183 ----------unused-------------
    184     Valid Flag (always 55h, otherwise the sound is invalid)
    185     CHKSUM over Bytes 5...184
    186     F7h (EOX)

            Modifier Table:   0= LFO 1
                              1= LFO 2
                              2= Vol. Envelope
                              3= Fltr Envelope
                              4= Wave Envelope
                              5= LFO1 Envelope
                              6= Keytrack
                              7= Velocity
                              8= Release Velocity
                              9= Aftertouch
                             10= Poly Pressure
                             11= Pitch Bender
                             12= Modulation Wheel
                             13= Sustain Pedal
                             14= Volume Controller
                             15= Panning Controller
                             16= Breath Controller
                             17= Controller W
                             18= Controller X
                             19= Controller Y
                             20= Controller Z
                             21= Maximum(fixed)
                             22= Minimum(fixed)
*                            23= MIDI Clock Rate


ARPR
------------------------------------------
IDM: 03h (Arrangement Program Dump Request)

Requests a dump of the active Arrangement program (Multi-program).
If the MicroWave is set to Single (Poly) mode, the request will be
ignored.
If the MicroWave is set to Multi-mode, it will issue a dump of the active
Multi-program, but without the corresponding Sound-programs.
If you require a specific Multi-program to be dumped, you must select this
Multi-program at the MicroWave itself. Simply sending a MIDI program change
command might not lead to the expected result, since it might be applied to
one or more Instruments to change their Sound-programs rather than switching
the Multi-program itself.


ARPD
------------------------------------
IDM: 43h (Arrangement Program Dump)

Will be issued if the according request (ARPR) has been recieved
and Multi-mode is currently selected.

If the MicroWave recieves an ARPD, it first switches to Multi Mode. Then the
dump will be directed to the Arrangement edit buffer,
even if the active Multi-program does not already reside there. It
also will be directly connected to the sound-generating process.

Be aware that all data must be useful, even and especially that
of yet unused Instruments. Otherwise a later change of the
Multi-program might lead to system crashes.

The format of this dump hasn't changed in V2.0, but some in earlier versions
reserved parameters got functionality now. These are marked with an asterix
(*). Other parameters are changed in their range in V2.0. These are marked
with a plus sign (+).

 Byte #  Value

      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM

      Data:

         Multi Program Master Parameters:

      5     Master Volume of Arrangement (0...127)
      6     MIDI Controller W (0...120)
      7     MIDI Controller X (0...120)
      8     MIDI Controller Y (0...120)
      9     MIDI Controller Z (0...120)
     10     Program Change Mode (0..2)
             (0=Multi Prg Change, 1=Sound Prg Change, 2=combined)
     11     Instrument Count (0...7), amount of Instruments
                                      for this specific Program.
     12     ----------unused------------
     13     ----------unused------------
     14     Valid Flag (always 55h, otherwise the Program is
                        invalid)
   15...30  Multi Program Name, 16 Digits Ascii 7 Bit
                                 (20h...7fh), no terminator.

         Multi Program Instrument #1 Parameters:

     31     Instr. enable (0 = off, 1 = on, 2 = solo)
     32     Instr. MIDI Channel (0...15 = MIDI channel 1...16)
     33     Instr. Sound (BPR) (0...127 = Soundprog. A01...D32)
     34     Instr. Key Limit Low (0...127)
     35     Instr. Key Limit High (0...127)
     36     Instr. Velocity Limit Low (1...127)
     37     Instr. Velocity Limit High (1...127)
     38     Instr. Velocity Curve (0...9)
               (0=lin. pos, 1=lin. neg., 2=exp. pos., 3=exp. neg.,
                4=crossfade pos., 5=crossfade neg.,
                6...9=usertable 1...4)
     39     Instr. Transpose Offset (0...48, equals -24...0...+24)
     40     Instr. Detune (0...127, equals -64...0...+63)
     41     Instr. Tuning Table
                   (0...7, 0 = pos, 1 = neg, 2 = slightly detune,
                    3 = honky tonk, 4...7 = Usertables)
     42     Instr. Volume (0...127)
     43     Instr. Panning (0...127, equals L64...M00...R63)
+    44     Instr. Panning Mod On/Off (0 = off, 1 = On, 2=Reverse)
     45     Instr. Routing (0...4, 0 = L+R, 1...4 = Out 1...4)
     46     Instr. Program Change Filter (0=disable, 1=enable)
     47     Instr. Pitch Wheel Filter
     48     Instr. Modulation Wheel Filter
     49     Instr. Aftertouch Filter
     50     Instr. Poly Pressure Filter
     51     Instr. Volume Controller Filter
     52     Instr. Panning Controller Filter
     53     Instr. Sustain Pedal Filter
*    54     Instr. Voice Allocation Mode
                   (0=dynamic, 1=retrigger, 2=low-note retrigger,
                    3=high-note retrigger, 4=single trigger,
                    5=low-note single trigger, 6=high note single trigger)
     55     -------unused---------

   56...80  Instrument #2 Data
   81...105 Instrument #3 Data
  106...130 Instrument #4 Data
  131...155 Instruemnt #5 Data
  156...180 Instrument #6 Data
  181...205 Instrument #7 Data
  206...230 Instrument #8 Data

    231     Checksum over Data Bytes 5...230
    232     EOX (F7h)


WAVR
----------------------------------------
IDM: 04h (Wave Dump Request)

Requests a dump of a Wave without Wave Control table
(a Wave is part of a Wavetable. Each Wavetable may consist of up
to 61 different Waves plus saw, square and triangle waveform).

   Byte #   Value

      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM

     Data:

     5..8   Request Wave Number (0...505), where
            Waves    0...245 are Rom-Waves,
                   246...306 are internal Userwaves,
                   307...367 are Card-Waves,
		   368...421 are Rom-Waves
                   422...505 are reserved Rom-Waves (yet invalid)
            Format: WORD

      9     Checksum bber Datenbytes 5...8
     10     EOX (F7h)



WAVD
---------------------------------------------
IDM: 44h (Wave Dump)

Will be sent after a WAVR request has been recieved, if the
wavenumber is not greater than 505.

When recieving a Wave dump, wavenumbers 0..245 and 368..505 will
be ignored, since those Waves are not editable. Other valid Waves
will be dumped to the slot ot their corresponding number. Already
existing Waves will be erased and replaced.
If the Wave is directed to the card, you better have inserted a
card; otherwise your data will pollute byte-heaven.

   Byte #   Value


      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM

      Data:

      5.....8  Wave Number 246...367 im Format WORD
      9...136  Wave Samples 0...63 im Format BYTE

    137     Checksum over Bytes 5...136
    138     EOX (F7h)


WCOR
------------------------------------------
IDM: 05h (Wave Control Table Dump Request)

Requests a dump of a Wave Control table.

Control tables 28..31 and 56...75 cannot be requested
since they are generated  arithmetically; also, they
do not contain dumpable Waves.

Tables   00..27 are ROM tables,
         28..31 arithmetically generated,
         32..43 internal user RAM tables,
         44..55 Card-RAM tables,
         56..75 arithmetically generated,
         76..87 ROM tables

   Byte #   Value

      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM

            Data:
      5     Control Table # (0...27, 32...55, 76...87)
      6     CHKSUM (=Byte 5)
      7     EOX (F7h)

WCOD
------------------------------------------------
IDM: 45h (Wave Control Table Dump)

Will be issued if a WCOR request has been recieved that did not
request tables 28..31.

When recieving a WCOD Wavetables 00..31 and 56..87 will be ignored
since they are not editable. Tables 32..55 will be directed to a
RAM-slot corresponding to their number (44..55 reside on
cartridge). Already existing tables will be erased and replaced.

   Byte #   Value

      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM
            Data:
      5       Control Table #  (32...55)
      6..261  61 Wavenumbers (0...505, -1) in Format WORD
              If the wavenumber equals -1, this waveposition will
              be interpolated between the previous and following
              defined position.

              Tablepositions 61,62,63 must stay undefined (-1).
              Tablepositions 0 and 60 must be defined with a
              valid Wave.
     262    CHKSUM over Bytes 5...261
     263    EOX (F7h)

About creating a wavetable-editor:
----------------------------------

In order to write your own Wavetable-editor you must know a bit about the
structure of a MicroWave Wavetable.

A Wavetable can be thought of as beeing created by two different entities:

 1. The 64 Waves of a Wavetable
The Waves contain the actual sound-information, the spectrum that shall be
played by the MicroWaves oscillators.

 2. The Wave-Controltable
The Controltable governs how the Waves are ordered. It takes, so to say, the
administrative part of the Waves.

Therefore, in order to make your own Wavetables, you must:

1. create certain Waves, sent them to the MicroWave via a WAVD to a specific,
valid location (slots 246-367).

2. set up a Wave Control Table that incorporates your Waves and send it as a
WCOD to a valid location to the MicroWave.

Creating Waves:

You must create 64 Bytes of sample-data per Wave. This sample data will
represent the positive cycle of your desired spectrum. These bytes may origin
from whatever you like, additive synthesis, samples, random functions etc. The
MicroWave will perform all necessary functions to set pitch and create a valid
spectrum out of your sample-data all by itself. The sample data you must send
is sent as the data-bytes of the WAVD.

Creating a Wavetable:

The Wavetable is defined by the Wave Control Table. Basically, it states to
what positions of the Wavetables which Waves must be loaded. This way, you
could load up to 61 distinct Waves into a single Wavetable. Remember. though,
the last three positions of a Wavetable (61,62,63) are predefined and will
always be tri, sqr and saw. The numbers of the Waves that shall be loaded to
the table-positions are sent as the data-bytes of the WCOD.

However, you can specify only 64 Waves yourself, but up to 12 Wavetables. How
do you 'compress' the Wave-data?
You can, but by no means must set a valid Wave-number for each table position.
Rather, you can specify a couple of positions of the Wavetable and leave the
others 'free' (by assigning a -1 to their corresponding positions). In that
case the MicroWave will perform some additional magic and fill these positions
by interpolating between the two adjacent spectra. This means that you only
must specify the extremes of your Wavetable as Waves, send those few Waves to
the MicroWave at the correct positions and have
the MicroWave fill the 'empty' positions by itself. Great, isn't it?

However, one thing to remember:

You MUST specify valid Waves for Wavetable-positions 0 and 60. If not, your
MicroWave will takle a little break...

A Wave Control Table might look something like this:

POS  1   2  3  4  5  6  7  8  9  10 11 12 13 14 15 16  17 .. 59  60
WAV 246 -1 -1 -1 -1 -1 -1 -1 -1 247 -1 -1 -1 -1 -1 -1 248 .. -1 250

Wavetable-positions 61,62 and 63 MUST be set to -1.

You may use internal and cartridge Waves at random, but be aware that a card
may not be inserted.


TUNR
--------------------------------------------
IDM: 06h (Tuning Table Dump Request)

Requests a dump of a user Tuning table.

   Byte #   Value

      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM

            Data:
      5     Tuning Table # (0...3)
      6     CHKSUM (=Byte 5)
      7     EOX (F7h)




TUND
------------------------------------------------------
IDM: 46h (User Tuning Table Dump)

Will be issued after recieving a TUNR request.

When recieving a Tuning table dump, the table will be stored
according to it's number.

Already existing tables will be erased and replaced.

Tables 0..1 are internal RAM tables,
       2..3 are Card-RAM tables.


   Byte #   Value

      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM

            Data:
      5       Tuning Table # (0...3)
      6...261 Tablepositions 0...127, first Semitone (0...127),
              followed by Detune (0...127, equals -64...0...+63)

    262     CHKSUM over Bytes 5...261
    263     EOX (F7h)



VELR
---------------------------------------------
IDM: 07h (Velocity Table Dump Request)

Requests a dump of a user Velocity table.


   Byte #   Value

      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM

            Data:
      5     Velocity Table # (0...3)
      6     CHKSUM (=Byte 5)
      7     EOX (F7h)



VELD
------------------------------------------------------------
IDM: 47h  (User-Velocity Table Dump)

Will be issued after recieving a VELR request.

When recieving a Velocity table dump, the table will be stored according to
it's number.

Already existing tables will be erased and replaced.

Tables 0..1 are internal RAM tables,
       2..3 are Card-RAM tables.


   Byte #   Value

      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM

            Data:
      5       Velocity Table # (0...3)
      6       ---------unused---------
      7...133 Tablepositions 1...127, Velocity 1...127

      134   CHKSUM over Bytes 5...133
      135   EOX (F7h)



BPCR
-----------------------------------------------
IDM: 08h (Sound Program Change Map Dump Request)

Requests a dump of the Sound program change map.



BPCD
--------------------------------------------------
IDM: 48h (Sound Program Change Map Dump)

Will be issued after recieving a BPCR request.

   Byte #   Value

      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM

   5...132  Tablepositions 0...127, Sound Program (BPR)
               0...127, equals Prog. A01...D32

    133     CHKSUM over Bytes 5...132
    134     EOX (F7h)



APCR
--------------------------------------------------
IDM: 09h (Multi Program Change Map Dump Request)

Requests a dump of a Multi program change map.



APCD
---------------------------------------------------
IDM: 49h (Multi Program Change Map Dump)

Will be issued after recieving a APCR request.

   Byte #   Value

      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM

   5...132  Tablepositions 0...127, Multi Program (ARR)
            0...127, equals Prog. A01...D32

    133     CHKSUM over Bytes 5...132
    134     EOX (F7h)



GLBR
--------------------------------------------------
IDM: 0Ah (Global Parameter Request)

Requests the MicroWave to send a Global Parameter Dump (GLBD).



GLBD
--------------------------------------------------
IDM: 4Ah (Global Parameter Dump)

Will be issued if a Global Parameter Request (GLBR) is sent to the MicroWave.

When receiving a GLBD dump all Global Parameters will be replaced by the
contents of the GLBD dump.

Byte    #       Value

        0       F0h     (EXC)
        1       IDW
        2       IDE
        3       DEV
        4       IDM

                Global Parameters

        5       Mastervolume (0...127)
        6       Stereo width (0...127, 0=mono, 127=full)
        7       Mastertune (0...127, equals -64...+63, 0=440 Hz)

                MIDI Parameters

        8       MIDI Channel (0...16, 0=omni, 1...16 = channels 1...16)
        9       Controller W (0...120)
       10       Controller X (0...120)
       11       Controller Y (0...120)
       12       Controller Z (0...120)
       13       Program Change Enable (0=off, 1=on)
       14       Pitch Wheel Enable (0=off, 1=on)
       15       Modulation Wheel Enable (0=off, 1=on)
       16       Aftertouch Enable (0=off, 1=on)
       17       Polyphonic Key Pressure Enable (0=off, 1=on)
       18       Volume Controller Enable (0=off, 1=on)
       19       Panning Controller Enable (0=off, 1=on)
       20       Sustain Pedal Enable (0=off, 1=on)
       21       Program Change Maps Enable (0=off, 1=on)
       22       Program Change Voice Shutdown (0=off, 1=on)

       23       CHKSUM over Databytes 5...22
       24       F7h     (EOX)




ABPR
--------------------------------------------------
IDM: 0Bh (Arrangement Sound Program Request)

Requests the MicroWave to send the ABPD dump of the specified instrument of
the currently selected Multi program.

Byte    #       Value

        0       F0h     (EXC)
        1       IDW
        2       IDE
        3       DEV
        4       IDM

        5       Instrument #  (0...7)

        6       CHKSUM (= Instrument No.)
        7       F7h     (EOX)



ABPD
--------------------------------------------------
IDM: 4Bh (Arrangement Sound Program Dump)

Will be issued by the MicroWave after receiving an ABPR request. Also sent if
the MicroWave is set to Overflow-Link Mode and the sound number of an
instrument has been changed.

If received, the sound program contained by the dump is copied to an edit
buffer and then used for the specified instrument of the currently selected
Multi program.
If the MicroWave is in Poly mode, the instrument number will be ignored.

This message has been changed accordingly to the BPRD message in V2.0. See
BPRD for a description.

Byte    #       Value

        0       F0h     (EXC)
        1       IDW
        2       IDE
        3       DEV
        4       IDM

                Data:
        5       Instrument No. (0...7)
    6...185     see BPRD description

      186       CHKSUM over bytes 6...185
      187       F7h     (EOX)




BPBR
------------------------------------------------------
IDM: 10h (Sound Program (BPR) Bank Dump Request)

Requests the entire contents of the internal Sound-program RAM.



BPBD
-----------------------------------------------------
IDM: 50h (Sound Program (BPR) Bank Dump)

Will be issued when a BPBR request has been recieved.

When a BPBD is arriving, all internal Sound-programs will be erased and
replaced by the dump.

ALL OLD SOUND-DATA WILL BE LOST! PERIOD!

The validity-check takes place WHILE storing the incomming data. If an error
is detected, it will be shown on the display. In this case you MUST send a
BPBD again, since the data in the Sound-program memory is most likely useless.

This message has been changed accordingly to the BPRD message in V2.0. See
BPRD for a description.

   Byte #   Value

      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM

            Data: (64 * 180 Bytes)
   5...184  Sound Program (BPR) A01 as explained under BPRD
 185...364  Sound Program (BPR) A02
 365..11524 Sound Program (BPR) A03...B32

  11525     CHKSUM over Bytes 5...11524
  11526     EOX (F7h)



ARBR
---------------------------------------------------
IDM: 11h (Multi Program (ARR) Bank Dump Request)

Requests the entire contents of the internal Multi-program RAM.



ARBD
--------------------------------------------------
IDM: 51h (Multi Program (ARR) Bank Dump)

Will be issued when a ARBR request has been recieved.

When a ARBD is arriving, all internal Multi-programs will be erased and
replaced by the dump.

ALL OLD MULTI-PROGRAM-DATA WILL BE LOST! PERIOD!

The validity-check takes place WHILE storing the incomming data. If an error
is detected, it will be shown on the display. In this case you MUST send a
ARBD again, since the data in the Multi-program memory is most likely useless.

This message has been changed accordingly to the ARPD message in V2.0. See
ARPD for a description.

   Byte #   Value

      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM

            Data: (64 * 226 Bytes)
   5...230  Multi Program (ARR) A01 as explained under ARPD
 231...456  Multi Program (ARR) A02
 457..14468 Multi Program (ARR) A03...B32

  14469     CHKSUM over Bytes 5...14468
  14470     EOX (F7h)



TABR
------------------------------------------------
IDM: 12h (User Table Dump Request)

Requests a dump of all tables and maps in internal RAM.

Those are:  user-tuningtable 1,
            user-tuningtable 2,
            user-velocitytable 1,
            user-velocitytable 2,
            Sound program change map,
            Multi program change map



TABD
-----------------------------------------------------
IDM: 52h (User Table Dump)

Will be issued when a TABR request has been recieved.

When a TABD is arriving, all internal tables/maps will be erased and replaced
by the dump.

ALL OLD TABLE/MAP-DATA WILL BE LOST! PERIOD!

The validity-check takes place WHILE storing the incomming data. If an error
is detected, it will be shown on the display. In this case you MUST send a
TABD again, since the data in the table/map-memory is most likely useless.


   Byte #   Value

      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM

            Data:
   5...260  User Tuning Table 1 as explained under TUND
 261...516  User Tuning Table 2
 517...644  User Velocity Table 1 as explained under VELD
 645...772  User Velocity Table 2
 773...900  Sound Program Change Map as explained under BPCD
 901..1028  Multi Program Change Map as explained under APCD

   1029     CHKSUM over Bytes 5...1028
   1030     EOX (F7h)
UWVR
------------------------------------------------
IDM: 13h (User Wavetable and Waves Request)

Requests a dump of all user-wavetables (Wave Control tables) and Waves
residing in internal RAM.



UWVD
-------------------------------------------------------
IDM: 53h (Userwavetable and Waves Dump)

Will be issued when a UWVR request has been recieved.

When a UWVD is arriving, all internal user-wavetables and Waves will be
erased and replaced by the dump.

ALL OLD USER-WAVETABLE/WAVE-DATA WILL BE LOST! PERIOD!

The validity-check takes place WHILE storing the incomming data. If an error
is detected, it will be shown on the display. In this case you MUST send a
UWVD again, since the data in the user-wavetable/Wave memory is most likely
useless.


   Byte #   Value

      0     F0h (EXC)
      1     IDW
      2     IDE
      3     DEV
      4     IDM

            Data:
   5...260  Userwavetable 1 (Wavetable 33) in Format WORD
            as explained under WCOD
  261..516  Userwavetable 2 (Wavetable 34) in Format WORD
  517..3076 Userwavetables 3...11 (Wavetables 35...46)
            in Format WORD

 3077..3204 Userwave 1 (Wave 246) in Format BYTE
            as explained under WAVD
 3205..3332 Userwave 2 (Wave 247) in Format BYTE
 3333.10884 Userwave 3...61 (Waves 248..306) in Format BYTE

   10885    CHKSUM over Bytes 5...10884
   10886    EOX (F7h)

CRTR
------------------------------------------------------
IDM: 14h (Cartridge Dump Request)

Requests a dump of ALL data in internal RAM.



CRTD
------------------------------------------------------
IDM: 54h (Cartridge Dump)

Will be issued when a CRTR request has been recieved.

When a CRTD is arriving, ALL INTERNAL MEMORY  will be erased and replaced by
the dump.

ALL OLD DATA WILL BE LOST! PERIOD!

The validity-check takes place WHILE storing the incomming data. If an error
is detected, it will be shown on the display. In this case you MUST send a
CRTD again, since the data in internal memory is most likely useless. This
may cause a system-crash within a
short period of time.

This message has been changed accordingly to the ARPD, BPRD and DEVD messages
in V2.0.

This dump should be treated with utmost respect.


   Byte #    Value

      0      F0h (EXC)
      1      IDW
      2      IDE
      3      DEV
      4      IDM

             Data:
  5...11524  Sound Programs (BPRs) 0...63 (A01...B32), see BPRD
 11525.25988 Multi Programs (ARRs) 0...63 (A01...B32), see ARPD
 25989.26500 User Tuning Tabels 1 and 2, see TUND
 26501.26756 User Velocity Tabels 1 and 2, see VELD
 26757.26884 Sound Program Change Map, see BPCD
 26885.27012 Multi Program Change Map, see APCD
   27013     Master Volume (0...127)
   27014     Stereowidth   (0(mono)...127(full))
   27015     Master Tuning (0...127, equals -64...0...+63)
   27016     MIDI Base Channel (0 = omni,
                                1...16 = MIDI channel 1...16)
 27017.27020 MIDI Controller W...Z in Poly Mode, (0...120)
 27021.27028 MIDI Filters in Poly Mode, (0=off, 1=on)
   27029     Program Patch Maps On/Off  (0=off, 1=on)
   27030     PC Shutdown On/Off, (0=off, 1=on)
 27031.27076 -----------unused----------------
 27077.27079 Device Parameters, see DEVD
 27080.27140 -----------unused-----------
 27141.30212 User Wave Control Tables 1...12 in Format WORD,
             see WCOD
 30213.38020 User Waves 1...62 in Format BYTE, see WAVD

   38021    CHKSUM over Bytes 5...38020
   38022    EOX (F7h)



ARRR
-----------------------------------------------
IDM: 15h (Arrangement Dump Request)

Requests a dump of the active Arrangement (Multi-program) including the
according Sound-programs.



ARRD
---------------------------------------------------
IDM: 55h (Arrangement Dump)

Will be issued after a ARRR has been recieved and if Multi-mode is active.

When recieving an ARRD first all editbuffers will be cleared. Then the
recieved Multi-program is directed to the Multi-program edit buffer, the
according Sound-programs to the Soundprogram-edit buffer. The dumped Multi-
program will become the active Multi-program and plays the dumped Sound-
programs.

All data of the edit buffers will be lost.

The validity-check takes place WHILE storing the incomming data. If an error
is detected, it will be shown on the display. In this case you MUST send a
ARRD again, since the data in internal memory is most likely useless.
Especially an error in the Multi-program might lead to system-errors.

The length of a dump will be different and is dependent on the number of
Instruments defined in the Multi-program. For each defined Instrument the
according Sound-program will be sent, even if the very same Sound-program
has been sent before for another Instrument. It is the recievers obligation
to check for multiple-sent Sound-programs. The MicroWave will accept multiple-
sent Soundprograms only once and ignore doubles, since a Sound-program may
reside only once in an edit buffer.

This message has been changed accordingly to the ARPD message in V2.0. See
ARPD for a description.

   Byte #    Value

      0      F0h (EXC)
      1      IDW
      2      IDE
      3      DEV
      4      IDM

             Data:
   5...230   Multiprogram, see ARPD

   231...n   Sound-programs for Instrument 1...8, see BPRD,
             where n = number of Instruments * 180 + 230,
             but at least n = 410, since per Multi-program
             at least one Instrument must be defined.

     n+1     CHKSUM over Bytes 5...38274
     n+2     EOX (F7h)



RTBP
--------------------------------------------------
IDM: 60h (Real Time BPR Edit)

Will be issued if the MicroWave is set to Overflow-Link mode and a BPR
parameter has been changed via the MicroWave's user interface.

When receiving a RTBP dump the sound program (BPR) used by the specified
instrument no. will be loaded into an edit buffer. If there's no free buffer,
a currently unused one will be overwritten.

Be aware that by identifying each BPR with it's instrument no. you can edit
each and every parameter of every BPR of the entire Multi program concurrently
without loosing any data.

This message has been changed accordingly to the BPRD message in V2.0. See
BPRD for a description.

In Poly mode the instrument no. will be ignored.


Byte    #       Value

        0       F0h     (EXC)
        1       IDW
        2       IDE
        3       DEV
        4       IDM

                Data:
        5       Instrument No. (0...7)
       6,7      BPR parameter no. (0...179) in format BYTE
                Unused parameters shouldn't be changed.
                A change of the valid-flag will be ignored.
                See BPRD for reference of parameters to
                parameter numbers.
        8       Parameter value (0...127). See BPRD for reference.

        9       CHKSUM over databytes 5...8
       10       F7h     (EOX)



RTAR
--------------------------------------------------
IDM: 61h (Real Time Arrangement Edit)

Will be issued if the MicroWave is in Overflow-Link mode and an ARR parameter
has been changed via the MicroWave's user interface.

When receiving a RTAR dump the current Multi program will be loaded into an
edit buffer. If there is no empty buffer, a currently unused one will be
overwritten.

This message has been changed accordingly to the ARPD message in V2.0. See
ARPD for a description.

Byte    #       Value

        0       F0h     (EXC)
        1       IDW
        2       IDE
        3       DEV
        4       IDM

                Data:
       5,6      ARR parameter number (0...255) in format BYTE.
                Unused parameters shouldn't be changed.
                A change of the valid flag will be ignored.
                See ARPD for reference of parameters to
                parameter numbers.
        7       Parameter value (0...127). See ARPD for reference.

        8       CHKSUM over databytes 5...7
        9       F7h     (EOX)



RTGL
--------------------------------------------------
IDM: 62h (Real Time Global Parameter Edit)

Will be issued if the MicroWave is in Overflow-Link mode and a Global- or
MIDI parameter has been changed via the MicroWave's user interface.

If the MicroWave receives a RTGL dump the specified parameter will be set
to it's new value.

Byte    #       Value

        0       F0h     (EXC)
        1       IDW
        2       IDE
        3       DEV
        4       IDM

                Data:
        5       Global or MIDI parameter number (0...17)
                0...2: Global parameters
                3..17: MIDI parameters
                See GLBD for reference of parameters to
                parameter numbers
        6       Parameter value (0...127). See ARPD for reference.

        7       CHKSUM over databytes 5,6
        8       F7h     (EOX)



RTTT
--------------------------------------------------
IDM: 63h (Realtime Tuning Table Edit)

The RTTT SysEx message will be issued in Link Mode whenever a Tuning Table
parameter has been edited via the MicroWave's user interface.

When received, the specified table and parameter will be set to the value
contained by the message.

Tuning Table changes are recognized only by new Note-On messages. Table
updates will not change the pitch of already active voices.


Byte    #       Value

        0       F0h     (EXC)
        1       IDW
        2       IDE
        3       DEV
        4       IDM

        5       Tuning Table no. (0...3 = TT1...4)
        6,7     Parameter no. in format BYTE (0...255)
        8       Parameter value (0...127)

        9       CHKSUM over data bytes 5...8
       10       F7h     (EOX)



RTVT
--------------------------------------------------
IDM: 64h (Realtime Velocity Table Edit)

The RTVT SysEx message will be issued in Link Mode whenever a Velocity Table
parameter has been edited via the MicroWave's user interface.

When received, the specified table and parameter will be set to the value
contained by the message.

Velocity Table changes are recognized only by new Note-On messages. Table
updates will not change the velocity of already active voices.


Byte    #       Value

        0       F0h     (EXC)
        1       IDW
        2       IDE
        3       DEV
        4       IDM

        5       Tuning Table no. (0...3 = TT1...4)
        6       Parameter no. (1...127)
        7       Parameter value (1...127)

        8       CHKSUM over data bytes 5...7
        9       F7h     (EOX)



STRA
--------------------------------------------------
IDM: 70h (Store ARR Command)

The STRA SysEx command causes the MicroWave to store the current Multi
program (ARR) into a specified program memory location.
Upon completion the MicroWave will return to its current operating mode.
If the MicroWave is in poly mode, this message will have no effect.
No acknowledge or warning message will be issued, even if the store command
failed.


Byte    #       Value

        0       F0h     (EXC)
        1       IDW
        2       IDE
        3       DEV
        4       IDM

        5       Destination program no. (0...127)

        6       CHKSUM (= data byte 5)
        7       F7h     (EOX)



STRB
--------------------------------------------------
IDM: 71h (Store BPR Command)

The STRB SysEx command causes the MicroWave to store the sound program (BPR)
of the specified instrument of the current Multi program (ARR) into a specified
program memory location.
Upon completion the MicroWave will return to
its current operating mode. If the MicroWave is in poly mode, the instrument
number will be ignored, ie. the current sound program will be stored.
No acknowledge or warning message will be issued, even if the store command
failed.


Byte    #       Value

        0       F0h     (EXC)
        1       IDW
        2       IDE
        3       DEV
        4       IDM

        5       Instrument no. of which the BPR should be stored. (0...7)
        6       Destination program no. (0...127)

        7       CHKSUM of data bytes 5 and 6
        8       F7h     (EOX)



RCLA
--------------------------------------------------
IDM: 72h (Recall ARR Command)

The RCLA SysEx command causes the MicroWave to recall the original version
of the current Multi program (ARR). If the current multi program isn't edited,
the command has no effect.
Otherwise, the editbuffer will be cleared and any previously edits made on
that multi program are lost.
If the MicroWave is in poly mode this command has no effect.
No acknowledge or warning message will be issued.


Byte    #       Value

        0       F0h     (EXC)
        1       IDW
        2       IDE
        3       DEV
        4       IDM
        5       CHKSUM (= 0)
        6       F7h     (EOX)



RCLB
--------------------------------------------------
IDM: 73h (Recall BPR Command)

The RCLB SysEx command causes the MicroWave to recall the original version
of the sound program (BPR) used by the specified instrument of the current
Multi program (ARR).
If this sound program isn't edited, the command has no effect. Otherwise,
the editbuffer used by this sound program will be cleared and any previously
edits made on that sound program are lost.
If the MicroWave is in poly mode, the instrument number will be ignored, ie.
the current sound program will be recalled.
No acknowledge or warning message will be issued.


Byte    #       Value

        0       F0h     (EXC)
        1       IDW
        2       IDE
        3       DEV
        4       IDM

        5       Instrument no. (0...7)

        6       CHKSUM (= byte 5)
        7       F7h     (EOX)



CMPA
--------------------------------------------------
IDM: 74h (Compare ARR Command)

The CMPA SysEx command causes the MicroWave to swap the original and edited
versions of the current Multi program (ARR).
If the current multi program isn't edited, the command has no effect.
Note that it isn't possible to edit a multi program while it is in the
compare mode.
Issue the CMPA command again to enter edit mode again.
If the MicroWave is in poly mode, this command has no effect.
No acknowledge or warning message will be issued.

Byte    #       Value

        0       F0h     (EXC)
        1       IDW
        2       IDE
        3       DEV
        4       IDM
        5       CHKSUM (= 0)
        6       F7h     (EOX)



CMPB
--------------------------------------------------
IDM: 75h (Compare BPR Command)

The CMPB SysEx command causes the MicroWave to swap the original and edited
versions of the sound program of the specified instrument of the current
Multi program (ARR).
If the current sound program isn't edited,
the command has no effect. Note that it isn't possible to edit a sound program
while it is in the compare mode.
Issue the CMPB command again to enter edit mode again.
If the MicroWave is in poly mode, the instrument number will be ignored, ie.
the original and edited versions of the current sound program will be swapped.
No acknowledge or warning message will be issued.

Byte    #       Value

        0       F0h     (EXC)
        1       IDW
        2       IDE
        3       DEV
        4       IDM

        5       Instrument no. (0...7)

        6       CHKSUM (= byte 5)
        7       F7h     (EOX)



BTNM
--------------------------------------------------
IDM: 76h (Button Message)

This message is intended for those who want to implement a remote control
facility for the MicroWave. Please note that there is no way to find out in
what page the MicroWave currently is, except after powering up.

Byte    #       Value

        0       F0h     (EXC)
        1       IDW
        2       IDE
        3       DEV
        4       IDM

        5       Button No.
                0 = Shift
                1 = Store
                2 = Compare
                3 = Recall
                4 = Mode
                5 = OK
                6 = Dial

        6       Direction
                0 = Button down (pressed) or Dial left
                1 = Button up (released) or Dial right

        7       CHKSUM over data bytes 5 and 6
        8       F7h     (EOX)

-----------------------------------------------------------------

End of System Exclusive Implementation

March, 1st, 1994

(c) by Waldorf Electronics, West Germany

