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.

Waldorf Blofeld MIDI implementation

The MIDI implementation of the Waldorf Blofeld: what it answers to, and the 120 controls it offers, on firmware 1.25.

At a glance

Firmware
This page describes firmware 1.25.
MIDI channel
Any one of 1 to 16.
Parts
Multi Part, 16 of them: each on a MIDI channel of its own, taking notes, controls, and program changes.
Voices
25, shared by the parts that play notes.
Note range
Not recorded.
Velocity
Received. Release velocity is received.
Aftertouch
Channel pressure and polyphonic, each answered.
Pitch bend
How far it bends is not recorded, and the range can be changed.
Program change
Received, with 1024 presets.
MIDI clock
Received.
Start and stop
Neither sent nor received.
Control change
Assigned by the player, apart from the 120 controls 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("waldorf/blofeld") has loaded them.

On the base MIDI channel

Controllers

Control CC Values
Modulation Wheel
modulation_wheel
1 0-127
Breath Control
breath_control
2 0-127
Foot Control
foot_control
4 0-127
Channel Volume
channel_volume
7 0-127
Pan
pan
10 0-127
Sustain Pedal
sustain_pedal
64 0-127
Bank Select LSB
bank_select_lsb
32 0-127
Received, never sent
Sostenuto
sostenuto
66 0-127

Arpeggiator

Control CC Values
Arp Range
arp_range
12 0-9
Arp Length
arp_length
13 0-15
Arp Active
arp_active
14 0-3

LFO 1

Control CC Values
LFO 1 Shape
lfo_1_shape
15 0-5
LFO 1 Speed
lfo_1_speed
16 0-127
LFO 1 Sync
lfo_1_sync
17 0-1
LFO 1 Delay
lfo_1_delay
18 0-127

LFO 2

Control CC Values
LFO 2 Shape
lfo_2_shape
19 0-5
LFO 2 Speed
lfo_2_speed
20 0-127
LFO 2 Sync
lfo_2_sync
21 0-1
LFO 2 Delay
lfo_2_delay
22 0-127

LFO 3

Control CC Values
LFO 3 Shape
lfo_3_shape
23 0-5
LFO 3 Speed
lfo_3_speed
24 0-127
LFO 3 Sync
lfo_3_sync
25 0-1
LFO 3 Delay
lfo_3_delay
26 0-127

Oscillator 1

Control CC Values
Osc 1 Octave
osc_1_octave
27 16-112, in steps of 12
Osc 1 Semitone
osc_1_semitone
28 52-76
Osc 1 Detune
osc_1_detune
29 0-127
Osc 1 FM
osc_1_fm
30 0-127
Osc 1 Shape
osc_1_shape
31 0-5
Osc 1 PW
osc_1_pw
33 0-127
Osc 1 PWM
osc_1_pwm
34 0-127
Osc 1 Level
osc_1_level
52 0-127
Osc 1 Balance
osc_1_balance
53 0-127

Oscillator 2

Control CC Values
Osc 2 Octave
osc_2_octave
35 16-112, in steps of 12
Osc 2 Semitone
osc_2_semitone
36 52-76
Osc 2 Detune
osc_2_detune
37 0-127
Osc 2 FM
osc_2_fm
38 0-127
Osc 2 Shape
osc_2_shape
39 0-5
Osc 2 PW
osc_2_pw
40 0-127
Osc 2 PWM
osc_2_pwm
41 0-127
Sync
osc_2_sync
49 0-1
Osc 2 Level
osc_2_level
56 0-127
Osc 2 Balance
osc_2_balance
57 0-127

Oscillator 3

Control CC Values
Osc 3 Octave
osc_3_octave
42 16-112, in steps of 12
Osc 3 Semitone
osc_3_semitone
43 52-76
Osc 3 Detune
osc_3_detune
44 0-127
Osc 3 FM
osc_3_fm
45 0-127
Osc 3 Shape
osc_3_shape
46 0-5
Osc 3 PW
osc_3_pw
47 0-127
Osc 3 PWM
osc_3_pwm
48 0-127
Osc 3 Level
osc_3_level
58 0-127
Osc 3 Balance
osc_3_balance
59 0-127

Oscillator common

Control CC Values
Pitchmod
osc_pitchmod
50 0-127

Glide

