Subsystem Search

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 Pedal
foot_pedal
4 0-127
Portamento Time
portamento_time
5 0-127
Volume
volume
7 0-127
Post IFX Panpot
post_ifx_panpot
8 0-127
Panpot
panpot
10 0-127
Expression
expression
11 0-127

Switches and pedals

Control CC NRPN Values
Hold 1 (Damper)
hold_1
64 0-127
Portamento Off/On
portamento
65 0-63 off, 64-127 on
Sostenuto Off/On
sostenuto
66 0-63 off, 64-127 on
Soft Pedal
soft_pedal
67 0-127

Sound controllers

Control CC NRPN Values
Sustain Level
sustain_level
70 0-127
Resonance/HPF Cutoff
resonance_hpf
71 0-127
Release Time
release_time
72 0-127
Attack Time
attack_time
73 0-127
LPF Cutoff
lpf_cutoff
74 0-127
Decay Time
decay_time
75 0-127
LFO1 Speed
lfo_1_speed
76 0-127
LFO1 Pitch Depth
lfo_1_pitch_depth
77 0-127
LFO1 Delay
lfo_1_delay
78 0-127
Filter EG Intensity
filter_eg_intensity
79 0-127

Assignable knobs, switches and the ribbon

Control CC NRPN Values
Ribbon Controller
ribbon_controller
16 0-127
Knob Mod1
knob_mod_1
17 0-127
Value Slider
value_slider
18 0-127
Knob Mod2
knob_mod_2
19 0-127
Knob Mod3
knob_mod_3
20 0-127
Knob Mod4
knob_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 Switch
foot_switch
82 0-63 off, 64-127 on
Multi Purpose Ctrl8
multi_purpose_ctrl_8
83 0-127

Effect controls, sends and switches

Control CC NRPN Values
FX Control 1
fx_control_1
12 0-127
FX Control 2
fx_control_2
13 0-127
Send 2 Level
send_2_level
91 0-127
Send 1 Level
send_1_level
93 0-127
All Insert FX Off/On
all_insert_fx
92 0 off, 1-127 on
Master FX1 Off/On
master_fx_1
94 0 off, 1-127 on
Master FX2 Off/On
master_fx_2
95 0 off, 1-127 on

Arpeggiator, by NRPN

Control CC NRPN Values
Arpeggiator On/Off
arpeggiator_on_off
2
MSB 0, LSB 2
0-63 off, 64-127 on
Arpeggiator Gate
arpeggiator_gate
10
MSB 0, LSB 10
0-127
Arpeggiator Velocity
arpeggiator_velocity
11
MSB 0, LSB 11
0-127

Sound parameters received by NRPN

Control CC NRPN Values
Vibrato Rate
vibrato_rate
136
MSB 1, LSB 8
0-127
Received, never sent
Vibrato Depth
vibrato_depth
137
MSB 1, LSB 9
0-127
Received, never sent
Vibrato Delay
vibrato_delay
138
MSB 1, LSB 10
0-127
Received, never sent
Filter Cutoff
filter_cutoff
160
MSB 1, LSB 32
0-127
Received, never sent
Filter Resonance
filter_resonance
161
MSB 1, LSB 33
0-127
Received, never sent
EG Attack Time
eg_attack_time
227
MSB 1, LSB 99
0-127
Received, never sent
EG Decay Time
eg_decay_time
228
MSB 1, LSB 100
0-127
Received, never sent
EG Release Time
eg_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 Pedal
track_foot_pedal
4 0-127
Portamento Time
track_portamento_time
5 0-127
Volume
track_volume
7 0-127
Panpot
track_panpot
10 0-127
Expression
track_expression
11 0-127

Switches and pedals

Control CC NRPN Values
Hold 1 (Damper)
track_hold_1
64 0-127
Portamento Off/On
track_portamento
65 0-63 off, 64-127 on
Sostenuto Off/On
track_sostenuto
66 0-63 off, 64-127 on
Soft Pedal
track_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

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: