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 TRITON MIDI implementation
The MIDI implementation of the Korg TRITON: what it answers to, and the 65 controls it offers, on firmware 2.5.3.
At a glance
- Firmware
- This page describes firmware 2.5.3.
- MIDI channel
- Any one of 1 to 16.
- Parts
- Track, 16 of them: each on a MIDI channel of its own, taking notes, controls, and program changes.
- MIDI mode
- 3: omni off, poly.
- Voices
- 62, or 31 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
- How far it bends is not recorded, and the range can be changed.
- Program change
- Received and sent.
- MIDI clock
- Sent and received.
- Start and stop
- Sent and received.
- Control change
- 54 controls, in the tables below.
- NRPN
- Supported. 11 of the controls below have one.
- 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/triton") has loaded them.
On the base MIDI channel
Continuous controllers
| Control | CC | NRPN | Values |
|---|---|---|---|
Modulation 1 (Joystick +Y)modulation_1 |
1 | 0-127 | |
Modulation 2 (Joystick -Y)modulation_2 |
2 | 0-127 | |
Foot Pedalfoot_pedal |
4 | 0-127 | |
Portamento Timeportamento_time |
5 | 0-127 | |
Volumevolume |
7 | 0-127 | |
Post IFX Panpotpost_ifx_panpot |
8 | 0-127 | |
Panpotpanpot |
10 | 0-127 | |
Expressionexpression |
11 | 0-127 |
Switches and pedals
| Control | CC | NRPN | Values |
|---|---|---|---|
Hold 1 (Damper)hold_1 |
64 | 0-127 | |
Portamento Off/Onportamento |
65 | 0-63 off, 64-127 on |
|
Sostenuto Off/Onsostenuto |
66 | 0-63 off, 64-127 on |
|
Soft Pedalsoft_pedal |
67 | 0-127 |
Sound controllers
| Control | CC | NRPN | Values |
|---|---|---|---|
Sustain Levelsustain_level |
70 | 0-127 | |
Resonance/HPF Cutoffresonance_hpf |
71 | 0-127 | |
Release Timerelease_time |
72 | 0-127 | |
Attack Timeattack_time |
73 | 0-127 | |
LPF Cutofflpf_cutoff |
74 | 0-127 | |
Decay Timedecay_time |
75 | 0-127 | |
LFO1 Speedlfo_1_speed |
76 | 0-127 | |
LFO1 Pitch Depthlfo_1_pitch_depth |
77 | 0-127 | |
LFO1 Delaylfo_1_delay |
78 | 0-127 | |
Filter EG Intensityfilter_eg_intensity |
79 | 0-127 |
Assignable knobs, switches and the ribbon
| Control | CC | NRPN | Values |
|---|---|---|---|
Ribbon Controllerribbon_controller |
16 | 0-127 | |
Knob Mod1knob_mod_1 |
17 | 0-127 | |
Value Slidervalue_slider |
18 | 0-127 | |
Knob Mod2knob_mod_2 |
19 | 0-127 | |
Knob Mod3knob_mod_3 |
20 | 0-127 | |
Knob Mod4knob_mod_4 |
21 | 0-127 | |
SW1 Mod.sw_1_mod |
80 | 0-63 off, 64-127 on |
|
SW2 Mod.sw_2_mod |
81 | 0-63 off, 64-127 on |
|
Foot Switchfoot_switch |
82 | 0-63 off, 64-127 on |
|
Multi Purpose Ctrl8multi_purpose_ctrl_8 |
83 | 0-127 |
Effect controls, sends and switches
| Control | CC | NRPN | Values |
|---|---|---|---|
FX Control 1fx_control_1 |
12 | 0-127 | |
FX Control 2fx_control_2 |
13 | 0-127 | |
Send 2 Levelsend_2_level |
91 | 0-127 | |
Send 1 Levelsend_1_level |
93 | 0-127 | |
All Insert FX Off/Onall_insert_fx |
92 | 0 off, 1-127 on |
|
Master FX1 Off/Onmaster_fx_1 |
94 | 0 off, 1-127 on |
|
Master FX2 Off/Onmaster_fx_2 |
95 | 0 off, 1-127 on |
Arpeggiator, by NRPN
| Control | CC | NRPN | Values |
|---|---|---|---|
Arpeggiator On/Offarpeggiator_on_off |
2 MSB 0, LSB 2 |
0-63 off, 64-127 on |
|
Arpeggiator Gatearpeggiator_gate |
10 MSB 0, LSB 10 |
0-127 | |
Arpeggiator Velocityarpeggiator_velocity |
11 MSB 0, LSB 11 |
0-127 |
Sound parameters received by NRPN
| Control | CC | NRPN | Values |
|---|---|---|---|
Vibrato Ratevibrato_rate |
136 MSB 1, LSB 8 |
0-127 Received, never sent |
|
Vibrato Depthvibrato_depth |
137 MSB 1, LSB 9 |
0-127 Received, never sent |
|
Vibrato Delayvibrato_delay |
138 MSB 1, LSB 10 |
0-127 Received, never sent |
|
Filter Cutofffilter_cutoff |
160 MSB 1, LSB 32 |
0-127 Received, never sent |
|
Filter Resonancefilter_resonance |
161 MSB 1, LSB 33 |
0-127 Received, never sent |
|
EG Attack Timeeg_attack_time |
227 MSB 1, LSB 99 |
0-127 Received, never sent |
|
EG Decay Timeeg_decay_time |
228 MSB 1, LSB 100 |
0-127 Received, never sent |
|
EG Release Timeeg_release_time |
230 MSB 1, LSB 102 |
0-127 Received, never sent |
Without a group
| Control | CC | NRPN | Values |
|---|---|---|---|
Bank Select(MSB)bank_select_msb |
0 | 0-127 | |
Bank Select(LSB)bank_select_lsb |
32 | 0-127 |
Track
Continuous controllers
| Control | CC | NRPN | Values |
|---|---|---|---|
Modulation 1 (Joystick +Y)track_modulation_1 |
1 | 0-127 | |
Modulation 2 (Joystick -Y)track_modulation_2 |
2 | 0-127 | |
Foot Pedaltrack_foot_pedal |
4 | 0-127 | |
Portamento Timetrack_portamento_time |
5 | 0-127 | |
Volumetrack_volume |
7 | 0-127 | |
Panpottrack_panpot |
10 | 0-127 | |
Expressiontrack_expression |
11 | 0-127 |
Switches and pedals
| Control | CC | NRPN | Values |
|---|---|---|---|
Hold 1 (Damper)track_hold_1 |
64 | 0-127 | |
Portamento Off/Ontrack_portamento |
65 | 0-63 off, 64-127 on |
|
Sostenuto Off/Ontrack_sostenuto |
66 | 0-63 off, 64-127 on |
|
Soft Pedaltrack_soft_pedal |
67 | 0-127 |
Without a group
| Control | CC | NRPN | Values |
|---|---|---|---|
Bank Select(MSB)track_bank_select_msb |
0 | 0-127 | |
Bank Select(LSB)track_bank_select_lsb |
32 | 0-127 |
Where these facts come from
Source documents
- TRITON-SERIES MIDI IMPLEMENTATION, Version 1.6, dated 19 September 2002, its MIDI implementation, read on 9 October 2026 (the file read).
- Triton Basic Guide, E 4, its user manual, read on 9 October 2026 (the file read).
- TRITON Parameter Guide, its user manual, read on 9 October 2026 (the file read).
- TRITON Version 2.5 Update guide, E 1, its user manual, read on 9 October 2026 (the file read).
- Triton 2.5.3 History, 2.5.3, its release notes, read on 9 October 2026 (the file read).
- Downloads | TRITON | KORG (USA), its download page, read on 9 October 2026 (the file read).
How they were read
Korg's MIDI implementation for the TRITON series, version 1.6, a text file inside a ZIP archive: the transmitted messages in section 1, the received ones in section 2, and the system exclusive formats after them. Beside it, the Basic Guide, whose account of the messages is pp. 114 to 123 and whose MIDI Implementation Chart is p. 137; the Parameter Guide, whose Global MIDI page is pp. 117 to 120 and whose appendices on the controllers are pp. 215 to 225; the Version 2.5 update guide (pp. 11 and 13); and the history of systems 1.0.8 to 2.5.3 that comes with the newest updater. Other pages are cited where they are used.
THE ARCHIVE HOLDS TWO TEXT FILES AND ONE OF THEM IS READ. TRITON_MIDIimp.TXT, 341,443 bytes in 3,876 lines, headed "TRITON-SERIES MIDI IMPLEMENTATION Version 1.6 (Sep.19.'02)" (implementation), is where every controller and NRPN number below comes from. The other, MIDIFX.TXT, is the effects' system exclusive parameter structure; the controllers it names are a list of modulation sources, all of them numbers this map already carries.
AND THERE IS AN ORDINARY CHART, dated 12 April 1999, on p. 137 of the Basic Guide. It is what mode and note_range rest on. It names every controller number the implementation does but 17, 19, 20 and 21, which it covers with the knobs' B-assign span of 0 to 95, and 122, which it gives only by name as Local On/Off. Against the implementation's numbered rows it differs in one cell, circling 6 and 38, Data Entry, as sent where the transmitted list has 6 alone, though 38 can be sent through the knobs' and the sequencer's spans. And it gates Bank Select on the program change filter, *P, where the implementation's PB names the bank change filter as well.
AND THE PARAMETER GUIDE REPRINTS AN OLDER EDITION OF THE IMPLEMENTATION, at its pp. 234 to 236, headed "TRITON-SERIES MIDI IMPLEMENTATION 5,Apr,1999" (parameter_guide p. 234). Its controller numbers are version 1.6's but for two: its transmitted list has no row for 83, and its received list prints Local Control at 121, the number of Reset All Controllers on the line above it, where version 1.6 prints 122. It also marks 71, 72 and 79 as sent by Knob-1A, as 74 is, which version 1.6 puts right as 2A, 4A and 3A, and gives Sostenuto and Soft both as sent by A.SW =Porta.SW. Version 1.6 is followed throughout.
THE FORTY-ONE NUMBERS CARRIED, AND THE SIXTEEN NOT. The two lists name 57 controller numbers between them, 44 sent and 57 received. Bank Select (0 and 32) is carried, as it is wherever a maker numbers it, and its bank layout is under program_change. Eight are how MIDI addresses things rather than parameters of this instrument: Data Entry (6 and 38), Data Increment and Decrement (96 and 97), the NRPN selects (98 and 99) and the RPN selects (100 and 101). The first registered parameter is under pitch_bend, and the non-registered ones are controls below. Eight more are the channel mode messages, 120 to 127, which this format refuses as controls by design; they are described under midi. That is the line korg/kronos drew from the same position. The other 41 are in both lists, and every number the transmitted list carries is in the received one too.
ALL 41 ARE AMONG korg/kronos'S NUMBERS, IN THE SAME GROUPS, AND EIGHT ARE NAMED DIFFERENTLY THERE. The Kronos's 94 and 95 switch Master FX1/2 and Total FX1/2, where the TRITON's switch Master FX1 and Master FX2; its 17, 19, 20 and 21 are Knob Mod5 to 8, where the TRITON's are Knob Mod1 to 4; and its 71 and 74 are Resonance and Filter Cutoff, where the TRITON's are Resonance/HPF and LPF Cutoff.
THE NUMBERS ARE WHERE EACH FUNCTION SITS, AND THE KNOBS CAN BE SET TO ANY OF 0 TO 95. Beside its numbered rows the transmitted list carries "Control (cc)=0-95 ( Knob-B = MIDI CC#00-95 )" (implementation); and both lists carry 0 to 101 as sequencer data, sent on playback and received for recording, "Control data ( for Seq. recording (cc)=0-101 )" (implementation). The four REALTIME CONTROLS knobs send 74, 71, 79 and 72 in their A mode, and "The A-mode functions of the REALTIME CONTROLS are fixed." (parameter_guide p. 219); their B mode, [SW1] and [SW2] are assigned per program, combination and song, and the foot switch and pedal in Global mode (parameter_guide pp. 217 to 220). Each named function sends the number recorded here for it, and the B mode can also be set to send any number from 0 to 95.
EVERY CONTROL ANSWERS ONLY THROUGH A GLOBAL FILTER, AND NO PAGE GIVES ITS FACTORY STATE. Every control below travels as a control change enabled "when Enable Control Change in Global mode is checked" (implementation), and the chart's notes say the same of the rest: "*P, *A, *C, *E: Transmitted/received when Global P1: MIDI Filter (Program Change, After Touch, Control Change, Exclusive) is Enable, respectively." (basic_guide p. 137). The Parameter Guide describes each box and says only of the exclusive one how it is normally set.
THIRTEEN STANDARD CONTROLLERS ARE WRITTEN TWICE, AND THREE NUMBERS REACH THE GLOBAL CHANNEL ONLY. Most rows carry the status Bn, glossed "MIDI Channel No. (0 - 15) ...... Usually Global Channel." (implementation), with each timbre's or track's channel in Combination, Sequencer and Song Play modes. So a control naming no part is on the global channel, and the standard controllers have a twin keyed track_ that names the part: bank select's two halves and numbers 1, 2, 4, 5, 7, 10, 11 and 64 to 67. The Basic Guide says the same of every channel message and names no number: "Tracks whose 'Status' is INT or BTH will receive channel messages of the matching MIDI channel" (basic_guide p. 114). A twin goes both ways because the implementation's two legends end differently: a timbre or track answers while its status is INT or BTH, and sends while it is EXT, EX2 or BTH (implementation). Each timbre, and each track in Sequencer mode, also has switches of its own for the damper, the portamento switch, the joystick's two directions, the foot pedal, every other control change, and program change, which bank select goes with (parameter_guide pp. 35-36, 57-59; basic_guide p. 115), so such a part can refuse its twin.
THE GLOBAL CHANNEL IS PROGRAM AND SAMPLING MODES', AND THE OTHER MODES ANSWER LITTLE ON IT. In Combination mode it is used "for selecting a combination and turning effects on/off, and to transmit/receive exclusive data" (basic_guide p. 114), though what the panel does is still sent on it. So there one of the thirteen naming no part moves only the timbres on Gch or on the global channel's own number (parameter_guide p. 222), and bank select does two jobs: on the global channel it goes with the program change that selects the combination, and on a timbre's or track's channel it selects that part's program (basic_guide p. 115). In Sequencer and Song Play modes the global channel carries exclusive data and the effect switches (basic_guide p. 114), and a track has no Gch to follow it with.
Every other Bn row that the list does not footnote reaches a track on its channel as the thirteen do, the sound controllers 70 to 79 among them, and names no part only because the rule this follows covers the standard controllers. Controller 8 and the arpeggiator's three numbers are footnoted, and the two paragraphs after this one say where each travels. Controllers 92, 94 and 95 carry Bg, "Always Global Channel No. (0 - 15)" (implementation): they switch the insert effects and the two master effects off for the whole instrument. They name no part either, and nothing in a control says that it stays on the global channel where its neighbours do not, so the restriction is said only here.
THE EFFECT SENDS ARE CROSSED, AS THEY ARE ON THE KRONOS. Controller 91, named Effect 1 Depth in both lists, is received "for Send 2 Level control" (implementation), and 93, Effect 3 Depth, "for Send 1 Level control" (implementation). The Basic Guide heads them "Effect 1 depth (Send 2) (CC#91) [Bn, 5B, vv]" (basic_guide p. 117), so the labels below name the send each one reaches. Outside Program and Sampling modes the sends after the insert effects, like the panning there, are set on the effects' own control channels: "To control the pan following IFX, sends 1/2, MFX 1/2 and MEQ, use the global MIDI channel in Program or Sampling mode; in Combination, Sequencer, or Song Play mode, use the channel specified separately by 'Ctrl Ch'" (parameter_guide p. 117).
THE ARPEGGIATOR IS REACHED BY NRPN BOTH WAYS. Its ON/OFF key and its GATE and VELOCITY knobs send three non-registered parameters, written out in full as "ARPEGGIATOR ON/OFF :[ Bn,63,00,Bn,62,02,Bn,06,mm] mm = 00(Off),7F(On)" (implementation) and its two fellows, and the same three are received. In Program and Combination modes they travel on the global channel, and in Sequencer and Song Play modes on the control track's, which no page defines; the 1999 edition reads "current selected track's channel" (parameter_guide p. 234). The value is the Data Entry MSB alone: "Data Entry LSB value has no effect." (implementation). Each NRPN below is recorded as MSB x 128 + LSB, so 00,02 is 2 and 01,08 is 136.
AND EIGHT MORE ARE RECEIVED FOR GS AND XG SONGS. "The following NRPN messages can be received to modify the sound." (basic_guide p. 123), under the Basic Guide's heading for GS and XG music data: vibrato rate, depth and delay, filter cutoff and resonance, and envelope attack, decay and release. No page says in which modes they are received or on which channel. And ten families more, one parameter per drum note, at ten MSBs, 14 to 1E hexadecimal with 1B unused, with the note as the LSB, "Only valid when Part Mode is Drum, MDrm1 - Mdrm4." (implementation). At 97 notes each they would be 970 controls, so they are not recorded as controls.
WHERE THE LOCATORS COME FROM. The implementation is a text file with no pages, so a quotation from it carries the source's name alone and is found by searching the file. The Basic Guide's printed page is five behind its sheet on all 140 sheets that print an arabic number, the five before them being the cover and front matter; the Parameter Guide's six behind on all 249, after six sheets of front matter; the update guide's three behind on all 17; and the history's equal to its sheet on all eight.
HOW THE DOCUMENTS WERE REACHED. As for korg/kronos, the downloads page carries no file address, and each document is reached through a licence page that does. The history is not on the downloads page at all: it is a PDF inside the 2.5.3 System Updater's archive, beside the system files themselves, and its metadata titles it Trinity 2.1.2 features, so the title recorded is its running head.
NOT RECORDED: the preset count, because program change reaches different things in different modes and the field holds one number. "512 user memory combinations (512 presets)" (basic_guide p. 135), "640 user memory programs (512 preset)" (basic_guide p. 135) and "256 + 9 drum ROM programs (GM2 sound map compatible)" (basic_guide p. 135), with a program change selecting a program or a combination by mode, and the bank map choosing between two layouts of the same banks.
NOT RECORDED EITHER:
- the other two registered parameters, "= 1 : Fine Tune ( Detune )" (implementation) and "= 2 : Coarse Tune ( Transpose )" (implementation), which are a tuning and a transpose this format does not hold;
- the velocity and aftertouch curves;
- the drum NRPN family above;
- and the system exclusive parameter addresses, which have no field in this format.