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.

Yamaha SEQTRAK MIDI implementation

The MIDI implementation of the Yamaha SEQTRAK: what it answers to, and the 105 controls it offers, on firmware 2.00.

At a glance

Firmware
This page describes firmware 2.00.
MIDI channel
Any one of 1 to 11.
Parts
Drum, 7 of them: on MIDI channels 1 to 7, taking notes, controls, and program changes.
Synth, 2 of them: on MIDI channels 8 and 9, taking notes, controls, and program changes.
DX: on MIDI channel 10, taking notes, controls, and program changes.
SAMPLER: on MIDI channel 11, taking notes, controls, and program changes.
Project: on MIDI channel 1, taking controls.
MIDI mode
3: omni off, poly.
Voices
Not recorded.
Note range
0 to 127: C-1 to G9, counting middle C as C4.
Velocity
Sent and received. Release velocity is ignored.
Aftertouch
None, sent or answered.
Pitch bend
2 semitones, and the range can be changed.
Program change
Received and sent.
MIDI clock
Sent and received.
Start and stop
Sent and received.
Control change
105 controls, in the tables below.
NRPN
None.
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("yamaha/seqtrak") has loaded them.

Drum

Mix

Control CC Values
TRACK VOLUME
drum_track_volume
7 0-127
TRACK PAN
drum_track_pan
10 1-127
MUTE
drum_mute
23 0-63 off, 64-127 on
Received, never sent
SOLO
drum_solo
24 0-11
Received, never sent

Envelope

Control CC Values
ATTACK TIME
drum_attack_time
73 0-127
DECAY/RELEASE TIME
drum_decay_release_time
75 0-127

Filter

Control CC Values
FILTER CUTOFF
drum_filter_cutoff
74 0-127
FILTER RESONANCE
drum_filter_resonance
71 0-127

EQ

Control CC Values
EQ - HIGH GAIN
drum_eq_high_gain
20 40-88
EQ - LOW GAIN
drum_eq_low_gain
21 40-88

Send

Control CC Values
REVERB SEND
drum_reverb_send
91 0-127
DELAY SEND
drum_delay_send
94 0-127

Voicing

Control CC Values
DRUM PITCH
drum_pitch
25 40-88

Effect

Control CC Values
SINGLE EFFECT - ASSIGNED PARAMETER 1
drum_single_effect_parameter_1
107 0-127
SINGLE EFFECT - ASSIGNED PARAMETER 2
drum_single_effect_parameter_2
108 0-127
SINGLE EFFECT - ASSIGNED PARAMETER 3
drum_single_effect_parameter_3
109 0-127

Without a group

Control CC Values
BANK SELECT MSB
drum_bank_select_msb
0 0-127
BANK SELECT LSB
drum_bank_select_lsb
32 0-127
EXPRESSION CONTROL
drum_expression
11 0-127
Received, never sent

Synth

Mix

Control CC Values
TRACK VOLUME
synth_track_volume
7 0-127
TRACK PAN
synth_track_pan
10 1-127
MUTE
synth_mute
23 0-63 off, 64-127 on
Received, never sent
SOLO
synth_solo
24 0-11
Received, never sent

Envelope

Control CC Values
ATTACK TIME
synth_attack_time
73 0-127
DECAY/RELEASE TIME
synth_decay_release_time
75 0-127

Filter

Control CC Values
FILTER CUTOFF
synth_filter_cutoff
74 0-127
FILTER RESONANCE
synth_filter_resonance
71 0-127

EQ

Control CC Values
EQ - HIGH GAIN
synth_eq_high_gain
20 40-88
EQ - LOW GAIN
synth_eq_low_gain
21 40-88

Send

Control CC Values
REVERB SEND
synth_reverb_send
91 0-127
DELAY SEND
synth_delay_send
94 0-127

Portamento

Control CC Values
PORTAMENTO TIME
synth_portamento_time
5 0-127
PORTAMENTO SWITCH
synth_portamento_switch
65 0 off, 1 on

Arpeggio

Control CC Values
ARP TYPE
synth_arp_type
27 0-15
ARP GATE
synth_arp_gate
28 0-127
ARP SPEED
synth_arp_speed
29 0-9

Voicing

Control CC Values
MONO/POLY/CHORD
synth_mono_poly_chord
26 0 mono, 1 poly, 2 chord

Effect

