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.
Roland FANTOM-6/7/8 MIDI implementation
The MIDI implementation of the Roland FANTOM-6/7/8: what it answers to, and the 33 controls it offers, on firmware 3.00.
At a glance
- Firmware
- This page describes firmware 3.00.
- MIDI channel
- Any one of 1 to 16.
- Parts
- Zone, 16 of them: each on a MIDI channel of its own, taking notes and 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 received.
- 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
- 33 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("roland/fantom_6_7_8") has loaded them.
Zone
Continuous controllers
| Control | CC | Values |
|---|---|---|
Modulationmodulation |
1 | 0-127 |
Breath typebreath_type |
2 | 0-127 |
Foot typefoot_type |
4 | 0-127 |
Portamento Timeportamento_time |
5 | 0-127 |
Volumevolume |
7 | 0-127 |
Panpotpanpot |
10 | 0-127 |
Expressionexpression |
11 | 0-127 |
General purpose controllers
| Control | CC | Values |
|---|---|---|
General Purpose Controller 1general_purpose_controller_1 |
16 | 0-127 |
General Purpose Controller 2general_purpose_controller_2 |
17 | 0-127 |
General Purpose Controller 3general_purpose_controller_3 |
18 | 0-127 |
General Purpose Controller 4general_purpose_controller_4 |
19 | 0-127 |
General Purpose Controller 5general_purpose_controller_5 |
80 | 0-127 |
General Purpose Controller 6general_purpose_controller_6 |
81 | 0-127 |
General Purpose Controller 7general_purpose_controller_7 |
82 | 0-127 |
General Purpose Controller 8general_purpose_controller_8 |
83 | 0-127 |
Switches and pedals
| Control | CC | Values |
|---|---|---|
Hold 1hold_1 |
64 | 0-127 |
Portamentoportamento |
65 | 0-127 |
Sostenutosostenuto |
66 | 0-127 |
Softsoft |
67 | 0-127 |
Legato Foot Switchlegato_foot_switch |
68 | 0-127 |
Portamento controlportamento_control |
84 | 0-127 |
Sound controllers
| Control | CC | Values |
|---|---|---|
Resonanceresonance |
71 | 0-127 |
Release Timerelease_time |
72 | 0-127 |
Attack timeattack_time |
73 | 0-127 |
Cutoffcutoff |
74 | 0-127 |
Decay Timedecay_time |
75 | 0-127 |
Vibrato Ratevibrato_rate |
76 | 0-127 |
Vibrato Depthvibrato_depth |
77 | 0-127 |
Vibrato Delayvibrato_delay |
78 | 0-127 |
Effect send levels
| Control | CC | Values |
|---|---|---|
General Purpose Effect 1 (Reverb Send Level)general_purpose_effect_1_reverb_send_level |
91 | 0-127 |
General Purpose Effect 3 (Chorus Send Level)general_purpose_effect_3_chorus_send_level |
93 | 0-127 |
Without a group
| Control | CC | Values |
|---|---|---|
Bank Select (MSB)bank_select_msb |
0 | 0-127 |
Bank Select (LSB)bank_select_lsb |
32 | 0-127 |
Where these facts come from
Source documents
- MIDI Implementation Model: FANTOM-6/7/8, 1.00, dated 1 November 2020, its MIDI implementation, read on 3 October 2026 (the file read).
- FANTOM-6/FANTOM-7/FANTOM-8 Reference Manual, eng01, its user manual, read on 3 October 2026 (the file read).
- FANTOM-6/FANTOM-7/FANTOM-8 Parameter Guide, eng01, its user manual, read on 3 October 2026 (the file read).
- FANTOM-6/FANTOM-7/FANTOM-8 Owner's Manual, eng02, its user manual, read on 3 October 2026 (the file read).
How they were read
Four documents, all of them read: the MIDI Implementation (67pp, version 1.00 of 1 November 2020), which is where every number below comes from; the Reference Manual (132pp), for the two implementation charts at pp. 128-129 and the settings at pp. 115-117; the Owner's Manual (24pp), for the zones and the specifications; and the seven firmware supplements, for the question of whether any release changed the map.
THE IMPLEMENTATION DOCUMENT PRINTS NO PAGE NUMBERS OF ITS OWN, so a citation to it is a page of the file and page_offset is zero by default rather than by measurement. Both readings confirmed that separately.
IT IS ORGANISED BY DIRECTION, WHICH IS WHY IT WAS READ THAT WAY. Section 1 is what the sound source receives (pp. 1-8), section 2 what it transmits (pp. 8-12), sections 3 and 4 what the sequencer records and plays (pp. 12-14), section 5 the Parameter Address Map (pp. 14-64) and section 6 supplementary material. Sections 3 and 4 are deliberately not read for controls: they say what the recorder does, not what the sound engine answers to. Section 5 holds system exclusive addresses and no controller numbers.
SECTION 2 NAMES FIVE FEWER CONTROLLERS THAN SECTION 1, AND THE DOCUMENT SAYS WHY. Foot type (4), Decay Time (75), Vibrato Rate (76), Vibrato Depth (77) and Vibrato Delay (78) have an entry under reception and none under transmission. That looks like an asymmetry worth recording and it is not, because section 2 opens with this: "By selecting a controller number that corresponds to the setting of parameters of controllers, the FANTOM-6/7/8 can transmit any control change message." (p. 8) It then prints one numberless entry, "General Controller" (implementation p. 10), whose second byte is "Controller number: 00H - 77H (0 - 31, 33 - 95)" (p. 10) - a range that covers all five. The Reference Manual's chart says the same thing in its own way, marking the row "1-31, 33-95" transmitted. So every control below is both, which is this format's default and is why none of them says so.
AND THAT SENTENCE CONTRADICTS ITSELF IN ONE CHARACTER. "00H - 77H" is 0 to 119, not 0 to 95; for the range the same line glosses, the hex would be 00H-1FH and 21H-5FH. The hex and the decimal cannot both be right and the document does not say which it means. Recorded and not resolved - it matters because that one line is the only thing in section 2 that accounts for the five missing controllers.
THE TWO DOCUMENTS AGREE ABOUT CC 17, though this account once said they did not. The implementation document names General Purpose Controller 2 at CC 17, in both of its sound-source sections, and the Reference Manual's chart prints a row for 17, General purpose controller 2, between 16 and 18 (reference p. 128). It is carried here.
FIVE NUMBERS ARE NOT CARRIED, AND THE LINE IS DRAWN ONCE AND SAID OUT LOUD. Data Entry (6 and 38), the RPN selects (100 and 101) and the High Resolution Velocity Prefix (88) are all named in the document and none is a parameter of this instrument: they are how the MIDI specification addresses things and how it extends a note's resolution. That is the same ruling that keeps the channel mode messages out - 120, 121, 123, 124, 125, 126 and 127, which this document also names - drawn one step wider. Bank Select (0 and 32) is carried, as it is wherever a maker numbers it; this file once set it aside with the five, and other definitions followed it there.
EVERY NUMBER WAS READ TWICE AND THE TWO AGREE ON EVERY ONE. The second reading, made without sight of the first, worked from glyph geometry rather than from extracted text and then rendered pages 1-14 and read them by eye. It reports a trap worth passing on: the controller headings are marked with ○, U+25CB, while ● marks a message type, so a pattern looking for ● and a controller number finds the channel mode messages and misses every control change.
NRPN IS A CHECKED ABSENCE, FROM BOTH DOCUMENTS AT ONCE. The implementation document names no NRPN parameter anywhere in 67 pages and gives no heading for controllers 98 and 99, so there is no way to select one; the Reference Manual's chart marks 98 and 99 "x" in both its transmitted and recognised columns. NRPN appears only in passing, in Data Entry's gloss and in the Reset All Controllers table. RPN, by contrast, is received and the document lists exactly four: Pitch Bend Sensitivity, Channel Fine Tuning, Channel Coarse Tuning and RPN null.
EVERY CONTROL BELOW NAMES THE ZONE, BECAUSE A ZONE IS WHAT RECEIVES IT. Each of the sixteen sets the channel it receives on, "Receive Channel 1-16 Specifies the MIDI channel assigned to each zone" (parameter_guide p. 11), and no zone's is set from another channel, so a control naming no part would mean a base channel, which the FANTOM does not have. Beside the zones' own, the system's MIDI settings name one channel more, the Scene Control Channel, which "Specifies the MIDI channel for controlling the scene" (reference p. 115); bank select's note below says what that leaves open. The implementation document puts every channel voice message it receives, control change among them, behind a zone's switch, "Not received when the Zone Receive Switch parameter (ZONE EDIT:LEVEL/PAN) is OFF." (implementation p. 1), and nineteen of the thirty-three below say more of the zone: fourteen change a setting of the zone's own, as 7 does its level and 74 its cutoff offset, and five more, bank select's two with 1, 11 and 64, can each be refused by a filter in the zone (implementation pp. 1 to 4). The other fourteen are tied to the zone by that note alone. What any of them does beyond that is assigned elsewhere: a tone's MFX and matrix controls can take a controller as their source, and so can the four System Control sources, whose settings "allow you to specify MIDI messages that will apply in common" (reference p. 117) to the whole instrument, or in their place a scene's own four (reference p. 117). The matrix controls are reached through a zone: "When a tone with Matrix Control settings is assigned to a zone, confirm that any MIDI messages used for the Matrix Control will be received" (parameter_guide p. 29). For the System Control sources no page says on which channel they must arrive.
NOT RECORDED: the sound generator's polyphony, which no document here states. The Reference Manual mentions the maximum polyphony twice (reference pp. 124 and 126) without a figure, and its specifications give one only for the pad sampler, "Maximum Polyphony: 8" (reference p. 130). And the preset count: program change reaches "Program Number 1-128" (reference p. 128) per the chart and Bank Select chooses the bank. The specifications count the scenes, "128 Scenes x 4 Bank" (reference p. 130), but give the tones only as "Over 3,500 Tones" (reference p. 130). The parameter guide names the tone banks by kind (parameter_guide p. 11), and the bank select table prints the first LSB of each and elides the rest of most (implementation p. 1), so no document here says how many 128-program banks of tones there are.