This page is read from MIDI Instrument Definitions, a Python library used in the author's other projects, in which every number is traced to a document its maker published. Its source is on GitHub.
Korg Wavestation MIDI implementation
The MIDI implementation of the Korg Wavestation: what it answers to, and the 13 controls it offers, on firmware 3.0.
At a glance
- Firmware
- This page describes firmware 3.0.
- MIDI channel
- Any one of 1 to 16.
- Parts
- Multiset channel, 16 of them: on MIDI channels 1 to 16, taking notes, controls, and program changes.
FX Control Channel: on a MIDI channel of its own, taking controls. - MIDI mode
- 1: omni on, poly.
- Voices
- 32, or 8 or 16 as set on the instrument, shared by the parts that play notes.
- Note range
- 0 to 127: C-1 to G9, counting middle C as C4.
- Velocity
- Sent and received. Release velocity is ignored.
- Aftertouch
- Channel pressure and polyphonic, each answered. It sends aftertouch too.
- Pitch bend
- 12 semitones, and the range can be changed.
- Program change
- Received and sent, with 150 presets.
- MIDI clock
- Received.
- Start and stop
- Neither sent nor received.
- Control change
- 13 controls, in the tables below.
- NRPN
- Not recorded.
- System exclusive
- Supported.
Controls
In the order the definition gives them, by part and group. Under each control is the name a program calls it by, once pymidiinstrumentdefs.load("korg/wavestation") has loaded them.
On the base MIDI channel
| Control | CC | Values |
|---|---|---|
Modulation Wheelmodulation_wheel |
1 | 0-127 |
Foot Controlfoot_control |
4 | 0-127 |
Volumevolume |
7 | 0-127 |
Joy stick (X-axis)joy_stick_x_axis |
16 | 0-127 |
Joy stick (Y-axis)joy_stick_y_axis |
17 | 0-127 |
Sustain Switchsustain_switch |
64 | 0-63 off, 64-127 on |
Bank Select LSBbank_select_lsb |
32 | 0 ram1_ram2, 1 rom_card |
Bank Select MSBbank_select_msb |
0 | 0 Sent, never received |
Multiset channel
| Control | CC | Values |
|---|---|---|
Modulation Wheelmultiset_modulation_wheel |
1 | 0-127 Received, never sent |
Foot Controlmultiset_foot_control |
4 | 0-127 Received, never sent |
Volumemultiset_volume |
7 | 0-127 |
Sustain Switchmultiset_sustain_switch |
64 | 0-63 off, 64-127 onReceived, never sent |
Bank Select LSBmultiset_bank_select_lsb |
32 | 0 ram1_ram2, 1 rom_cardReceived, never sent |
Where these facts come from
Source documents
- KORG Wavestation Player's Guide, its user manual, read on 7 October 2026 (the file read).
- KORG Wavestation Reference Guide, its user manual, read on 7 October 2026 (the file read).
- Wavestation Version 3 Addendum, 3.0, its firmware addendum, read on 7 October 2026 (the file read).
- Downloads | WAVESTATION | KORG (USA), its download page, read on 7 October 2026.
How they were read
Korg Wavestation Player's Guide, 74 sheets: the banks and Performances on p. 3, the Patches on p. 4, MIDI on pp. 19 to 26, the specifications on p. 60 and the MIDI Implementation Chart on p. 66. Korg Wavestation Reference Guide, 128 sheets: the foot pedals on p. 60, the global settings on pp. 61 and 62, MIDI on pp. 69 to 78, the Performance Parts on pp. 85 to 87, the Performance Select page and its map on pp. 88 to 90, and Appendices 1 to 3 - received data on pp. 106 and 107, transmitted data on pp. 108 and 109, the system exclusive format from p. 110. Wavestation Version 3 Addendum, 41 sheets, for what software 3.0 changed. All three are scans from Korg's own download page for the instrument.
EVERY FIGURE HERE WAS READ BY EYE. The documents have no text layer, so nothing in them can be searched, extracted or checked by a machine. Two readers rendered the sheets with two different engines and read the same tables; where they disagreed the sheet was read again at a higher resolution. The quotations below are therefore transcriptions, and the quotation tool reports them as unchecked rather than as found.
THE CHART AND THE APPENDICES ARE TWO LISTS OF THE SAME CONTROLLERS, AND THEY DIFFER BY ONE. The chart, "Date: 1 Aug, 1990" (player p. 66), gives eleven controller rows and a twelfth, "1-95 Controls" (player p. 66), marked as received and Assignable. The received and transmitted appendices list the same controllers and one more: controller 7, Volume, in both directions (reference pp. 106 and 108). (Bank select is in a section of its own in each, and the received one leaves out controller 0, as the chart's cross does.) Three other statements side with the appendices. The foot pedal page: "VOLUME allows the pedal to control the Part volume level as well as transmit MIDI Controller 7" (reference p. 60). The multimode setup's Level: "Its function is equivalent to a MIDI Volume Control (7)" (reference p. 78). And the 1991 addendum: "This parameter has always responded to MIDI Volume (Controller #7); now, MIDI Volume may be transmitted as well" (addendum p. 10). So controller 7 is recorded, both ways, and the chart's silence is the outlier. The addendum is not consistent with itself about it either: its own summary says "Multiset channels now send and receive the MIDI Volume controller" (addendum p. 1), with "and" underlined, while p. 10 says reception was always there.
EIGHT CONTROLS, AND FOUR MORE NUMBERS LEFT OUT FOR WHAT THEY ARE. Recorded: modulation wheel 1, foot control 4, volume 7, the joystick's two axes on 16 and 17, the sustain switch 64, and bank select on 32 with controller 0 sent before it. Left out: 6 and 38 are data entry and 100 and 101 select a registered parameter, and they travel together, "Only received with registered parameter select" (reference p. 106), for "Pitch bend range, Master fine tune" (reference p. 106). That is RPN 0 and RPN 1, and with the data entry pair they are how those two settings arrive, not controls of their own. All Notes Off and Reset All Controllers are received - "Only recognized if not in OMNI mode and the All Notes Off parameter is enabled" (reference p. 107), so not at all as it ships - and they are channel mode messages, which this corpus does not record as controls.
TWO MORE CONTROLLERS ARE THE PLAYER'S TO CHOOSE, AND THEY ARE NOT RECORDED. "Wavestation modulation can be controlled by two additional MIDI controllers" (player p. 23), MIDI Controller 1 and 2, each set on the MIDI page to any number - "The value range is 1 - 95" (player p. 23) - which is the chart's 1-95 Controls row. Both guides' screenshots of that page show MODULATION WHEEL and BREATH CONTROLLER, and no page says those are the factory settings. Nor are the screenshots evidence of the software as shipped: one names a Patch "RAM2 49 CHOIR, FEMALE" (reference p. 85), where a bank's Patches are "Bank, number 00 - 34 or ALL" (reference p. 91). So a breath controller may well move a Wavestation, and nothing here can say it does. What either one changes is a matter of routing: the two settings "define the MIDI controllers available for the modulation matrix and effects modulation" (reference p. 70).
THE SUSTAIN SWITCH IS READ AS TWO HALVES AND SENT AS TWO VALUES. Received: "0 - 63: off, 64 - 127: on" (reference p. 106); transmitted: "0:off, 127: on" (reference p. 108). The values below are the bands it answers to, which contain what it sends.
BANK SELECT REACHES TWO PAIRS OF BANKS, AND A PROGRAM CHANGE THE FIFTY IN EACH. "RAM1 and RAM2 correspond to Controller #32, value 0. ROM and CARD correspond to Controller #32, value of 1" (player p. 24), and a program change picks within the pair: 0 to 49 the first bank, 50 to 99 the second. "In other words, MIDI program changes 0 - 99 select Performances in RAM1 and RAM2" (player p. 24). It receives only the second half of bank select, and sends both - controller 0 always as 0, then controller 32: "The Wavestation itself always sends these messages along with Program Changes" (player p. 24). A Performance Select Map can replace all of that with a table of the player's own, which is off by default. What a program change from 100 to 127 does without the map, and what a bank select above 1 does, no page says. So this is not the usual two-byte bank select and a sender should not treat it as one: the first byte is ignored on arrival, and the second names two banks at once.
FOUR MIDI MODES, AND THE ONE IT SHIPS IN IS OMNI. "When shipped, the Wavestation is set to MIDI Omni mode" (player p. 19), which is mode 1. The chart's Recognized column under Default lists 1, 3, 4 on p. 66 - the modes it can be set to, not a second default - and its Messages row is crossed: mode messages change nothing. POLY "receives on the Basic Channel" (player p. 22); MONO spreads one instrument over consecutive channels for a guitar controller; and MULTI is the fourth, below.
MULTI GIVES EACH OF THE SIXTEEN CHANNELS A PERFORMANCE OF ITS OWN. "MULTI mode enables the Wavestation to receive multi-timbrally, one Performance per channel" (reference p. 77), each channel switched on or off, levelled and given a Performance in one of sixteen stored setups. "In MULTI, you can still play a 17th Performance from the Wavestation keyboard" (player p. 22), and "In MULTI and MONO modes, the local keyboard and incoming MIDI have separate controllers" (player p. 21). What each channel takes is stated by what is excluded: data entry and the registered parameter are "Only received on the basic channel if in MULTI mode" (reference p. 106), and the controllers recorded here are not. "In MULTI mode the Wavestation responds to Performance selections in each channel" (reference p. 77). So each part receives notes, controllers and program changes. A further channel, set per setup, takes effects modulation: "This is the MIDI channel that will receive controller data for effects modulation sources" (reference p. 77).
SO FIVE CONTROLLERS ARE WRITTEN TWICE. Naming no part a control is on the basic channel: what POLY mode listens on, and what the keyboard sends on unless Xmit Mode is PART CHANNEL (reference p. 74). As shipped, in OMNI, it is answered on any channel. Keyed multiset_ it names the part, a channel of a multimode setup, which MULTI mode uses and MONO mode too (addendum p. 12): modulation wheel, foot control, volume, sustain and bank select's lower half, numbers 1, 4, 7, 64 and 32. Volume is the one of the five that a page names for these channels, and from software 3.0 the one that is sent there as well, when a setup's level is changed on the instrument: "Whenever you change the volume of a Performance in a Multiset, a MIDI Volume message is sent out on its channel" (addendum p. 10). The other four rest on the exclusion above and are received only, since what the keyboard sends goes out on the basic channel or on the channels of a Performance's Parts (reference p. 74). Sustain has a switch on every Part of a Performance as well, which "Chooses whether the Part responds to the Sustain." (reference p. 86). The joystick's two numbers reach a channel's Performance as the four do, and name no part only because the rule this follows covers the standard controllers. Bank select's upper half is sent and never received, so it has no twin. A setup's rows are MIDI channels 1 to 16 whatever the basic channel is (reference pp. 77, 78, 118 and 119), which the part says with channel: 1, so a program asking about a row is handed the five keyed multiset_ and not the controls naming no part. In MONO mode only the rows from the basic channel up, as many as the # MONO CHANNELS parameter asks for and no further than 16, are received (addendum p. 12), which the part cannot say. Where a row shares the basic channel's number, the two keys are one message on that channel: the key naming no part is the one that answers in POLY mode and the multiset_ key the one in MULTI mode, and in MONO mode, where the basic channel is the first row received, both describe it at once. Until 2026-10-14 the part gave its rows as an offset of 0 from the basic channel, which handed the first row each of the five numbers twice.
IT ANSWERS TO BOTH KINDS OF AFTERTOUCH AND ITS KEYBOARD SENDS ONE. "Monophonic and polyphonic aftertouch are recognized but may or may not have an obvious effect, depending on the specific Patches which are programmed into the current Performance" (player p. 19) and "Channel aftertouch is transmitted" (player p. 19). The chart agrees: key aftertouch crossed transmitted and marked received, channel aftertouch marked both ways (player p. 66). aftertouch: both records what it answers to, and aftertouch_transmits: true what it sends. The keyboard itself has only the one kind to give: "Aftertouch pressure sensing is monophonic" (player p. 7).
THIRTY-TWO VOICES, AND A PATCH SPENDS ONE, TWO OR FOUR ON EACH NOTE. "32 voices including individual filters, amps, LFOs, and envelopes" (player p. 60), and "Each patch can have 1, 2, or 4 voices" (player p. 4) - "using fewer oscillators allows you to play more keys (voices) simultaneously" (player p. 44). So a single Part playing one patch gets thirty-two, sixteen or eight notes, and layered Parts get fewer between them: "The Wavestation can play up to 32 keys simultaneously, depending on the current Performance" (player p. 7). No page says that the Parts of a Performance and the channels of a multimode setup draw on one pool of voices; thirty-two is the instrument's figure and the file assumes they share it. Wave sequences may spend more: "The actual number depends on how much crossfading you have defined" (player p. 55).
THE CLOCK IS RECEIVED AND DRIVES ONE THING. "Used for Wave Sequence Sync function" (reference p. 107), and only when a global setting says so: "MIDI means that Wave Sequences sync to MIDI clocks" (reference p. 62). Nothing is transmitted, and the chart crosses Commands, Song Position and Song Select both ways (player p. 66): there is no transport.
THE BEND RANGE IS A GLOBAL SETTING THAT A PATCH MAY OVERRIDE. "Each Patch can select this global setting or use its own bend depth parameter" (reference p. 62), from OFF through twelve intervals to OCTAVE. Twelve semitones is therefore the most, and it is per patch. A sender can also set it by registered parameter, which is why controllers 100 and 101 are there.
A HUNDRED AND FIFTY PERFORMANCES, AND TWO HUNDRED WITH A CARD. "There are 50 Performances in each bank, so you have a minimum of 150 Performances available - 200 if a Performance Card is in use" (player p. 3). 150 is recorded because it is what every Wavestation has.
ONE NOTE PARAMETER SPLITS NOTES BETWEEN TWO INSTRUMENTS. The MIDI Receive page's Note setting is ALL, EVEN or ODD, so two Wavestations can share a part and double the voices; the addendum's version: "Setting one instrument to EVEN and the other to ODD causes each to ignore half of the MIDI notes" (addendum p. 12). ALL is normal, and that is what the note range below assumes.
SYSTEM EXCLUSIVE IS ITS WHOLE EDITOR. A Korg header with "Wavestation Device Id" (reference p. 110), message types for parameter changes and every kind of dump and request, and a global that decides whether parameter changes are sent or recognised at all, off by default. The 3.0 addendum lists the parameter numbers and says "Parameters 380-404 are ignored by the Wavestation Keyboard" (addendum p. 37) - they are the A/D rack's. And 3.0 renumbers the parameters between FX_MOD4 and BANK_COPY_TYPE: they are 273 to 345 in 1990 (reference p. 124) and 274 to 346 in 3.0 (addendum p. 36), where a new FX_MOD3 takes 273. So a parameter change means different things to the two, and an editor has to know which it is talking to.
NOT RECORDED: nrpn. The chart has no NRPN row and neither appendix names controller 98 or 99; the only parameter numbers it takes over controllers are the two registered ones above.
NOT RECORDED: what 3.0 added beyond the controllers. Its key and velocity zones "may now be entered over MIDI" (addendum p. 10) by playing notes into the page that sets them - though the 1990 guide already says "Key and velocity amounts may also be entered from the keyboard, or over MIDI" (player p. 32) - the local keyboard can be transposed, and the Performance Select Map can be sent as a system exclusive dump. Nothing in it adds or renumbers a controller.