All your MIDI gear,
in your hands.
Drum machines, grooveboxes, synths, your DAW. Plug the MIDI gear on your stage into MIDoRI and you control the tempo, the routing and the knobs from one touch screen in your hands. No bulky computer setup required.
Runs on off-the-shelf boards like the M5Stack Tab5 and CoreS3. Install from your browser.See MIDoRI in action
What MIDoRI can do
From setting up at soundcheck to the turns in your set.
All your gear, in one place
Connect up to 9 pieces of MIDI gear at once on the M5Stack Tab5.
- USB MIDI gear (through a USB hub)4
- Computer or USB-host gear (Ableton Push 3 standalone, MPC Live…)1
- TRS / DIN (SAM2695 unit)1 port
- Bluetooth (1 iPad / Mac + 2 BLE-MIDI devices)3
Up to 8 on the M5Stack CoreS3 (with USB set for gear; 5 with USB set for a computer or USB-host gear).
Sync your MIDI gear, your way
MIDoRI is the clock master: tempo, start and stop line up across the rig, with tap tempo. Or let your Push or groovebox lead and pass its clock on.
Channels remapped to suit your gear
Leave the keyboard on channel 1 and send it to the synth on 2 and the drum machine on 10. With the channel map filter (Ch Map) in the route, you never touch a receive channel on your gear.
Richer playing with MIDI filters
Chain MIDI filters such as chord, arpeggiator and channel mapping into a route, in any order. Put the chord before the arpeggiator and a single held note flows out as a broken chord. Change their settings on the screen as you play; take them out and you're back.
Play freely with the built-in sequencer
A 16-line sequencer plays all the MIDI gear you connect. Switch patterns while it plays, or record a phrase from your keyboard on the spot and layer it in.
Scattered knobs, on one screen
Cutoff on one synth, reverb on another unit: control them from knobs, pads and an XY pad on a single screen.
Pick your MIDI devices, choose the route
The MIDI Devices screen is a grid: gear that sends MIDI down the side, gear that receives it across the top. The cell where they cross is the path between those two.
- Tap
- connect or disconnect. A new connection passes every channel.
- Long-press
- choose what passes: channels (1–16, several at once), clock and filters.
- Forward by channel Only the channels you pick, out of 1–16, go through: the keyboard's channel 1 to the synth, channel 10 to the drum machine. One cell can carry several channels.
- Forward clock only No notes: just tempo, start, stop and song position. Can be combined with channels.
- Apply filters On the Filters tab of the long-press menu, chain chords, an arpeggiator, channel mapping and more in the order you pick, and adjust them live.
- Low latency Routes without filters are forwarded inside MIDoRI directly, without going through a script.
| Synth | Drums | AMY | DAW | |
|---|---|---|---|---|
| Keys | ch1 | ch10 | ● | |
| DAW | ● | |||
| iPad | ● | |||
| Tempo | clk | clk |
Play your set from the built-in sequencer
MIDoRI has a sequencer built in that plays all the MIDI gear you connect. Build the flow of your set on stage, without bringing a laptop running a DAW.
Each line to its own MIDI gear
Up to 16 lines, each with its own output channel. Decide where each channel goes on the MIDI Devices screen, and one sequencer plays your drum machine, bass machine, synths and the built-in AMY together.
- 1 Kickch10Drum machine (DIN)
- 2 Bassch2Bass machine (USB)
- 3 Leadch1Synth (Bluetooth)
- 4 Padch3AMY (Tab5 speaker)
- Many lines, one machine Lines can share a channel, so kick, snare and hats can each have a line and still go to one drum machine.
- Length and rate per line Step count (4–64) and step length (triplets included) are set per line: put triplet hats over a sixteenth-note bass line, for example.
- In step with your gear's sequencers The sequencer runs on the Tempo clock. Send the same clock to your gear and MIDoRI's sequencer and theirs run at one tempo.
The Sequencer screen (Tab5): pattern 1 playing, pattern 2 queued to come next and blinking.
Play and touch it
The MIDoRI screen itself is an instrument and a control surface.
Keys
On-screen keys that play any of your gear, and light up with notes from an external keyboard or your DAW.
Knobs & Pads
Turn a synth's cutoff and resonance with your finger and fire one-shots from pads (bundled layouts).
XY Pad
Slide a finger to move pitch and an effect at once. Up to 5 fingers, each doing something different.
Tombola
Balls bounce inside a spinning polygon and play a note each time they hit a wall: a sequencer that leaves it to chance.
Support for many connection standards
MIDI ins and outs of every kind, on one board.
USB MIDI gear
Keyboards, synths and controllers, directly. Up to 4 through a USB hub.
Computer / USB-host gear
Shows up as a USB MIDI device to your DAW, and to gear that acts as a USB host, like Ableton Push 3 standalone or MPC Live.
3.5 mm gear
From the TRS jack of a SAM2695 unit, for compact synths and grooveboxes.
5-pin DIN gear
From the DIN jack of a SAM2695 unit, for classic MIDI gear as is.
BLE-MIDI
Visible to an iPad or Mac, and connects out to BLE-MIDI keyboards and adapters.
Tested USB MIDI gear
Most other class-compliant USB MIDI devices work as well. Any DIN gear works.
Boards
Both are off-the-shelf M5Stack boards, and everything works from their screens.
| M5Stack Tab5 ESP32-P4 | M5Stack CoreS3 / CoreS3 SE ESP32-S3 | |
|---|---|---|
| Screen | 5" 1280×720 | 2" 320×240 |
| USB-MIDI | ✓Gear on USB-A, computer on USB-C, both at once | ✓Gear or a computer (chosen when you install) |
| BLE-MIDI | ✓Visible to iPad / Mac, connects out to BLE-MIDI gear | ✓Visible to iPad / Mac, connects out to BLE-MIDI gear |
| TRS-MIDI | ✓SAM2695 unit on Port A (TRS jack) | ✓SAM2695 unit on Port C (TRS jack) |
| MIDI-DIN | ✓SAM2695 unit on Port A (DIN jack) | ✓SAM2695 unit on Port C (DIN jack) |
| Built-in AMY synth | ✓Through the speaker or headphones | — |
| SAM2695 GM module | ✓SAM2695 unit on Port A | ✓SAM2695 unit on Port C |
TRS-MIDI and MIDI-DIN go through the jacks of a SAM2695 unit on Port A (Tab5) / Port C (CoreS3). The same unit also plays General MIDI sounds.
Customize MIDoRI your way
Everything works from the screen, but drop a small file written in Ruby into the plugins folder on the SD card and you add screens and features. They load at every start and show up in the normal screens. Not a programmer? Copy in a plugin someone else wrote.
Lay out the screen your way
Arrange parts on a grid to build a control screen just for your set.
- Any part, any size Pads, knobs, an XY pad, keys, Tempo, envelopes and the sequencer, placed where you want them.
- On the Home screen Your screens become Home tiles. Make one per song and switch with a pad or a Program Change.
- Across your gear One screen can send CC and notes to as much gear as you like.
syn = MIDI::Device.new(MIDIDevices.usb_midi_host("J-6"))
drm = MIDI::Device.new(MIDIDevices.sam2695)
UI.layout("Live", cols: 4, rows: [2, 1]) do
knob col: 0..1, row: 0, label: "Cutoff" do |v|
syn.control_change(74, v.to_i)
end
knob col: 2..3, row: 0, label: "Reverb" do |v|
drm.control_change(91, v.to_i, channel: 9)
end
[["Kick", 36], ["Snare", 38], ["HH", 42], ["Clap", 39]].each_with_index do |(name, note), i|
pad col: i, row: 1, label: name do
drm.trigger(note, 120, channel: 9)
end
end
end
Write your own filters
A filter that rewrites MIDI on its way through is a single class.
- Usable from the screen Once registered it appears in the long-press menu (Filters) on the MIDI Devices screen.
- Settings on screen Values declared with
paramcan be adjusted on the screen, live. - Chains with the rest Chain it with the bundled chord and arpeggio filters in any order, with separate settings per route.
class FixedVelocity < MIDI::Filter
label "Velocity"
types :note_on
param :value, :int, range: 1..127, default: 100, label: "Vel"
def call(m)
m.velocity = params[:value] # same strength every time
m
end
end
MIDI.register_filter(:velocity, FixedVelocity.new)
Scripts can also drive your gear through a song's structure, and irb lets you try things a line at a time. Start from the examples and the documentation.
Get started
With a board and a cable, you can be playing in about ten minutes.
1. Install
Open the install page in Chrome or Edge on a computer, pick your board, press the button.
2. Connect
Plug in your gear and tap where it should go on the MIDI Devices screen.
3. Play
Play the keyboard and you hear it. Press play on Tempo and the clock goes out too.