Control CC Values
Glide Rate
glide_rate
5 0-127
Glide Mode
glide_mode
51 0-9
Glide Active
glide_active
65 0-127

Ring modulation

Control CC Values
Ringmod Level
ringmod_level
54 0-127
Ringmod Balance
ringmod_balance
55 0-127

Noise

Control CC Values
Noise Level
noise_level
60 0-127
Noise Balance
noise_balance
61 0-127
Noise Colour
noise_colour
62 0-127

Filter 1

Control CC Values
Filter 1 Type
filter_1_type
68 0-10
Filter 1 Cutoff
filter_1_cutoff
69 0-127
Filter 1 Resonance
filter_1_resonance
70 0-127
Filter 1 Drive
filter_1_drive
71 0-127
Filter 1 Keytrack
filter_1_keytrack
72 0-127
Filter 1 Env. Amount
filter_1_env_amount
73 0-127
Filter 1 Env. Velocity
filter_1_env_velocity
74 0-127
Filter 1 CutoffMod
filter_1_cutoffmod
75 0-127
Filter 1 FM
filter_1_fm
76 0-127
Filter 1 Pan
filter_1_pan
77 0-127
Filter 1 Panmod
filter_1_panmod
78 0-127

Filter 2

Control CC Values
Filter 2 Type
filter_2_type
79 0-10
Filter 2 Cutoff
filter_2_cutoff
80 0-127
Filter 2 Resonance
filter_2_resonance
81 0-127
Filter 2 Drive
filter_2_drive
82 0-127
Filter 2 Keytrack
filter_2_keytrack
83 0-127
Filter 2 Env. Amount
filter_2_env_amount
84 0-127
Filter 2 Env. Velocity
filter_2_env_velocity
85 0-127
Filter 2 CutoffMod
filter_2_cutoffmod
86 0-127
Filter 2 FM
filter_2_fm
87 0-127
Filter 2 Pan
filter_2_pan
88 0-127
Filter 2 Panmod
filter_2_panmod
89 0-127

Filter common

Control CC Values
Routing
filter_routing
67 0-127

Amplifier

Control CC Values
Amp Volume
amp_volume
90 0-127
Amp Velocity
amp_velocity
91 0-127
Amp Mod
amp_mod
92 0-127

Effects

Control CC Values
FX 1 Mix
fx_1_mix
93 0-127
FX 2 Mix
fx_2_mix
94 0-127

Filter envelope

Control CC Values
FE Attack
fe_attack
95 0-127
FE Decay
fe_decay
96 0-127
FE Sustain
fe_sustain
97 0-127
FE Decay 2
fe_decay_2
98 0-127
FE Sustain 2
fe_sustain_2
99 0-127
FE Release
fe_release
100 0-127

Amp envelope

Control CC Values
AE Attack
ae_attack
101 0-127
AE Decay
ae_decay
102 0-127
AE Sustain
ae_sustain
103 0-127
AE Decay 2
ae_decay_2
104 0-127
AE Sustain 2
ae_sustain_2
105 0-127
AE Release
ae_release
106 0-127

Envelope 3

Control CC Values
E3 Attack
e3_attack
107 0-127
E3 Decay
e3_decay
108 0-127
E3 Sustain
e3_sustain
109 0-127
E3 Decay 2
e3_decay_2
110 0-127
E3 Sustain 2
e3_sustain_2
111 0-127
E3 Release
e3_release
112 0-127

Envelope 4

Control CC Values
E4 Attack
e4_attack
113 0-127
E4 Decay
e4_decay
114 0-127
E4 Sustain
e4_sustain
115 0-127
E4 Decay 2
e4_decay_2
116 0-127
E4 Sustain 2
e4_sustain_2
117 0-127
E4 Release
e4_release
118 0-127

Multi part

Controllers

Control CC Values
Modulation Wheel
part_modulation_wheel
1 0-127
Breath Control
part_breath_control
2 0-127
Foot Control
part_foot_control
4 0-127
Channel Volume
part_channel_volume
7 0-127
Pan
part_pan
10 0-127
Sustain Pedal
part_sustain_pedal
64 0-127
Bank Select LSB
part_bank_select_lsb
32 0-127
Received, never sent
Sostenuto
part_sostenuto
66 0-127

Where these facts come from

Source documents

How they were read