Control CC Values
SINGLE EFFECT - ASSIGNED PARAMETER 1
synth_single_effect_parameter_1
107 0-127
SINGLE EFFECT - ASSIGNED PARAMETER 2
synth_single_effect_parameter_2
108 0-127
SINGLE EFFECT - ASSIGNED PARAMETER 3
synth_single_effect_parameter_3
109 0-127

Without a group

Control CC Values
BANK SELECT MSB
synth_bank_select_msb
0 0-127
BANK SELECT LSB
synth_bank_select_lsb
32 0-127
EXPRESSION CONTROL
synth_expression
11 0-127
Received, never sent
DAMPER PEDAL
synth_damper_pedal
64 0-127
Received, never sent
SOSTENUTO
synth_sostenuto
66 0-63 off, 64-127 on
Received, never sent

DX

Mix

Control CC Values
TRACK VOLUME
dx_track_volume
7 0-127
TRACK PAN
dx_track_pan
10 1-127
MUTE
dx_mute
23 0-63 off, 64-127 on
Received, never sent
SOLO
dx_solo
24 0-11
Received, never sent

Envelope

Control CC Values
ATTACK TIME
dx_attack_time
73 0-127
DECAY/RELEASE TIME
dx_decay_release_time
75 0-127

Filter

Control CC Values
FILTER CUTOFF
dx_filter_cutoff
74 0-127
FILTER RESONANCE
dx_filter_resonance
71 0-127

EQ

Control CC Values
EQ - HIGH GAIN
dx_eq_high_gain
20 40-88
EQ - LOW GAIN
dx_eq_low_gain
21 40-88

Send

Control CC Values
REVERB SEND
dx_reverb_send
91 0-127
DELAY SEND
dx_delay_send
94 0-127

Portamento

Control CC Values
PORTAMENTO TIME
dx_portamento_time
5 0-127
PORTAMENTO SWITCH
dx_portamento_switch
65 0 off, 1 on

Arpeggio

Control CC Values
ARP TYPE
dx_arp_type
27 0-15
ARP GATE
dx_arp_gate
28 0-127
ARP SPEED
dx_arp_speed
29 0-9

Voicing

Control CC Values
MONO/POLY/CHORD
dx_mono_poly_chord
26 0 mono, 1 poly, 2 chord

FM

Control CC Values
FM ALGORITHM
fm_algorithm
116 0-11
FM MODULATION AMOUNT
fm_modulation_amount
117 0-127
FM MODULATOR FREQUENCY
fm_modulator_frequency
118 0-127
FM MODULATOR FEEDBACK
fm_modulator_feedback
119 0-127

Effect

Control CC Values
SINGLE EFFECT - ASSIGNED PARAMETER 1
dx_single_effect_parameter_1
107 0-127
SINGLE EFFECT - ASSIGNED PARAMETER 2
dx_single_effect_parameter_2
108 0-127
SINGLE EFFECT - ASSIGNED PARAMETER 3
dx_single_effect_parameter_3
109 0-127

Without a group

Control CC Values
BANK SELECT MSB
dx_bank_select_msb
0 0-127
BANK SELECT LSB
dx_bank_select_lsb
32 0-127
EXPRESSION CONTROL
dx_expression
11 0-127
Received, never sent
DAMPER PEDAL
dx_damper_pedal
64 0-127
Received, never sent

SAMPLER

Mix

Control CC Values
TRACK VOLUME
sampler_track_volume
7 0-127
TRACK PAN
sampler_track_pan
10 1-127
MUTE
sampler_mute
23 0-63 off, 64-127 on
Received, never sent
SOLO
sampler_solo
24 0-11
Received, never sent

Envelope

Control CC Values
ATTACK TIME
sampler_attack_time
73 0-127
DECAY/RELEASE TIME
sampler_decay_release_time
75 0-127

Filter

Control CC Values
FILTER CUTOFF
sampler_filter_cutoff
74 0-127
FILTER RESONANCE
sampler_filter_resonance
71 0-127

EQ

Control CC Values
EQ - HIGH GAIN
sampler_eq_high_gain
20 40-88
EQ - LOW GAIN
sampler_eq_low_gain
21 40-88

Send

Control CC Values
REVERB SEND
sampler_reverb_send
91 0-127
DELAY SEND
sampler_delay_send
94 0-127

Effect

