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 |
|---|---|---|
Tunevco_1_tune |
66 | 0-127 |
Metalizermetalizer |
70 | 0-127 |
Pulse Widthvco_1_pulse_width |
69 | 0-127 |
Syncsync |
65 | 0-127 |
Saw / Tri Mixvco_1_saw_tri_mix |
17 | 0-127 |
Saw / Square Mixvco_1_saw_square_mix |
12 | 0-127 |
VCO 2
| Control | CC | Values |
|---|---|---|
Tunevco_2_tune |
72 | 0-127 |
Sub Mixsub_mix |
14 | 0-127 |
Pulse Widthvco_2_pulse_width |
75 | 0-127 |
FM 2 > 1fm_2_1 |
77 | 0-127 |
Saw / Tri Mixvco_2_saw_tri_mix |
15 | 0-127 |
Saw / Square Mixvco_2_saw_square_mix |
16 | 0-127 |
Expression
| Control | CC | Values |
|---|---|---|
Exp 1exp_1 |
11 | 0-127 |
Exp 2exp_2 |
4 | 0-127 |
Glideglide |
5 | 0-127 |
Morph Knobmorph_knob |
3 | 0-127 |
Ribbonribbon |
9 | 0-127 |
Morphée Xmorph_e_x |
114 | 0-127 |
Morphée Ymorph_e_y |
115 | 0-127 |
Morphée Zmorph_e_z |
89 | 0-127 |
Filter FM
| Control | CC | Values |
|---|---|---|
VCO 2 > VCF 1vco_2_vcf_1 |
79 | 0-127 |
Noise > VCF 2noise_vcf_2 |
80 | 0-127 |
MIDI
| Control | CC | Values |
|---|---|---|
Mod Wheelmod_wheel |
1 | 0-127 |
Noise
| Control | CC | Values |
|---|---|---|
Noise Colornoise_color |
22 | 0-127 |
Ladder filter
| Control | CC | Values |
|---|---|---|
Cutoffladder_filter_cutoff |
25 | 0-127 |
Resonanceladder_filter_resonance |
87 | 0-127 |
Distodisto |
85 | 0-127 |
Series > Paraseries_para |
86 | 0-127 |
VCF Env Amtladder_filter_vcf_env_amt |
26 | 0-127 |
Levelladder_filter_level |
8 | 0-127 |
Steiner filter
| Control | CC | Values |
|---|---|---|
Cutoffsteiner_filter_cutoff |
23 | 0-127 |
Resonancesteiner_filter_resonance |
83 | 0-127 |
Brute Factorbrute_factor |
82 | 0-127 |
LP > HP > BPlp_hp_bp |
81 | 0-127 |
VCF Env Amtsteiner_filter_vcf_env_amt |
24 | 0-127 |
Levelsteiner_filter_level |
7 | 0-127 |
Mixer
| Control | CC | Values |
|---|---|---|
VCO 1mixer_vco_1 |
18 | 0-127 |
VCO 2mixer_vco_2 |
19 | 0-127 |
Noisemixer_noise |
21 | 0-127 |
VCF env
| Control | CC | Values |
|---|---|---|
Velovcf_env_velo |
94 | 0-127 |
Attackvcf_env_attack |
102 | 0-127 |
Decayvcf_env_decay |
103 | 0-127 |
Sustainvcf_env_sustain |
28 | 0-127 |
Releasevcf_env_release |
104 | 0-127 |
VCA env
| Control | CC | Values |
|---|---|---|
Velovca_env_velo |
95 | 0-127 |
Attackvca_env_attack |
105 | 0-127 |
Decayvca_env_decay |
106 | 0-127 |
Sustainvca_env_sustain |
29 | 0-127 |
Releasevca_env_release |
107 | 0-127 |
Mod env
| Control | CC | Values |
|---|---|---|
Delaydelay |
108 | 0-127 |
Attackmod_env_attack |
109 | 0-127 |
Decaymod_env_decay |
110 | 0-127 |
Sustainmod_env_sustain |
30 | 0-127 |
Releasemod_env_release |
111 | 0-127 |
LFO 1
| Control | CC | Values |
|---|---|---|
Phasephase |
90 | 0-127 |
Ratelfo_1_rate |
91 | 0-127 |
LFO 2
| Control | CC | Values |
|---|---|---|
Fade Infade_in |
92 | 0-127 |
Ratelfo_2_rate |
93 | 0-127 |
LFO 3
| Control | CC | Values |
|---|---|---|
Curvecurve |
67 | 0-127 |
Symmetrysymmetry |
68 | 0-127 |
Ratelfo_3_rate |
73 | 0-127 |
Effects
| Control | CC | Values |
|---|---|---|
Mod Intensitymod_intensity |
13 | 0-127 |
Delay Leveldelay_level |
31 | 0-127 |
Delay Timedelay_time |
112 | 0-127 |
Delay Regenerationdelay_regeneration |
113 | 0-127 |
Reverb Levelreverb_level |
2 | 0-127 |
Reverb Timereverb_time |
78 | 0-127 |
Reverb Dampingreverb_damping |
76 | 0-127 |
Stereostereo |
10 | 0-127 |
Sequencer
| Control | CC | Values |
|---|---|---|
Ratesequencer_rate |
116 | 0-127 |
Gategate |
118 | 0-127 |
Motion Rec Ratemotion_rec_rate |
117 | 0-127 |
Filters common
| Control | CC | Values |
|---|---|---|
Master Cutoffmaster_cutoff |
27 | 0-127 |
Key Trackkey_track |
71 | 0-127 |
Where these facts come from
Source documents
- User Manual PolyBrute, 3.0.1, dated 19 October 2023, its user manual, read on 3 October 2026 (the file read).
- User Manual PolyBrute Connect, 2.0.0, its user manual, read on 3 October 2026 (the file read).
- Arturia - PolyBrute, its product page, read on 3 October 2026.
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.