User´s Manual, 128 pages, Revision 1.1 of January 2009: Controller Numbers at pp. 113-117, which gives a row for every controller number from 0 to 127 under four columns - Ctrl #, Controller Range, Controller name or Sound Parameter, Value Range. 112 of those 128 rows are controls here. Plus the connections at pp. 8 and 10, the Keyboard's own controls at p. 16, Multi mode at pp. 24-28, the oscillator and filter sections at pp. 42-52, the modulation sources at p. 60, the Global menu at pp. 82-86, the appendix's modulation source table at p. 106 and the glossary at p. 122. Waldorf does publish a second MIDI document for this instrument, a System Exclusive specification of 35 pages, and it names no controller number anywhere: searched for controller, control change and CC on every page of it. So the manual's chart is the whole of the published controller map, and the specification is cited below only for the parameter ranges it gives differently and for the device ID.

SIXTEEN ROWS ARE NOT CONTROLS, each left out for a stated reason. Twelve read "- not used -" (pp. 113-117) in the maker's own hand: 0, 3, 6, 8, 9, 11, 63, 119 and 124 to 127 - 0 among them, the chart's Bank Select MSB. Four are channel mode messages, which belong to the MIDI specification rather than to this instrument and which the validator refuses - All Sound Off, Reset All Controllers, Local Control and All Notes Off at 120 to 123. Bank select LSB at 32 is a control, as bank select is wherever a maker numbers it, and its banks are under program_change below too.

TEN CONTROLS CARRY AN ASTERISK IN THE CHART, which is a footnote marker and not part of a name, so it is not in their labels: "Controllers marked with * don’t change the Sound program but can perform temporary modulations or other tasks" (p. 113). They are the modulation wheel, breath control, foot control, channel volume, pan, the sustain pedal and bank select LSB, which are here; and the three channel mode messages, which are not. Nothing else in the file marks the distinction, because the format has no way to say it.

EIGHT STANDARD CONTROLLERS ARE WRITTEN TWICE, ONCE FOR THE GLOBAL CHANNEL AND ONCE FOR A MULTI PART. In Sound mode the instrument answers on the Global menu's channel, which "Sets the basic send and receive channel for the Blofeld." (p. 82), so a control naming no part describes Sound mode. In Multi mode each part has a channel of its own, "used to send MIDI messages and to receive MIDI messages for this Part" (p. 25). Three of the eight are named as reaching a part: its settings take or ignore the modulation wheel and the sustain pedal (pp. 27, 28), and the note on controller 7 speaks of "the Instruments that receive on this MIDI channel" (p. 25). For breath, foot, pan, sostenuto and bank select LSB it is inferred from the part's channel alone. So each of the eight - the seven with an asterisk, and sostenuto, which has none and is no sound parameter either - has a twin keyed part_ that names the part. The sound parameters reach a Multi part on its channel too, subject to its Edits switch (p. 28); they are left part-less only because the rule this follows covers the standard controllers.

THIS INSTRUMENT CANNOT DO NRPN OR RPN, AND THE CHART IS WHY. Neither the manual nor Waldorf's System Exclusive specification mentions either, on any page of either. More than that, the chart gives away the six controller numbers the mechanism needs: CC 6, Data Entry, is marked "- not used -" (p. 113); CC 38, its LSB, is Osc 2 FM; and 98, 99, 100 and 101 - the NRPN and RPN pairs - are the filter envelope's Decay 2, Sustain 2 and Release and the amplifier envelope's Attack. A fine parameter change travels by system exclusive here instead, which the Global menu offers as a choice: "Determines how Real-Time Sound Parameter Changes are sent by the Blofeld over USB-MIDI" (p. 83), over off, Ctl, SysEx and Ctl+SysEx.

FOUR ASSIGNABLE CONTROLLERS CAN DISABLE A CONTROL IN THIS FILE, which is worth knowing before trusting one. Control W, X, Y and Z are modulation sources whose controller numbers the player picks, over 0 to 120 - "The highest possible Controller number is 120 because all higher numbers are reserved for non-real-time purposes" (p. 84). Setting one to a number the chart already uses takes that number away from the sound parameter: "the Blofeld disables this Controller as Sound parameter Controller and uses it exclusively for one of the Ctrl W…Ctrl Z" (p. 85). The four are not controls here, because a number a player assigns is not a property of the model - the reading the modwave's hundred assignable numbers got - but any of the 104 sound parameters below can be switched off by one. And it breaks in one direction only: "The Sound parameter is sent out as Controller but can’t be received as long as you don’t change Ctrl W…Ctrl Z to other MIDI Continuous Controller messages" (p. 85). So a panel that moves a knob, watches the instrument send the right controller, and concludes the link works can still find that sending the same controller back does nothing.

