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.

Arturia PolyBrute MIDI implementation

The MIDI implementation of the Arturia PolyBrute: what it answers to, and the 74 controls it offers.

At a glance

Firmware
Not recorded.
MIDI channel
Any one of 1 to 16.
Parts
Upper Zone: on a MIDI channel of its own, taking notes and controls.
Lower Zone: on a MIDI channel of its own, taking notes and controls.
Voices
6, or 1 as set on the instrument, shared by the parts that play notes.
Note range
Not recorded.
Velocity
Received.
Aftertouch
Not recorded.
Pitch bend
Not recorded.
Program change
Received and sent, with 768 presets.
MIDI clock
Sent and received.
Start and stop
Not recorded.
Control change
74 controls, in the tables below.
NRPN
Not recorded.
System exclusive
Not recorded.

Controls

In the order the definition gives them, by group. Under each control is the name a program calls it by, once pymidiinstrumentdefs.load("arturia/polybrute") has loaded them.

VCO 1

Control CC Values
Tune
vco_1_tune
66 0-127
Metalizer
metalizer
70 0-127
Pulse Width
vco_1_pulse_width
69 0-127
Sync
sync
65 0-127
Saw / Tri Mix
vco_1_saw_tri_mix
17 0-127
Saw / Square Mix
vco_1_saw_square_mix
12 0-127

VCO 2

Control CC Values
Tune
vco_2_tune
72 0-127
Sub Mix
sub_mix
14 0-127
Pulse Width
vco_2_pulse_width
75 0-127
FM 2 > 1
fm_2_1
77 0-127
Saw / Tri Mix
vco_2_saw_tri_mix
15 0-127
Saw / Square Mix
vco_2_saw_square_mix
16 0-127

Expression

Control CC Values
Exp 1
exp_1
11 0-127
Exp 2
exp_2
4 0-127
Glide
glide
5 0-127
Morph Knob
morph_knob
3 0-127
Ribbon
ribbon
9 0-127
Morphée X
morph_e_x
114 0-127
Morphée Y
morph_e_y
115 0-127
Morphée Z
morph_e_z
89 0-127

Filter FM

Control CC Values
VCO 2 > VCF 1
vco_2_vcf_1
79 0-127
Noise > VCF 2
noise_vcf_2
80 0-127

MIDI

Control CC Values
Mod Wheel
mod_wheel
1 0-127

Noise

Control CC Values
Noise Color
noise_color
22 0-127

Ladder filter

Control CC Values
Cutoff
ladder_filter_cutoff
25 0-127
Resonance
ladder_filter_resonance
87 0-127
Disto
disto
85 0-127
Series > Para
series_para
86 0-127
VCF Env Amt
ladder_filter_vcf_env_amt
26 0-127
Level
ladder_filter_level
8 0-127

Steiner filter

Control CC Values
Cutoff
steiner_filter_cutoff
23 0-127
Resonance
steiner_filter_resonance
83 0-127
Brute Factor
brute_factor
82 0-127
LP > HP > BP
lp_hp_bp
81 0-127
VCF Env Amt
steiner_filter_vcf_env_amt
24 0-127
Level
steiner_filter_level
7 0-127

Mixer

Control CC Values
VCO 1
mixer_vco_1
18 0-127
VCO 2
mixer_vco_2
19 0-127
Noise
mixer_noise
21 0-127

VCF env

Control CC Values
Velo
vcf_env_velo
94 0-127
Attack
vcf_env_attack
102 0-127
Decay
vcf_env_decay
103 0-127
Sustain
vcf_env_sustain
28 0-127
Release
vcf_env_release
104 0-127

VCA env

Control CC Values
Velo
vca_env_velo
95 0-127
Attack
vca_env_attack
105 0-127
Decay
vca_env_decay
106 0-127
Sustain
vca_env_sustain
29 0-127
Release
vca_env_release
107 0-127

Mod env

Control CC Values
Delay
delay
108 0-127
Attack
mod_env_attack
109 0-127
Decay
mod_env_decay
110 0-127
Sustain
mod_env_sustain
30 0-127
Release
mod_env_release
111 0-127

LFO 1

Control CC Values
Phase
phase
90 0-127
Rate
lfo_1_rate
91 0-127

LFO 2

Control CC Values
Fade In
fade_in
92 0-127
Rate
lfo_2_rate
93 0-127

