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.
Expressive E Osmose MIDI implementation
The MIDI implementation of the Expressive E Osmose: what it answers to, and the 17 controls it offers, on firmware 2.3.
At a glance
- Firmware
- This page describes firmware 2.3.
- MIDI channel
- 1 to 14.
- MPE
- Sent and received: its voices are spread across its MIDI channels, a note to each.
- Voices
- 24.
- Note range
- Not recorded.
- Velocity
- Sent, and ignored when received. Release velocity is ignored.
- Aftertouch
- Channel pressure, which over MPE is a value for each note. It sends aftertouch too.
- Pitch bend
- How far it bends is not recorded, and the range can be changed.
- Program change
- Received, with 609 presets.
- MIDI clock
- Received.
- Start and stop
- Received.
- Control change
- 17 controls, in the tables below.
- NRPN
- None.
- System exclusive
- None.
Controls
In the order the definition gives them, by group. Under each control is the name a program calls it by, once pymidiinstrumentdefs.load("expressive_e/osmose") has loaded them.
Program
| Control | CC | Values |
|---|---|---|
Bank Select (MSB)bank_select |
0 | 0-127 Received, never sent |
Macros
| Control | CC | Values |
|---|---|---|
Macro 1macro_1 |
12 | 0-127 |
Macro 2macro_2 |
13 | 0-127 |
Macro 3macro_3 |
14 | 0-127 |
Macro 4macro_4 |
15 | 0-127 |
Macro 5macro_5 |
16 | 0-127 |
Macro 6macro_6 |
17 | 0-127 |
Global fx
| Control | CC | Values |
|---|---|---|
Global FX Parameter 1global_fx_parameter_1 |
20 | 0-127 |
Global FX Parameter 2global_fx_parameter_2 |
21 | 0-127 |
Global FX Parameter 3global_fx_parameter_3 |
22 | 0-127 |
Global FX Parameter 4global_fx_parameter_4 |
23 | 0-127 |
Global FX Mixglobal_fx_mix |
24 | 0-127 |
Comp & drive
| Control | CC | Values |
|---|---|---|
Pre Gainpre_gain |
26 | 0-127 |
Post Gainpost_gain |
18 | 0-127 |
Compressor Mixcompressor_mix |
93 | 0-127 |
Mod/pedal
| Control | CC | Values |
|---|---|---|
Modulation Wheel / Pedal 2mod_wheel_pedal_2 |
1 | 0-127 |
Pedal 1pedal_1 |
64 | 0-127 |
Where these facts come from
Source documents
- osmose - user manual, rev. 2.3, for osmose 49/61 synth, firmware 2.3, dated 24 September 2026, its user manual, read on 2 October 2026 (the file read).
- MIDI Implementation Chart v.2.0, 2.3.x rev. A, dated July 2026, its MIDI implementation, read on 2 October 2026 (the file read).
- Osmose sound engine MIDI Implementation Chart - Help Center, dated 24 September 2026, one of its maker's support articles, read on 2 October 2026.
- Triggering Osmose's sound engine (the EaganMatrix) from an external device - Help Center, one of its maker's support articles, read on 2 October 2026.
- Changing Osmose's sound presets from an external device with Bank Select and Program Change messages - Help Center, one of its maker's support articles, read on 2 October 2026.
- Expressive MPE Polyphonic Synthesizer, its product page, read on 2 October 2026.
How they were read
MIDI implementation chart v2.3.x rev. A (3pp), and the user manual rev. 2.3 (92pp), pp. 10, 14-15, 29-36, 45, 87-88 and 92, with three pages of the maker's own online manual for the Advanced Users material the printed manual does not carry. The chart is where every control number below comes from; the manual is where the groups, the descriptions and the behaviour come from.
THE MANUAL CARRIES NO CHART AND SAYS SO, which is why there are two documents: "For advanced use cases like establishing a connection with the Haken Editor, triggering Osmose's sound engine from an external source, switching sounds with Program Change messages, and remote-controlling parameters with MIDI CC messages, please refer to our online knowledge base" (p. 92). The words "master channel", "member channel", "program change" and "bend range" appear nowhere in its 92 pages, and it states the sound engine's polyphony nowhere.
THE CHART DESCRIBES ONE OF FIVE PORTS, and nothing in the definition holds beyond it: "All information refers to USB MIDI Port 2, the 'sound engine' mode" (chart_article). Port 1 sends what the player configures in External MIDI Mode, port 3 is a DIN interface, port 4 carries DAW control, and port 5 is the Haken Editor's (p. 15).
EVERY ROW OF THE CHART IS ACCOUNTED FOR. It prints 126 rows, which is 0-126 without 63, and 34 of them name a function. 17 are controls here. The other 17 are excluded and each for a stated reason: 7 channel mode messages, CC 120-126, which a control list may not carry; 4 rows that name the NRPN and RPN number controllers, CC 98-101, all four marked as answering to nothing; 2 data entry rows, CC 6 and 38, the same; CC 74, which is aftertouch and is recorded under voice rather than as a parameter; CC 87, which carries the low 7 bits of a pressure value rather than a parameter anybody sets; and CC 83 and 84, which the chart marks as neither sent nor received - see the comment on the eq. The remaining 92 rows name no function and are marked No in both directions, so the numbers missing below are checked absences and not unread rows.
THE CHART PRINTS NO ROW AT ALL FOR CC 63 OR CC 127, which was established from the page's geometry rather than from the order its text layer draws: pages 2 and 3 each draw an unbroken ladder of 63 rows at a uniform spacing, 0-62 and 64-126, with no gap where a dropped row would show and no number drawn twice. Both extractions agreed. CC 127 would have been Poly Mode On, so the chart's channel mode block stops one row short.
NOT RECORDED:
- the note range, which neither document gives for either keybed;
- the pitch bend range in semitones, which is a per-preset setting the manual describes without a number;
- and whether anything answers on the DIN input beyond what the din mode routes.