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 12 MIDI implementation

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

At a glance

Firmware
Not recorded.
MIDI channel
1 to 16.
MPE
Sent and received: its voices are spread across its MIDI channels, a note to each.
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
12, or 1, 2, 3, or 6 as set on the instrument, shared by the parts that play notes.
Note range
Not recorded.
Velocity
Received.
Aftertouch
Answered, of a kind its documents do not say. It sends aftertouch too.
Pitch bend
24 semitones, and the range can be changed.
Program change
Received and sent, with 768 presets.
MIDI clock
Sent and received.
Start and stop
Sent and received.
Control change
75 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_12") 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

MPE

Control CC Values
Slide
slide
74 0-127

Where these facts come from

Source documents

How they were read

User manual (137pp), English edition 3.1.0: the rear panel at p. 9, the polyphony at pp. 6 and 40, the timbrality and the zones at p. 41, the voice allocation at pp. 47-48, the presets at p. 13, the bend range at p. 104, the aftertouch modes and the two MPE tables at pp. 104-107, the sync settings at pp. 111-112, the keyboard settings at pp. 113-114, the MIDI settings at pp. 115-118, the specifications at p. 122, and the chart of controller numbers at 13.1, pp. 123-124, which is where all but one of the numbers here comes from. And Arturia's resources page for the PolyBrute 12, for what is published.

THE PRINTED PAGE IS NINE BEHIND THE PAGE OF THE FILE, so page_offset: 9, and the chart is on the 132nd and 133rd sheets of a 137-sheet document. The PolyBrute's offset is seven, because its front matter is two sheets shorter - a sibling's offset is not a hint, and the first nine sheets here carry no printed folio at all, so nothing in the introduction can be cited by page.

IT IS A DIFFERENT DOCUMENT AND ITS OWN METADATA SAYS SO, which is checked rather than assumed because two manuals under one family's version numbering is exactly how a sibling's chart gets read as this one's. This file calls itself User Manual PolyBrute 12 internally, with the subject polybrute-12 and the keywords polybrute-12__3.1.0__20251010__en, and was built on 15 October 2025 by Prince 15.4.1. The PolyBrute's calls itself User Manual PolyBrute, subject polybrute, built 19 October 2023 by Prince 13.5. Nineteen months and two typesetter versions apart, 137 sheets against 127.

AND THAT SAME CHECK FOUND SOMETHING ABOUT THE SIBLING WORTH PASSING ON: the PolyBrute's PDF carries the keywords polybrute__3.0.0__20231019__en, so the document's own version is 3.0.0 where the page that serves it says 3.0.1. That refines what arturia/polybrute records - it says four translations were 3.0.0 while the English was 3.0.1, and the English file's own metadata agrees with the translations rather than with the page. Nothing in either definition changes; it is recorded so that nobody reads Arturia's page numbers as the documents' own.

THE CHART IS A GRID OF EIGHTEEN SMALL TABLES, THREE ACROSS, which is the sibling's difficulty repeated exactly. Each table is a Parameter column beside a MIDI CC one with a heading over it, and three sit side by side. Two things make a plain text reading unsafe: the column positions move from one block of rows to the next, so a fixed cut slices some rows through the middle of a word while looking orderly; and eight lines carry fewer than three cells, where a left-hand table has run out, so Morphée Y 115, Morphée Z 89 and Rate 73 are each alone on their line over the table they belong to. A reader that splits a line on runs of whitespace and takes the pieces in order 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.

SO BOTH READINGS PLACED A CELL BY WHERE IT IS RATHER THAN BY HOW MANY PRECEDE IT, and they agree on all 74 rows. One recovered the ruled grid the page draws and dropped each word into the cell its own centre lands in; the second, made without sight of the first, used a different library's layout mode, derived each block's offsets from that block's own heading row, and then checked the result against both sheets rendered at 200 dpi and read by eye.

AND THE RENDERING WAS THE LESS RELIABLE OF THE TWO, WHICH IS WORTH SAYING OUT LOUD. The second reader reports that this manual is set in a geometric sans whose zero is a perfect circle, so in the image 70, 80, 90, 10 and 102 to 110 all read as 7O, 8O, 9O, 1O and 1O2. The text layer gives unambiguous digits and was taken as authoritative. An eye-reading of a render is the method this project reaches for when a text layer cannot be trusted, and here it is the method that would have introduced the error.

EVERY NUMBER IS DISTINCT - 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, and the keys below are the PolyBrute's keys, asserted against the committed file so that a reader comparing the two definitions sees no difference this file invented.

CONTROL CHANGE TRAVELS BOTH WAYS AND IT IS A SETTING: "ON enables the PolyBrute 12 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" (manual p. 116). So every charted 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, exactly as the sibling's does: two tables are headed LADDER FILTER and STEINER FILTER while the FILTER FM table beside them routes to VCF 1 and VCF 2, so the chart alone cannot say which filter controllers 79 and 80 reach. The PolyBrute's file settles it from three sentences elsewhere in that manual - VCF 1 is the Steiner and VCF 2 the Ladder - and this instrument's filters are the same two by the same names. The group labels below keep the chart's own words, and a reader wanting the mapping has it in arturia/polybrute.

