goto section page goto youngmonkey main page make contact, e-mail

Korg Wavestation SR Developer Overview
Advertising Space Available

DATE: 1992 by Korg Research and Development

1.0 Changes in the Wavestation SR

This document assumes that you are already familiar with the Wavestation,
Wavestation EX, and Wavestation A/D. It details the differences between the
Wavestation SR and the Wavestation A/D; if you need documentation for the
Wavestation A/D as well, please contact Korg USA Developer Support.

1.1 Seven Additional ROM Program Banks

7 more ROM Banks have been added, which (along with RAM1-3 and the original
ROM Bank) brings the total number of internal Banks to 11.

1.2 Enhanced Multisets

The SR has 32 Multisets, as opposed to the 16 of the Wavestation and
A/D. The SR's Multisets also have 15-character names, just like Performances.
Each Channel now has an additional FX Bus parameter, which is used for panning
and effects routing (just as the similarly named parameter in Performance
Parts). Instead of the Part's FX Bus setting, "PATCH," Multisets have "PERF."

1.3 Uses New Korg PCM Cards

The SR uses the same PCM cards as the new 01/W series, which have four times
storage capacity as the older cards. The program data cards are the same as
the Wavestation, so that all of the existing program card libraries can be

1.4 Enhanced MIDI features

Reception of Bank Select may be disabled, to make it easier to select programs
from controllers with less banks than the SR. It is possible to globally limit
the number of MIDI channels received in MULTI mode, in addition to the number
received in MONO mode (the new parameter is stored separately). MIDI Pan
(controller #10) is now recognized (controller 42 is also used for accessing
extra bus settings, C, C+D, D, ALL, and PATCH or PERF).

1.5 New SysEx Executable Commands

New commands are provided for initializing entire Performances (all 8 parts),
initializing Patches, soloing Parts and Wave Sequence Steps, initializing and
copying entire Wave Sequences, companding Wave Sequences, and inserting and
deleting Wave Sequence Steps.

1.6 Wave Sequence Dump Request

This isn't actually unique to the SR, but I thought that I'd point it out in
case anyone hadn't noticed it previously. The original Wavestation keyboard
required the user to manually initiate a Wave Sequence dump from the front
panel; the Wavestation EX, Wavestation A/D, and Wavestation SR all respond to
a Wave Sequence dump request.

1.7 No Local Controllers or Analog Inputs

The analog inputs, joystick, and pedal inputs have been removed (joystick and
pedals are still received via MIDI).

1.8 Program Data Fully Compatible with previous Wavestations

The expanded features of the Wavestation SR are simply ignored by the A/D, EX,
and original keyboard. Any parameter editors will work just as they did for
previous Wavestations.

2.0 Implementation of ROM expansion

The Wavestation SR has 3 RAM Banks (as does the Wavestation A/D), and 8 ROM
Banks (seven more than the Wavestation, Wavestation EX, and Wavestation A/D,
which all have only one). To maintain compatibility with older members of
the Wavestation family, these additional Banks have been implemented in
several different ways, as described below.

2.1 Internal Bank Numbering

Where possible, SysEx data for the new Banks is handled by simply
referencing their internal bank numbers. In two important cases, however, we
have used other methods, in the interest of maintaining backwards
compatibility with the previous Wavestation instruments. These special cases
are the references to Patches in Performances and to Wave Sequences in
Patches. Additionally, the Multi Mode Setups and Performance Map are sent
three times each, with each carrying information appropriate to a different
Wavestation model.

Note that the SR's front panel interface increments through the Banks
according to the order of the bank names, as opposed to the order of the
internal bank numbers (otherwise, you'd press the Bank button and see, RAM1,
RAM2, ROM11, CARD, RAM3, ROM4 etc.).

Note also that the old ROM Bank is now ROM11.

Bank Name    Internal Bank Number
RAM1         0
RAM2         1
RAM3         4
ROM4         5
ROM5         6
ROM6         7
ROM7         8
ROM8         9
ROM9         10
ROM10        11
ROM11        2
CARD         3

2.2 MIDI Bank Select and Program Change

