Usine provides a comprehensive set of MIDI processing modules for generating, filtering, transforming, routing, recording, and analyzing MIDI messages. Several modules are script-based and can be customized.
| Category | Modules | Description |
|---|---|---|
| Generators | 5 | Create MIDI messages from scratch, random notes, step sequencers, and MSC (MIDI Show Control) |
| Filters & Splitting | 4 | Filter by type/channel, multi-filter, and split by note range |
| Transform | 5 | Pitch/gain/length transformation, arpeggiator, auto harmony, swing, and transpose |
| Mix & Routing | 5 | Mixer, selector, dispatch, matrix, and max-polyphony mixer |
| Voice Management | 4 | Expand to voices, make monophonic, set max polyphony, and dispatcher by note |
| Recording & Playback | 2 | Piano roll recorder/player and MIDI accumulator (loop delay) |
| Message Handling | 4 | Unpack messages, get message info, delay, and SysEx editor |
| Conversion | 2 | MIDI to array and MSC decoder |
Create MIDI messages, random notes, step-sequenced patterns, and MIDI Show Control messages.
| Module | Description |
|---|---|
| MIDI Generator Create | Create MIDI messages from scratch (notes, CC, etc.) with channel, type, and data values |
| MIDI Generator Random | Generate random MIDI messages of any type in a configurable range |
| MIDI Generator Random NOTE ON | Generate random MIDI NOTE ON messages within a note range |
| MIDI Generator Sequenced Step | Step sequencer generating MIDI NOTE ON from drawn bar values |
| MIDI Generator MSC | Create MIDI Show Control (MSC) sysex messages with device ID, command format, and parameters |
Filter MIDI by message type, channel, or data range, and split by note boundaries.
| Module | Description |
|---|---|
| MIDI Filter | Let pass or reject MIDI messages by type and channel, with pass/reject outputs |
| MIDI Filter Multi | Filter multiple MIDI messages simultaneously, extract values as arrays |
| MIDI Split | Split MIDI by data1 values (note numbers) into multiple outputs at configurable split points |
| MIDI Decoder MSC | Decode MIDI Show Control from sysex flow |
Modify pitch, velocity, duration, scale, swing, and create arpeggios or harmonies.
| Module | Description |
|---|---|
| MIDI Transformer | Adjust pitch, gain, length, and scale of MIDI notes with harmony scales and user-defined scales |
| MIDI Arpeggiator | Transform a MIDI note into an arpeggio with transposition (script) |
| MIDI Auto Harmony | Transform monophonic MIDI into polyphonic harmony with selectable scales (script) |
| MIDI Swing | Apply swing timing to a MIDI flow |
| MIDI Transpose Example | Simple MIDI transpose script example |
Combine, select, and route MIDI flows between multiple inputs and outputs.
| Module | Description |
|---|---|
| MIDI Mix Selector | N-input, 1-output MIDI selector |
| MIDI Mix Dispatch | 1-input, N-output MIDI dispatcher by selector index |
| MIDI Mix Matrix | N-input, M-output MIDI routing matrix |
| MIDI Mix with Max Polyphony | Mix two MIDI flows with max polyphony limit (script) |
| MIDI Dispatcher | Route NOTE ON messages to outputs by note number (script) |
Control polyphony: expand to multiple voices, enforce monophonic mode, and limit voice count.
| Module | Description |
|---|---|
| MIDI Expand Voices | Redirect MIDI notes to N mono outputs in round-robin, from-first, random, or no-repeat order (script) |
| MIDI Make Monophonic | Force monophonic by sending NOTE OFF before each new NOTE ON (script) |
| MIDI Set Polyphony Max | Limit maximum polyphony, dropping excess notes (script) |
| MIDI to Array | Convert NOTE ON/OFF and CC to a 128-element array [0..1] (script) |
Record and play back MIDI performances with piano-roll editing.
| Module | Description |
|---|---|
| MIDI Piano Roll | Full MIDI recorder/player with piano-roll visualization, CC editing, quantization, up to 32 files |
| MIDI Accumulator | Accumulate MIDI messages into a looping buffer (endless MIDI delay, script) |
Unpack, inspect, delay, and edit raw MIDI messages and SysEx data.
| Module | Description |
|---|---|
| MIDI Unpack | Split MIDI flow to one message per block, unpack channel/type/data into separate outputs |
| MIDI Get Message | Retrieve and unpack MIDI message details (channel, type, data values) |
| MIDI Delay | Delay a MIDI flow by configurable time |
| MIDI SysEx Editor | Create and edit MIDI System Exclusive messages with visual editor |
version 7.0.250121
Edit All Pages