Control CC Values
SINGLE EFFECT - ASSIGNED PARAMETER 1
sampler_single_effect_parameter_1
107 0-127
SINGLE EFFECT - ASSIGNED PARAMETER 2
sampler_single_effect_parameter_2
108 0-127
SINGLE EFFECT - ASSIGNED PARAMETER 3
sampler_single_effect_parameter_3
109 0-127

Without a group

Control CC Values
BANK SELECT MSB
sampler_bank_select_msb
0 0-127
BANK SELECT LSB
sampler_bank_select_lsb
32 0-127
EXPRESSION CONTROL
sampler_expression
11 0-127
Received, never sent
DAMPER PEDAL
sampler_damper_pedal
64 0-127
Received, never sent
SOSTENUTO
sampler_sostenuto
66 0-63 off, 64-127 on
Received, never sent

Project

Effect

Control CC Values
MASTER EFFECT 1 - ASSIGNED PARAMETER 1
master_effect_1_parameter_1
102 0-127
MASTER EFFECT 1 - ASSIGNED PARAMETER 2
master_effect_1_parameter_2
103 0-127
MASTER EFFECT 1 - ASSIGNED PARAMETER 3
master_effect_1_parameter_3
104 0-127
MASTER EFFECT 2 - ASSIGNED PARAMETER
master_effect_2_parameter
105 0-127
MASTER EFFECT 3 - ASSIGNED PARAMETER
master_effect_3_parameter
106 0-127
SEND REVERB - ASSIGNED PARAMETER 1
send_reverb_parameter_1
110 0-127
SEND REVERB - ASSIGNED PARAMETER 2
send_reverb_parameter_2
111 0-127
SEND REVERB - ASSIGNED PARAMETER 3
send_reverb_parameter_3
112 0-127
SEND DELAY - ASSIGNED PARAMETER 1
send_delay_parameter_1
113 0-127
SEND DELAY - ASSIGNED PARAMETER 2
send_delay_parameter_2
114 0-127
SEND DELAY - ASSIGNED PARAMETER 3
send_delay_parameter_3
115 0-127

Where these facts come from

Source documents

How they were read

ELEVEN TRACKS, EACH ON ITS OWN FIXED CHANNEL, AND THAT IS WHAT MAKES EVERY CONTROLLER BELOW MEAN SOMETHING. The Data List's track table gives eleven named tracks and the MIDI channel each answers on, in that order: seven drum tracks on channels 1 to 7, two synth tracks on 8 and 9, an FM track on 10 and a sampler on 11. The names are the maker's - a kick, a snare, a clap, two hats, two percussion tracks, two synths, the DX and the sampler - and they are described here rather than quoted, because each sits in its own column of that table and words joined across columns are not words the page prints. The implementation chart agrees from the other side: its Basic Channel row reads 1 - 11, and its Changed row is crossed, so no channel on this instrument can be moved.

THE CONTROLLER'S CHANNEL IS THEREFORE WHICH TRACK IT REACHES, and the User Guide's own AVAILABLE ON column says which tracks each controller has any effect on. Those spans are exactly the track table's groups, arrived at independently: the drum pitch controller is given for channels 1 to 7, the mono/poly/chord and arpeggio controllers for 8 to 10, and the four FM controllers for channel 10 alone. Two documents reaching the same layout from different directions is the strongest thing said about this instrument's addressing.

SO EACH CONTROLLER IS WRITTEN ONCE FOR EVERY KIND OF TRACK IT REACHES, AND THE FORTY-TWO NUMBERS ARE 105 CONTROLS. A control naming no part is on the base channel, which a program would usually take to be channel 1, the first drum track's (user_guide p. 99), so a volume naming no part would reach that track alone. Every controller 18.3 gives for some tracks is written below once for each kind its AVAILABLE ON column names: four times for those on channels 1 to 11, twice for the mono/poly/chord, portamento and arpeggio controllers on 8 to 10, three times for the damper pedal on 8 to 11 and twice for the sostenuto on 8, 9 and 11. The drum pitch and the four FM controllers already named their one kind. Bank select is written for all four, since the control change format gives every channel, n = 0 - 10 (data_list p. 113), though what it chooses is often not that track's: see its note below. The eleven 18.3 gives for channel 1 alone have a part, the five of MASTER EFFECT 1, 2 and 3 and the six of the two send effects (user_guide p. 101): 18.3 gives them channel 1 and no track, and part: drum would claim all seven drum channels. They are the project's master and send effects, which the address map files under Project Common (data_list p. 119), and not the first drum track's sound. So since 2026-10-15 they name a part of their own, project, on channel 1 and taking controls alone, and a program sends them on channel 1 whatever it takes the base channel to be. Until then they named no part, which put them on the base channel; until 2026-10-14 the first drum track was an offset from that base too, so it was handed them. Until 2026-10-11 each of those now written per kind was written once, naming no part, and its released key took the kind as a prefix, track_volume becoming drum_track_volume and its three siblings; the damper pedal's became synth_damper_pedal and its two siblings, after its label.