LFO 3

Control CC Values
Curve
curve
67 0-127
Symmetry
symmetry
68 0-127
Rate
lfo_3_rate
73 0-127

Effects

Control CC Values
Mod Intensity
mod_intensity
13 0-127
Delay Level
delay_level
31 0-127
Delay Time
delay_time
112 0-127
Delay Regeneration
delay_regeneration
113 0-127
Reverb Level
reverb_level
2 0-127
Reverb Time
reverb_time
78 0-127
Reverb Damping
reverb_damping
76 0-127
Stereo
stereo
10 0-127

Sequencer

Control CC Values
Rate
sequencer_rate
116 0-127
Gate
gate
118 0-127
Motion Rec Rate
motion_rec_rate
117 0-127

Filters common

Control CC Values
Master Cutoff
master_cutoff
27 0-127
Key Track
key_track
71 0-127

Where these facts come from

Source documents

How they were read

User manual (127pp), English edition 3.0.1: the rear panel at p. 8, the voice and timbrality modes at pp. 38-39, aftertouch at pp. 42 and 100, the preset count at p. 12, the sync settings at pp. 104-105, the MIDI settings at pp. 109-110, the specifications at p. 114, and the chart of controller numbers at 13.1, pp. 115-116, which is where every number here comes from.

THE PRINTED PAGE IS SEVEN BEHIND THE PAGE OF THE FILE, so page_offset: 7, and the chart is on the 122nd and 123rd pages of a 127-page document.

THE CHART IS A GRID OF EIGHTEEN SMALL TABLES, THREE ACROSS, and that is the whole of what is difficult about reading it. Each table is a Parameter column beside a MIDI CC one with a heading over it, and three sit side by side across the page. A text reading looks deceptively safe - pypdf's layout mode keeps the three abreast and does not interleave them, which is more than the Dreadbox Typhon's chart managed - and the column positions move from one block of rows to the next: one row has its second table's parameter column at character 55 and another four rows later has it at 51, with the numbers shifting the other way. So the numbers here were read out of the grid the page draws. Arturia rules every row across the full width - 34 horizontal rules on the first page, each spanning the same two x positions - while the verticals are drawn per block, which is the same fact that defeats a fixed cut and is what makes the grid usable: the horizontals give the rows and the verticals overlapping a row give that row's own columns.

AND THE SHARPEST FORM OF THAT TRAP IS THREE ROWS WITH ONLY TWO CELLS IN THEM. Where a left-hand table runs out of rows before its neighbours, the row that follows carries only the tables still going - Morphée Y 115, Morphée Z 89 and Rate 73 are each alone on their line, set where the second or third table sits. A reader that splits a line on runs of whitespace files all three under the leftmost table, which would put two of the Morphée's axes in VCO 1 and the third LFO's rate in LFO 1. Both readings here place a cell by where it is rather than by how many precede it, and both get those three right.

EVERY NUMBER WAS READ TWICE AND THE TWO AGREE ON ALL 74 ROWS. The second reading, made without sight of the first, derived each block's column offsets from that block's own heading row and then checked the result against both pages rendered and read by eye. It measured the drift the paragraph above describes: the second table's parameter column begins at character 55, 54, 51, 52 and 52 in the five blocks of the first page and at 56 on the second, and the third table's at 93, 96, 95, 91, 91 and 97.

READING ACROSS ALSO MEANS THE RESULT HAS TO BE GATHERED BEFORE IT IS WRITTEN DOWN. The grid's natural order is row one of all three tables, then row two of all three, so the controls below are regrouped by table - each keeping the order its own rows were read in - rather than shipped in the order they came off the page.

EVERY NUMBER IS DISTINCT, which is worth asserting for an instrument with no parts dividing its sound engine: 74 controls and 74 controller numbers, so nothing here needs a part to say what a number means. Fourteen parameter names are not distinct - Rate names four different things, Attack, Decay, Sustain and Release three apiece, and Cutoff, Resonance, Level, Tune, Pulse Width, Saw / Tri Mix, Saw / Square Mix, Velo and VCF Env Amt two - so every one of those carries its table in its key.