The table below shows the mapping between MIDI Bank Select (controller #32)
and the internal Banks. Note that, as in the keyboard and A/D, there are two
internal Banks to every MIDI Bank (sounds like a Beach Boys song....). The MSB
of Bank Select, controller #0, is transmitted but ignored on receive.

SR Bank    MIDI Bank   MIDI Program Change
RAM1       0           0 - 49
RAM2       0           50 - 99
RAM3       2           0 - 49
ROM4       2           50 - 99
ROM5       3           0 - 49
ROM6       3           50 - 99
ROM7       4           0 - 49
ROM8       4           50 - 99
ROM9       5           0 - 49
ROM10      5           50 - 99
ROM11*     1           0 - 49
CARD*      1           50 - 99

*ROM11 is the same as the original Wavestation's single ROM bank. To
maintain compatibility with the Wavestation family, ROM11 and CARD use MIDI
Bank 1.

2.3 Multi Mode Setup

The Multi Mode Setup dump is sent three times; once as a "normal" dump for the
Wavestation and Wavestation EX, once as an "expanded" dump for the Wavestation
A/D, and once as a true SR dump. Each dump uses a similar data structure, with
a different header, as described in the System Exclusive documentation. The
"normal" and "expanded" dumps change the Bank references as shown in the chart
below, while the SR dump leaves the Banks unchanged. Also, the normal and
expanded dumps only include the data for the first 16 Multisets, and also
strip out the names and channel panning; the SR dump includes all of this
additional data.

The Wavestation keyboard ignores both the expanded and SR dumps, so that
only the normal one has any effect. The Wavestation A/D accepts both the
normal and the expanded dumps, ignoring the SR dump; as the expanded version
is received second, it supersedes the normal one. The SR accepts all three
dumps, but as the SR dump is received last, it is the one which takes effect.

The All Data dump contains the Wavestation Keyboard version of the Multi
Mode Setup data; the A/D and SR versions are sent separately afterwards.

The chart below shows the conversion from Wavestation SR Banks to
Wavestation A/D and Wavestation Keyboard Banks.

SR Bank   A/D Bank  Keyboard Bank
RAM1      RAM1      RAM1
RAM2      RAM2      RAM2
RAM3      RAM3      ROM
ROM4      RAM3      RAM1
ROM5      RAM3      RAM2
ROM6      RAM3      CARD
ROM7      RAM1      RAM1
ROM8      RAM2      RAM2
ROM9      ROM       ROM
ROM10     CARD      CARD
ROM11     ROM       ROM
CARD      CARD      CARD

2.4 Performance Map

The Performance Map dump, like the Multi Mode Setup dump above, is sent
three times; once as a "normal" dump for the keyboard, once as an "expanded"
dump for the A/D, and once as a true SR dump. The Banks are mapped as for
Multiset dumps, above. Note that the original Wavestation keyboard ignores all
Perf Map dumps (Perf Maps are only communicated as part of the All Data Dump),
but the Wavestation EX recognizes the "normal" dump. The Wavestation A/D
accepts the first two dumps, but as the expanded version is received second,
it supersedes the normal one. The SR accepts all three dumps, but as the SR
dump is received last, it is the one which takes effect.

The All Data dump contains the Wavestation keyboard version of this data;
the expanded and SR versions are sent separately afterwards.

2.5 Patches in Performances

In the Performance dump, bits 6-7 of the Part_Mode parameter work in
conjunction with the Bank_Num parameter to determine the Bank of the Patch
in the current Part.

Note that the Wavestation A/D used only bit 6 of the Part_Mode parameter,
for the purpose of selecting RAM3. Also, the A/D itself always set the
Bank_Num of a RAM3 Wave to 2; unfortunately, this point was omitted from the
A/D's developer docs. We are aware that some developers set the Bank_Num for
RAM3 to 4; others may have ignored this parameter altogether. This means that,
to ensure compatibility of your Wavestation A/D patches with the SR, you may
need to check your code for the A/D (otherwise, a Part might show up as RAM3
on the A/D and, for instance, ROM5 on an SR). To maintain as much
compatibility as possible with existing editor programs, the SR will accept
any Bank_Num value of 4 or greater as RAM3 (when the Part_Mode bits are also
set correctly to 01).

Bank_Num    Bits 6-7 of Part_Mode
            00     01     10     11
0           RAM1   ROM4   ROM7   Reserved for future use
1           RAM2   ROM5   ROM8   Reserved for future use
2           ROM11  RAM3*  ROM9   Reserved for future use
3           CARD   ROM6   ROM10  Reserved for future use

*As discussed above, when bits 6-7 are set to 01, Bank_Num values of 4 or
greater will also be interpreted as RAM3.

2.6 Wave Sequences in Patches

In the Patch dump, the Bank_Exp byte works in conjunction with the Wave_Bank
parameter to determine the Bank of a Wave Sequence used by a Patch. While each
of the four Waves in a Patch has its own Wave_Bank parameter, there is only
a single Bank_Exp byte. Bits 0 and 4 refer to Wave A, bits 1 and 5 to Wave
B, bits 2 and 6 to Wave C, and bits 3 and 7 to Wave D.

If neither of a Wave's Bank_Exp bits are set, then the Wave_Bank parameter
selects the Wave Sequence Bank as before: 0 is RAM1, 1 is RAM2, 2 is ROM11,
and 3 is Card. If one of the Bank_Exp bits is set, the Wave Sequence Bank is
determined as shown in the table below.

Only one of the two Bank_Exp bits per Wave should be set. For instance, if Bit
3 is set to 1 (so that D uses ROM4), Bit 7 should be set to 0.

The Wave_Bank parameter is similar to the Bank_Num parameter in
Performances. The Wavestation A/D always set Wave_Bank to 2 for RAM3, but to
maintain as much compatibility as possible with existing editor programs,
Wave_Bank values of 4 and above will also be accepted as RAM3 (when the
Bank_Exp bits are set appropriately).

Bank_Exp Bits        Wave_Bank (set for each Wave)
                     0        1        2        3
bit 0=1 (bit 4=0)    A=ROM4   A=ROM5   A=RAM3*  A=ROM6
bit 1=1 (bit 5=0)    B=ROM4   B=ROM5   B=RAM3*  B=ROM
bit 2=1 (bit 6=0)    C=ROM4   C=ROM5   C=RAM3*  C=ROM6
bit 3=1 (bit 7=0)    D=ROM4   D=ROM5   D=RAM3*  D=ROM6
bit 4=1 (bit 0=0)    A=ROM7   A=ROM8   A=ROM9   A=ROM10
bit 5=1 (bit 1=0)    B=ROM7   B=ROM8   B=ROM9   B=ROM10
bit 6=1 (bit 2=0)    C=ROM7   C=ROM8   C=ROM9   C=ROM10
bit 7=1 (bit 3=0)    D=ROM7   D=ROM8   D=ROM9   D=ROM10

*As discussed above, when bits 0-3 are set, Wave_Bank values of 4 or greater
will also be interpreted as RAM3.

Another look at the bits in the Bank_Exp byte:

2nd Expansion Bits      1st Expansion Bits
7     6     5     4     3     2     1     0

D     C     B     A     D     C     B     A
    ( W a v e )             ( W a v e )

3.0 Implementation of Enhanced Multisets

3.1 Multiset Selection via SysEx

The original Wavestation allowed selection of Multisets via System Exclusive
parameter changes. The Wavestation A/D added an option to select Multisets via
Program Changes on the Basic Channel. The SR supports both of these methods,
but the SysEx implementation has been changed to support the 16 additional

The original Multi Mode Setup Select, message 5B(hex), is used to select
Multisets 0-15; the new Multi Mode Setup Select SR Expanded, message
63(hex), is used to select the new Multisets, 16-31. The SR Expanded message
uses the true Multiset number as the value, so that Multiset 16 is selected by
a value of 16.

The Wavestation keyboard and Wavestation A/D will not recognize the SR
Expanded message.

3.2 Multiset Sysex Dump

The SR's Multiset SysEx dump consists of four main parts. First is the
original set of 16 Multisets, with the same data structure as before. Next
is the set of the 16 additional Multisets, also using the original data
structure. Next, the names for all 32 Multisets are sent, followed by the FX
Bus settings for each of the 16 channels in all of the 32 Multisets.

Note that the SR also sends out Multiset dumps compatible with the Wavestation
keyboard and Wavestation A/D, as described under section 2.3, Multi Mode Setup
on page 6.

Please note that, as in the original keyboard and A/D, there is an additional
sent after each group of 16 Multisets (so, in the SR multiset dump, there are
two extra bytes). This is shown in the System Exclusive documentation, but some
developers have missed this detail.

4.0 Default Values of Non-Referenced Parameters

4.1 FOOT PEDAL ASSIGN page removed

The Foot Pedal Assign page has now been completely removed, as there are no
foot pedals for it to assign (sometimes, these things just make sense). The
page's parameters will continue to be transferred by the GLOBAL system
exclusive data dump. The parameters will be stored, but not displayed, in
the Wavestation SR. All the parameters will be set to the following default
values on initial power up:

Foot Pedal    Function       Polarity

Damper        Sustain        -
Pedal/Sw 1    Perf Advance   -
Pedal/Sw 2    Mod Pedal      -

4.2 Other Parameters Not Referenced by the Wavestation SR

The following parameters are referenced by the Wavestation and Wavestation EX,
but not by the A/D or SR. This list is the same as in the Wavestation A/D
documentation; we have included it again for convenience's sake.

4.2.1 TRANSMIT page parameters

These will be transferred in the GLOBALS system exclusive data transfer. Since
these parameters cannot be edited on the Wavestation SR, they can only be
changed by a GLOBAL system exclusive data transfer from a Wavestation or a
system exclusive parameter change message. All the parameters will be set to
the following default values on initial power up of the Wavestation SR.

oXmit Mode will be set to BASIC Channel.
oLocal Control will be set to ENABLE.
oProgram Change will be set to ENABLE.
oAftertouch will be set to ENABLE.
oPitch Bend will be set to ENABLE.
oControllers will be set to ENABLE.

4.2.2 PROGRAM PART DETAIL page MIDI Xmit parameters.

The Xmit Chan and Prog Change Xmit parameters have been removed from the
Performance Part Detail page. These will be transferred by PERFORMANCE
system exclusive data transfer, or by a Program CARD. Since these parameters
cannot be edited on the Wavestation SR, they can only be changed by a GLOBAL
system exclusive data transfer from a Wavestation or a system exclusive
parameter change message. All the parameters will be set to the following
default values on initial power up of the Wavestation SR.

oXmit Chan will be set to 1.
oProg Change Xmit will be set to 1.

4.2.3 Key offset amount parameter removed from MIDI page.

 	Xpose parameter added to GLOBAL page.

The Key offset amount parameter has been removed from the MIDI page, and the
Xpose parameter has been added to the GLOBAL page. These will be received by
GLOBAL system exclusive data transfer. The Key Offset Amount field on the
Wavestation will be set to the value of the Xpose field on the GLOBALS page of
the Wavestation SR.

5.0 Parameter Changes

5.1 New Parameters added.

The SR adds a number of new parameters. Some will be useful to you as a
developer; others were added for the user interface or internal debugging, and
are best left alone.

407 through 409 allow you to initiate dumps as if you were doing so from the
front panel. These were added for the user interface, and it's probably best
to use the dump requests instead.
/* 407 */   	SYSEX_XMIT_TYPE,
/* 408 */   	SYSEX_XMIT_BANK,
/* 409 */   	SYSEX_XMIT_NUM,
410 through 424 should look similar to you, as they duplicate the functions of
pre-existing parameters. These were added for the user interface alone, and
the SR will accept all of the old parameters just fine.
/* 410 */   	WAVE_BANK,
/* 411 */   	WAVE_NUM,
/* 412 */   	WAVE_NAME,
/* 413 */   	WAVE_LEVEL,
/* 414 */   	WAVE_TUNE_COARSE,
/* 415 */   	WAVE_TUNE_FINE,
/* 416 */   	WAVE_TUNE_SLOPE,
/* 417 */   	WAVE_BUS_A,
/* 418 */   	WAVE_BUS_B,
/* 419 */   	WAVE_BUS_C,
/* 420 */   	WAVE_BUS_D,
/* 421 */   	MIX_ENV_RATE_1,
/* 422 */   	MIX_ENV_RATE_2,
/* 423 */   	MIX_ENV_RATE_3,
/* 424 */   	MIX_ENV_RATE_4,
The Solo Status parameters are read-only.
/* 425 */   	PART_SOLO_STATUS,
/* 426 */   	WS_STEP_SOLO_STATUS,
Params 427-428 can be used to change the Mode of the SR, just as if the
front panel PERF or MULTI button were pressed.
/* 427 */   	PERF_MIDI_MODE,
/* 428 */   	MULTI_MIDI_MODE,
If you want to play the demos via SysEx (possible but unlikely), use 429 to
select the desired demo sequence, and then use 451 (EXECUTE_PLAY_DEMO) to
start playback.
/* 429 */   	CURRENT_DEMO,
430 is read-only.
/* 430 */   	CURRENT_DEMO_NAME,
WAVE_WAVE was added for the user interface only. You can safely ignore it, but
first, for fun, read it aloud a couple of times using the correct inflection
/* 431 */   	WAVE_WAVE,
432 and 433 are the new Multiset parameters. The MULTISET_OUTPUT applies to
the current channel.
/* 432 */   	MULTISET_NAME,
/* 433 */   	MULTISET_OUTPUT,
434-436 are the new MIDI parameters. 434 sets the number of channels
received in Multi mode. 435 determines whether or not controllers, along
with notes, should be reset if active sensing is discontinued. 436
determines whether or not Bank Select messages are recognized. See the
Reference Guide for more details.
/* 434 */   	NUM_MULTI_CHANS,
/* 436 */   	REC_BANK_CHANGE
437 -449 are read-only parameters intended for internal debugging. Note that
the SR will respond to a Device Inquiry Request, which includes the version
/* 437 */   	KSD_ENABLE,
/* 438 */   	VERSION_NUM,
/* 439 */   	VERSION_DATE,
/* 440 */   	ERROR_NUMBER,
/* 441 */   	TASK_NUMBER,
/* 442 */   	STATUS_REGISTER,
/* 443 */   	CRASH_LEVEL,
/* 444 */   	PROGRAM_COUNTER,
/* 445 */   	C_PROGRAM_COUNTER,
/* 446 */   	STACK_POINTER,
/* 447 */   	USER_STACK_POINTER,
/* 448 */   	POOL_LEVEL,
/* 449 */   	POOL_LEVEL_MAX,
We affectionately refer to 450 as the "Bill and Ted parameter."
/* 450 */   	BOGUS_PARAM,
451 to the end are the executable parameters. A value of 1 executes the
command, just like pressing "YES" on the front panel; a value of 0 is the same
as pressing "NO" (you shouldn't need to use the latter).
/* 451 */   	EXECUTE_PLAY_DEMO,
/* 452 */   	EXECUTE_SOLO_PART,
/* 453 */   	EXECUTE_INIT_PART,
/* 454 */   	EXECUTE_COPY_PART,
/* 456 */   	EXECUTE_COPY_FX_ALL,
/* 458 */   	EXECUTE_COPY_FX_MIX,
/* 465 */   	EXECUTE_SOLO_WS_STEP,
/* 466 */   	EXECUTE_WRITE,
/* 467 */   	EXECUTE_COMPARE,
/* 468 */   	EXECUTE_INIT_PATCH,
/* 470 */   	EXECUTE_SYSEX_XMIT,
/* 472 */   	EXECUTE_BANK_MOVE,
479 initializes all RAM to default parameters.
/* 479 */   	EXECUTE_INIT_RAM,
480 and 481 load the contents of a card into RAM, and then spit the data out
again, respectively. These will make complete and utter hash of the SR's
Multisets, Performances, etc. We considered giving these functions their own
large, red button on the front panel, labeled "Do Not Touch," but then thought
the better of it.
/* 480 */   	EXECUTE_LOAD_DIAG,
/* 481 */   	EXECUTE_SAVE_DIAG,
482 duplicates the user interface EXIT function.
/* 482 */   	EXECUTE_EXIT_LEVEL,
Special Bonus Parameter 483 was added after the printing of the first
version of the SR Reference Guide.
/* 484 */   	PARAM_END     /* Must be last */