THE CHART IS NOT THE WHOLE PARAMETER SET, WHICH MATTERS BEFORE ANYBODY BUILDS ON IT. A sound is 383 bytes over system exclusive against the 112 controller numbers here, and whole sections of the instrument have no controller number at all: the sixteen modulation matrix slots, the four modifiers, the arpeggiator's step data, the program name and category, and every effect parameter but the two mix levels. The Global menu offers system exclusive as the way to reach them - "If SysEx is selected, all Sound parameters are sent as system exclusive messages" (p. 84) - so a reader wanting to drive this instrument fully needs the specification beside this file, not this file alone.

WHERE THE SYSTEM EXCLUSIVE SPECIFICATION DISAGREES WITH THE CHART, BOTH ARE RECORDED AND NEITHER IS RESOLVED. That document lists the same parameters with ranges of their own, and four differ: it gives the filter type 0..11 and names twelve types where the chart's controller range is 0…10; the glide mode 0..3 where the chart gives 0…9; the oscillator shape 0..72 where the chart gives 0…5 and names six; and the filter keytrack -200%..+196% where the chart prints +197%. The ranges below are the chart's, because its column is headed Controller Range and is the only published statement of what a controller accepts. The twelfth filter type is in the manual's own prose - "PPG LP Lowpass is a resonance lowpass filter with a slope rate of 24dB per octave" (p. 49) - which makes the chart's 0…10 look like the slip, and is still not enough to record one.

THE GLIDE MODE ROW DISAGREES WITH THE MANUAL'S OWN PAGE, WHICH IS A SHARPER PROBLEM THAN THE ABOVE. The chart gives it a controller range of 0…9 and sends you elsewhere for the meanings; the page it sends you to names four - "Mode Portamento / fingered P / Glissando / fingered G" (p. 44) - and the System Exclusive specification gives the same parameter 0..3. So one document says ten settings and the same document says four. Both are recorded and neither is resolved: the control keeps the chart's range, because that column states what the controller accepts rather than how many of its values do something, and this paragraph is what says the two do not match.

NO CONTROL HAS A DEFAULT, because the chart gives none and nothing else states any.

AND NO CONTROL NAMES ITS STATES, though eighteen of them have states to name. The chart prints a value range beside each - "off, on" for four, "serial/parallel" (manual p. 115) for the filter routing, six waveform names for each LFO shape, six for each oscillator shape - but it never says which controller value selects which state, and in every one of those rows the controller range is wider than the list: four states against 0…3, two states against 0…127. Two rows show the gap plainly, Filter 1 and 2 FM, whose range is 0…127 and whose values are "off, 1…127" - a reader is left to work out that 0 is the off. So every control here is continuous and the states are not numbered, which is this corpus's rule and is also the only honest reading of the page.

THREE THINGS PRINTED IN THE CHART THAT A READER SHOULD NOT BE SURPRISED BY. The glide mode's value range is in German, reading siehe "Glide Mode" - see - which is the only non-English string in the chart, and it points at a heading the manual does not have: that page is headed Glide and calls the parameter Mode. Noise Colour at CC 62 writes both its range cells with three full stops where every other row that prints a range uses an ellipsis, so a reader matching the exact string misses exactly one row. And the chart misnames controller 126 as Poly Mode On/Off, where the MIDI specification's 126 is Mono Mode On; it is marked unused either way, so nothing here rests on it.

THE FOUR ENVELOPES ARE ABBREVIATED IN THE CHART AND EXPANDED SIX PAGES EARLIER. FE, AE, E3 and E4 are nowhere explained where they are used, but the appendix's table of modulation destinations gives them in full - "FE Attack Attack rate of Filter Envelope" (manual p. 107) and "AE Attack Attack rate of Amp Envelope" (p. 107) - which is where the group names below come from rather than from a guess at what the letters stand for.