THE GAPS IN THE NUMBERING ARE MOSTLY MIDI'S OWN. The chart uses 74 of the 118 numbers between 1 and 118, and the 44 it does not use are led by an unbroken absence from 32 to 64 - which is two facts and not one. 32 to 63 is the block the MIDI specification reserves for the fine halves of controllers 0 to 31, so an instrument sending seven-bit values has no use for it; 64 is the damper pedal, and this instrument takes a sustain pedal on a jack of its own rather than on a controller. The rest are 6 (data entry), 20, 74, 84, 88 and 96 to 101, which are data increment and decrement and the NRPN and RPN selects. The manual accounts for none of them, and none is inferred here; they are set out because a block of numbers that is not contiguous is worth asking about rather than passing over.

CONTROL CHANGE TRAVELS BOTH WAYS AND IT IS A SETTING: "ON enables the PolyBrute to send and receive MIDI Continuous Controller (CC) messages when almost any knob is turned, via either USB MIDI or the 5-pin MIDI port. OFF disables this capability" (p. 110). So every control below is both, which is this format's default and is why none of them says so.

THE CHART NAMES THE TWO FILTERS ONE WAY IN ITS HEADINGS AND ANOTHER WAY IN ITS ROWS, and the chart alone cannot reconcile them. Two tables are headed LADDER FILTER and STEINER FILTER, while the FILTER FM table beside them routes to VCF 1 and VCF 2 - so from pp. 115-116 there is no way to tell which filter CC 79 and CC 80 reach. The rest of the manual settles it three times over: "VCF 1 (Steiner)" and "VCF 2 (Ladder)" in the panel diagram (p. 1), "VCF 1 is an enhanced version of the Steiner filter that featured prominently in the Brute series synthesizers" (p. 31), and "VCF 2 is similar in design to the most well-known ladder filter on this planet" (p. 32). So CC 79 routes oscillator 2 into the Steiner and CC 80 routes the noise into the Ladder, and the group labels below keep the chart's own words while this sentence carries the mapping.

SEVERAL OF THESE NUMBERS MEAN SOMETHING ELSE IN THE MIDI SPECIFICATION, AND THE MANUAL NEVER SAYS SO. CC 7 is Channel Volume and here it is the Steiner filter's Level; CC 8 is Balance and here it is the Ladder's Level; CC 2 is Breath Controller and here it is Reverb Level; CC 4 is Foot Controller and here it is Expression 2. So a sequencer sending a routine volume message will move a filter level on this instrument. Four others do follow convention - CC 1 is the mod wheel, CC 5 is Glide where the specification has portamento time, CC 10 is Stereo where it has pan, CC 11 is Expression 1 - which makes the four above look like choices rather than oversights. Recorded because a player meets it as a fault and a panel can warn about it.

THE SURVEY SAID THIS MANUAL DOES NOT NAME THE REAR CONNECTORS AND IT NAMES THEM TWICE. The rear-panel section gives "MIDI In/Out/Thru - Standard 5-pin DIN jacks, used to connect PolyBrute to other MIDI devices" (p. 8) and the specifications repeat "MIDI In/Out/Thru connectors" (p. 114), with a USB type B port beside them in both places. The two agree, which is not something to take for granted - the Behringer TD-3's manual contradicts itself about its own socket.

THE EDITOR PUBLISHES NO NUMBERS. PolyBrute Connect's own 77-page manual was fetched and searched because the survey raised it as a possible second source: it mentions the controller surface exactly once, as the setting above, and carries no chart, no controller number and no system exclusive. It is cited for that, and for nothing else.

NOT RECORDED: transport, and the reason is the vocabulary rather than the manual. Sending is a setting - "Use [Assign 1-2] to turn MIDI Transport Message transmission on (default) or off" (p. 105) - and receiving is nowhere stated: the Sync menu has no transport-receive switch because Sync>Source is the one receive control it has, and the manual describes only its Auto option. sends would deny reception, which nothing here establishes, so the field is left unset and the fact is in this sentence.

ALSO NOT RECORDED: system exclusive, which neither manual mentions; NRPN, likewise; and the note range, which no page states - the keyboard is five octaves with buttons that "shift keyboard range +/- 2 octaves from center" (p. 114), which is a fact about the keyboard and not about what the instrument answers to.

AND NOT RECORDED, MPE: this manual says nothing about it anywhere in 127 pages, which is consistent with the survey's account that the PolyBrute 12 is the sibling that adds it. The silence is reported rather than read as a denial.