SEVERAL OF THESE NUMBERS MEAN SOMETHING ELSE IN THE MIDI SPECIFICATION, AND THE MANUAL NEVER SAYS SO. Controller 7 is Channel Volume and here it is the Steiner filter's Level; 8 is Balance and here it is the Ladder's Level; 2 is Breath Controller and here it is Reverb Level; 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 - 1 is the mod wheel, 5 is Glide where the specification has portamento time, 10 is Stereo where it has pan, 11 is Expression 1 - which makes the four above look like choices rather than oversights. Inherited from the sibling's chart because the chart is the same, and repeated here because a reader of this file may never open that one.

WHAT THE GAPS IN THE NUMBERING ARE. The chart uses 74 of the 118 numbers between 1 and 118, and controller 74 below takes a seventy-fifth from outside it. The absence from 32 to 64 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, and 64 is the damper pedal, which this instrument takes on a jack of its own - "Sustain Normally open" (manual p. 122). The rest are 6, 20, 84, 88, 96 to 101 and 119 to 127. The manual accounts for none of them and none is inferred here.

THE SURVEY SAID THIS INSTRUMENT HAS A USB-C SOCKET AND THE MANUAL SAYS USB TYPE B, three times and consistently: "USB - USB Type B port for connecting PolyBrute 12 to a Mac or PC" (manual p. 9), "USB Type B (max. cable length 3 meters)" (manual p. 9) in the rear-panel table on the same page, and "USB type B connector for use with DAWs and PolyBrute Connect" (manual p. 122). The five-pin jacks are named twice and agree: "MIDI In/Out/Thru - Standard 5-pin DIN jacks, used to connect PolyBrute 12 to other MIDI devices" (manual p. 9) and "MIDI In/Out/Thru connectors" (manual p. 122). So the connector difference the survey reported between the two products is not there, and the correction is recorded rather than passed over.

THE EDITOR'S MANUAL IS THE SAME FILE THE POLYBRUTE CITES, which is established from the page rather than by fetching 32 MB twice: the 12's resources page offers "Polybrute Connect EN Manual" (resources_page) at 2.0.0 of 3 December 2021, behind the identical URL /api/download/products/polybrute-connect/manual/polybrute-connect_Manual_2_0_0_EN.pdf. That document is already in this library under the sibling, where it was read in full: 77 pages, one mention of the controller surface as a setting, no chart and no controller number. And this manual does not defer to it - it points at itself, "See the Specifications [p.122] chapter for a chart of the CC numbers" (manual p. 116) - so no number here is cited to it. It is cited for one passage, about the velocity of notes played from the editor's on-screen keys, which is what voice.velocity rests on here as it does in arturia/polybrute.

NOT RECORDED: system exclusive and NRPN. The words SysEx, System Exclusive, NRPN and RPN appear nowhere in these 137 pages, which is a checked absence and still not enough to record one. The S-1 in this corpus does record nrpn: none off the same kind of search, and the difference is the document: that instrument publishes a MIDI implementation chart, which is a form that undertakes to list what it does not do, so its silence is an answer. This manual publishes a list of controller assignments and no chart, so its silence is only silence. The sibling's file leaves both unset for the same reason and the two agree.

EVERY QUOTATION BELOW CARRIES A LOCATOR, AND THAT WAS AUDITED RATHER THAN ASSUMED. The quotation gate only acts on a quotation followed by (p. N) or a source key, and says nothing at all about one followed by neither - so the quote marks in this file were paired off in order and counted: 66 quotations, 66 locators, with the six remaining pairs being field values rather than anybody's words. Ten quotations had no locator when the file was first written, including two of the three Duo Bend modes and both halves of the voice-mode sentence, and the gate reported none of them. A gate's silence is not a pass, and the only way to know which quotations it looked at is to count them yourself.

AND THE TWO COUNTS RECONCILE EXACTLY, WHICH IS THE POINT OF TAKING BOTH. The gate checks 62 here - 59 against a page and 3 against a document with no pages - where this file has 66 locators. The four missing are two passages, each written once where it is used and once in this sentence: "5-octave" (manual p. 122) and the edition "3.1.0" (resources_page), both shorter than the twelve characters the gate requires, so it passes over them, and now says that it has. A figure that cannot be reconciled with a count made another way is a figure nobody can act on; these can.

ALSO NOT RECORDED: the note range, and the mode. No page states what the instrument answers to across the keyboard - the keyboard is "5-octave" (manual p. 122) with buttons that "shift keyboard range ± 2 octaves from center" (manual p. 122), which is a fact about the keyboard and not about what arrives - and with no implementation chart there is no omni or poly mode row to read.