FORTY-TWO CONTROLLER NUMBERS ARE PUBLISHED, AND THE DATA LIST GIVES EVERY ONE. Its control change lists give each number with a name and whether it is transmitted or received (data_list p. 113), and the next sheet names the model-specific ones and gives their values (data_list p. 114). The implementation chart agrees with them, and names three of its cells only as model-specific, with a footnote reading "Please refer to the manual." (data_list p. 162). The manual it means is the User Guide, whose "18.3 MIDI Control Change Parameters" (user_guide p. 100) names forty of the forty-two in four tables, with a channel span and a value range for each, and whose names are the labels below. Its fourth table, 18.3.4 Other (user_guide p. 102), holds 64, 66 and 11, which this file once said 18.3 did not name. The other two, bank select at 0 and 32, are in the Data List and not in 18.3.

THE DATA LIST'S CONTROL CHANGE LISTS AND 18.3 GIVE DIFFERENT RANGES FOR THREE CONTROLLERS, AND THE DATA LIST IS CARRIED FOR TWO OF THEM. Controller 27 is ARP TYPE over 0-16 in 18.3 (user_guide p. 100) and ARP TEMPLATE over 0 - 15 (0:OFF) in the Data List (data_list p. 114), whose own list of arpeggio presets has sixteen rows, the first of them Off (data_list p. 59). It carries 0 to 15. Controller 116, FM ALGORITHM, is 0-127 in 18.3 (user_guide p. 100) and 0 - 11 in the Data List (data_list p. 114), which draws twelve algorithms in its chart (data_list p. 161); and the User Guide says elsewhere what its own table does not, "Selects from 12 different FM algorithms" (user_guide p. 108). It carries 0 to 11. Controller 10 keeps 18.3's range, because the Data List gives it two. It is TRACK PAN over 1-127 in 18.3 (user_guide p. 100) and PAN over 0 - 127 in both of the Data List's control change lists (data_list p. 113), and the Data List's parameter table gives the same pan as 01 - 7F, from L63 through C to R63 (data_list p. 135), which is 1 to 127 and has no place for a nought. The other thirty-seven that both documents give agree. Both are edition D0 for the same firmware, so neither is the later word. Until 2026-10-12 this file carried 18.3's range for all three.

BANK SELECT CHOOSES WHAT THE NEXT PROGRAM CHANGE LOADS, AND THE DATA LIST SAYS WHICH BANKS ARE ANSWERED. Its full table puts a project at MSB 64, a sound at 63, a sampler element at 62 and a DrumKit sound at 32 to 38, one MSB for each of the seven drum tracks (data_list pp. 117, 118), and the shorter table on p. 113 leaves the DrumKit rows out. "Bank Select and Program Change numbers that are not supported by this product will be ignored." (data_list p. 114). Nothing happens until the program change: "Bank Select will be actually executed when the Program Change message is received." (data_list p. 114). So MSB 64 and a program change load a whole project, on whichever channel they arrive: "Channel number will be ignored." (data_list p. 117). The two tables differ on the projects' programs, 0 - 7 on p. 113 and 0 - 8 on p. 117, which adds that 8 is the temporary project.

FIVE OF THE FORTY-TWO ARE RECEIVE-ONLY, AND ON ALL FIVE TWO DOCUMENTS AGREE. The chart crosses the transmitted column for 11, 23, 24, 64 and 66 while circling all five as recognised, and the Data List's transmitted list leaves out the same five, marking 23 and 24 Receive only on the next sheet (data_list pp. 113, 114). The User Guide says the same of all five in prose, of 23 and 24 "MUTE and SOLO are receive only" (user_guide p. 101) and of 64, 66 and 11 "These are for receive only." (user_guide p. 102) - which is a chart written to describe message flow and a guide written to tell an owner what to expect, arriving at one fact without either deriving from the other. The other thirty-seven travel both ways: 18.3's forty less its five received only, and bank select's two.

ONE PAGE DRAWS IT DIFFERENTLY. The transmit flow diagram (data_list p. 111) puts the sustain switch and the block (17H .. 1DH), which holds 23 and 24, under the switch for transmitting control changes. The transmitted list and the chart leave all three out, and the next sheet marks 23 and 24 Receive only, so the directions below follow those.

THE SWITCHES AMONG THEM USE DIFFERENT CONVENTIONS, WHICH IS THE MAKER'S DOING AND NOT A TRANSCRIPTION ERROR. The portamento switch at 65 is given exact values, 0 for off and 1 for on, so it carries choices; the mute at 23 and the sostenuto at 66 are given halves of the range, 0 to 63 off and 64 to 127 on, so they carry values. All three are in 18.3, and the Data List gives each the same way (data_list pp. 113, 114). Nothing says what 2 to 127 do to the portamento switch, which is why a band would be an invention. The damper pedal at 64, which the Data List calls a switch, is given in both only as 0 to 127, so it carries neither.

TRANSMISSION SHIPS SWITCHED OFF, WHICH THE CHART DOES NOT TELL YOU AND THE SYSTEM EXCLUSIVE TABLE DOES. The chart circles the control change rows in both columns with no footnote, while the parameter table gives each port - legacy MIDI, USB MIDI and Bluetooth - a transmit byte with one bit for control change, one for bank select and one for program change, and all three default to off (data_list p. 123). Bank select passes a second switch as well, Receive/Transmit Bank Select, which ships on and gates both directions (data_list pp. 111, 112, 123). So the instrument is capable of sending these controllers and will not do so until an owner turns them on. Both statements are true and the directions below record the capability, which is what a reader needs in order to know the message exists at all.

PITCH BEND IS PROGRAMMABLE TWO WAYS WITH TWO DIFFERENT REACHES, AND SHIPS AT THE CONVENTIONAL TWO SEMITONES. The registered parameter sets it symmetrically: "PITCH BEND SENSITIVITY 00H - 18H (0 - 24 semitones)" (data_list p. 115). The system exclusive parameters set the upper and lower bounds separately and reach further, over -48 - +24 each, defaulting to plus two and minus two - and they are "Not available for DX track" (data_list p. 142), so the FM track takes the registered parameter and not those. roland/jd_xi records no depth because its maker published none; this maker publishes a default, so it is here.

POLYPHONY IS NOT RECORDED, FOR THE REASON RANK 109 MET IN THE SAME WORDS. The specification gives "AWM2: 128, FM: 8" (user_guide p. 98) - two engines, two figures, and no sum anywhere in either document. Ten of the eleven tracks are served by the first and the DX track by the second, so neither number is true of the instrument and no third number is published.

AND WHAT THE COMPANION APP ADDS IS SOUNDS, NOT CONTROLLERS, which had to be established before this map could be taken as complete. The specification gives the preset counts and notes that they "Can be added from the SEQTRAK app" (user_guide p. 98) under the sounds heading and nowhere near the MIDI sections. The controller map does not grow.

THE TRACK TYPES ARE CARRIED RATHER THAN SETTLED TOO. The specification lists this instrument's track types as "DRUM, DRUMKIT, SYNTH, DX, SAMPLER" (user_guide p. 98) - five - while the track table names four groups and the controller tables' own AVAILABLE ON column names the same four. DRUMKIT appears in neither of those tables. The one MIDI page that names it is the bank table, where MSB 32 to 38 choose a DrumKit sound for each of the seven drum tracks (data_list p. 118), which suggests a DrumKit is something a drum track plays rather than a track of its own. Nothing below rests on it, and it is said here rather than quietly reduced to four, because an owner who meets a DRUMKIT track needs to know the MIDI documentation does not mention one.

FOUR ABSENCES, EACH READ RATHER THAN COUNTED. Both documents were swept with the whitespace and hyphens taken out, which is what finds a maker's own typography: there is no NRPN and nothing non-registered anywhere in either; aftertouch appears once in 272 sheets and it is the chart's own row label, crossed in all four boxes; nothing describes polyphonic pressure; and the only MPE-shaped hits are the letters inside ordinary words.