Action Midi Multitool Performer
This is the PCB version of the open ARP’n’MIDI Multitool project. It includes a built-in USB hub and extra switching hardware so that it can charge a phone, or be powered by a phone/device, automatically.
July 24, 2026 Status: Coming Fall 2026. Gen 1 boards work, technically, but with intolerable usb host hub instability. Plus, I want more buttons. Gen 2 PCBs coming Aug. Because of this, I won’t be sharing demo units from the first batch, BUT, you can try a demo unit of one of the other four horsemen of this multi-unit product launch action.
Upcoming Gen 2 adds:
– A MAX3421E chip, dedicated just to stable USB hosting.
– A TPS25751D chip to let it charge a phone and show up as a midi device at the same time. The chip I used for this in Rev 1 was not the right fella.
– 5 more buttons. 4 that are multifunction and mappable, but primarily for 4-track looping control. The fifth is just an old-fashioned Back button.
Finally I can show you what the glass cabochon lens will look like over the OLED display. This will be nestled in the enclosure.







: :
Finally all your usb midi stuff can talk through this smart router thing without a computer.
Effortless live arps and time-locked loops by waving your hand.
- Global arpeggio and beat repeat combo
- Touch and distance expression controllers
- Change loop length in real-time to record a longer loop over a repeating shorter one.
- Auto glissando makes samplers sound like analog synth
- Force-in-key & screens to show fretboard notes to play along
- Round-Robin mode gives polyphony to mono instruments
- Channel routing and CC control
Plus it boots nearly instantly!
Human Interfaces:
- DISPLAY :: Crisp standard 2-color 24mm OLED display behind a 30mm glass Cabochon semi-domed magnifying lens.
- KNOB :: Satisfying Bourns continuous detented rotary encoder for speed and precision.
- EXPRESSION :: Touch force pressure sensor with unique analog filter circuit to add a human feel to any midi parameter. Perfect for moody pitch bends!
- EYE :: Don’t hunt for a button or knob, just wave your hand over it. Unique laser time-of-flight distance sensor works like a theremin (that you can auto-transpose to scales!), or a hand-position midi controller. You can even use it to trigger the built-in midi looper or arpeggiator when it sees your hand.
- FOOT :: Wireless 4-button foot controller using low-power keyfob tech for multi-year battery life.
Device Interfaces:
- 6 USB-C PORTS :: 4 host ports so midi controllers can talk without needing a computer! A device port to appear as a midi controller to a computer/phone, plus an optional power-in port.
- TRS MIDI A in and out ports :: One of two separate processor chips are dedicated to managing the TRS and USB Device ports, while the main brain handles the USB Host ports and human interfaces.
A breakdown of the settings menus is the best way to explain all the features and how to use this magic fella:
– Range: `20..300`.
– Sets arp tempo directly.
– Top screen: large BPM number.
– Options:
– `OFF`
– `UP`
– `DOWN`
– `UP-DOWN 1`
– `UP-DOWN 2`
– `TRIGGER`
– `RANDOM`
– `UP 1-OCT`
– `RHYTHM`
– `OSTINATO`
– `OCT WALK`
– `FIFTH`
– `BASS+CHORD`
– `CHORD+RUN`
– Top screen: mode symbol for classic modes, pattern preview for pattern modes.
– Options: `1/1`, `1/2`, `1/2T`, `1/4`, `1/4T`, `1/8`, `1/8T`, `1/16`, `1/16T`, `1/32`, `1/32T`, `1/64`.
– Changing this gives you different trap high-hat rolls, among other tricks.
– Top screen: pie visualization + division text.
– Range: `1..127`.
– Applies to arp note output velocity.
– `VEL DOWN` sensor/push mode can reduce this live while in range.
– Top screen: bar + numeric value.
– Range: `1..100` percent of step duration.
– Applies to arp gate length.
– `LEN DOWN` sensor/push mode can reduce this live while in range.
– Top screen: bar + percent.
– Options: `CH 1..CH 16`.
– Main processing input channel for arp/thru/bass and mapped CC/PB/program routing.
– Options:
– `OFF`
– `CH 1..CH 16`
– `1+10`
– `1+10-A`
– `1-10 24`
– `1-10 36`
– `1-10 48`
– `1+10`: main arp on ch1 path plus drum-chord arp lane on ch10.
– `1+10-A`: same as `1+10`, plus ch10 channel aftertouch controls new ch10 drum-lane arp pulse velocity (33% minimum, `42..127`).
– `1-10 24/36/48`: same as `1+10`, plus 8-note split from input channel to ch10 drum lane:
– `1-10 24`: input notes `24..31` remap to ch10 `36..43`
– `1-10 36`: input notes `36..43` remap to ch10 `36..43`
– `1-10 48`: input notes `48..55` remap to ch10 `36..43`
– Drum lane velocity is forced to max (`127`) for `1+10` and `1-10 24/36/48`.
– The ch10 drum lane still pulses like an arp lane even when `ARP MODE` is `OFF`.
– Options: `OFF`, then channel groups for `CH1..CH12`.
– Per channel, octave offsets are: `-2`, `-1`, `0`, `+1` oct.
– Behavior: lowest-note-priority mono bass voice.
– If bass channel equals arp channel, bass output is suppressed.
– Options: `OFF`, `CH 1..CH 16`.
– Thru path for notes from input channel.
– If thru channel equals bass channel while bass is enabled, thru is suppressed for that channel.
Multiple monophonic synths can be used polyphonically, or use each channel for unexpected note timbres.
– Checkbox list for output channels `CH 1..CH 16`, `[ ]CH10-1+`, `[ ]CH10-2+`, plus `CLEAR` and `BACK`.
– Click a channel while editing to toggle its checkmark.
– Checked channels are used as the round-robin rotation for the arp output channel path.
– `[ ]CH10-1+` maps final routed ch10 notes 36..51 into full-velocity note 60 on channels 1..16 after ch10 arp routing is complete.
– `[ ]CH10-2+` maps final routed ch10 notes 36..49 into channels 2..15 (note 12 on CH2, note 48 on CH3, note 60 on others).
– In select mode, the top screen shows the checked channel list in small text.
– If no channels are checked, round-robin is off.
– Checking either `CH10-1+` or `CH10-2+` unchecks the other.
– List entries are formatted like `16>16+12` or `01>02=00`.
– Select an input channel row, choose its output channel, then choose note transpose in semitones.
– Transpose affects note and poly-aftertouch note numbers; other channel messages only change channel.
– `CLEAR` restores every channel to its default `CH n > CH n =00` mapping.
– When all mappings are default, the runtime router is bypassed with only a single active-mask check.
– Cursor options:
– Division slots: `1/4`, `1/4T`, `1/8`, `1/8T`, `1/16`, `1/16T`, `1/32`, `1/32T`, `1/64`
– `+NOTE`
– `RESET`
– `BACK`
– In edit mode:
– On a division slot, play a note (any channel) to map that note+channel to the division.
– When mapped note is held, arp temporarily switches to that division.
– If `+NOTE` is blank, mapped trigger note is swallowed.
– If `+NOTE` has a note value, mapped trigger note is replaced by `+NOTE` and then processed normally.
– `RESET` clears all division-note mappings and `+NOTE` when you exit edit mode on `RESET`.
– `BACK` exits edit mode without clearing mappings.
– Cursor options:
– Param slots: `BPM`, `ARP`, `DIV`, `VEL`, `LEN`, `IN`, `ACH`, `BCH`, `TCH`, `INCC`, `EYCH`, `EYMD`, `PSMD`, `KEY`, `SCL`, `LOOP`, `LOAD`
– `CLEAR`
– `CH:SET` / `CH:ALL`
– In edit mode on a param slot, send a CC to learn that CC number and channel for that slot.
– `EYMD` / `PSMD` changes the Eye mode and Push mode. Mapping excludes `CC 1..CC 19`, `CC103`, and Loop options.
– `CLEAR` clears all MAP CC assignments when you exit edit mode on `CLEAR`.
– `CH:SET`/`CH:ALL` toggles when you exit edit mode on that row:
– `CH:SET`: mapped CC must match both learned CC and learned channel.
– `CH:ALL`: mapped CC number works from any incoming channel.
– `LOAD` map target switches and loads preset immediately.
– `LOOP` map target changes loop length across `1 BAR`, `2 BAR`, `4 BAR`, `8 BAR`; mapped CC does not select `FREE`.
– Parameter changes from MAP CC are live and persist to the current preset (same autosave behavior as normal edits).
– MAP CC assignments are stored per preset and restore on boot/load with that preset.
– For stepped parameters, incoming CC is thresholded to target steps to avoid jitter.
– Display jumps to the changed parameter screen after movement settles, to avoid over-refreshing while CC is moving quickly.
– Options: `CH 1..CH 16`, `ALL3`.
– Routes your knobs. Destination for input-channel `CC`, `Pitch Bend`, `Program Change`, and `Channel Aftertouch`.
– `ALL3` fans these messages to arp/thru/bass channel outputs (de-duplicated).
With this feature, a sampler can simulate the keyboard response of an analog synth.
– Options: `OFF`, `CH 1..CH 16`.
– Applies to note messages on the selected non-`INPUT CH` lane.
– Behavior: monophonic last-note priority with explicit handoff:
– newest pressed note becomes active output
– releasing that note re-activates the previous still-held note
– when no held notes remain, output note is released
– Options: `CH 1..CH 16`.
– Output channel used by foot pedal remote actions.
– Action sent when pedal 1 goes low.
– Value mapping:
– `0..127` => note number pulse
– `128..254` => CC `1..127` pulse
– Pulse length uses project pedal pulse timing.
– Same action model as `REMOTE 1`, for pedal 2.
– Options: `OFF`, `IN ONLY`, `IN/OUT`.
– `IN/OUT` enables USB host TX fanout as well as input.
– Options: `OFF`, `AUTO`, `NOW`.
– `AUTO`: enters after idle timeout.
– `NOW`: immediate manual activation (not persisted as always-on).
– Redraws procedurally and refreshes on interval.
– Options: `CH 1..CH 16`.
– Shared output channel for both `EYE MODE` and `PUSH` generated notes/cc/pitch/loop messages.
– Modes:
– `OFF`
– `DIV +2`, `DIV -2`, `DIV +3`, `DIV -3`, `DIV FULL`, `DIV3`
– `VEL DOWN`, `LEN DOWN`
– `ARP LATCH`, `ARP LATCH+`
– `ARP FREEZE`, `ARP FREEZ+`
– `PITCH UP`, `PITCH DOWN`
– `NOTES C0..NOTES C7` (2-oct note ranges)
– `CC 1..CC 19`
– `CC103`
– `Loop Rec/ Play/Over`
– `Loop Stop/ Delete`
– `DIV3` profile: far zone most-slowing, middle less-slowing, close small zone speed-up.
– `ARP LATCH`: latch arp notes; wave over sensor to clear latch phrase.
– `ARP LATCH+`: latch arp plus thru/bass behavior.
– `ARP FREEZE`: wave over sensor to lock notes into frozen arp set.
– `ARP FREEZ+`: freeze mode with thru path freeze support as well.
– `NOTES Cx`: quantized note output with edge padding and range trims.
– `CC103`: sends a CC 103 pulse.
– `Loop Rec/ Play/Over`: if no loop exists, arms loop recording; recording starts on the first note played after the trigger. If a loop exists and is stopped, it starts playback immediately. If a loop is already playing, it toggles overdub on/off. Holding this trigger for more than 2 seconds cancels and deletes the loop.
– `Loop Stop/ Delete`: first trigger stops loop recording/playback; the next distinct trigger deletes the stored loop.
– Same mode list and behavior family as `EYE MODE`.
– Uses calibrated thresholds and curved response so light press is less aggressive.
– Shares channel with `EYE/PUSH` setting.
– Options: `1 BAR`, `2 BAR`, `4 BAR`, `8 BAR`, `FREE`.
– Sets the note-only loop length used by `Loop Rec/ Play/Over`.
– Change the length in real time to record a longer loop over a repeating shorter one.
– Fixed bar loops start playback automatically after the selected length is recorded.
– `FREE` records until `Loop Stop/ Delete` stops it.
– While editing this screen, pressing the push sensor toggles `Auto Overdub` on/off.
– Loop status icon in the upper-right: open circle = armed/recording/overdub, open play triangle = playing, pause bars = loop saved and stopped.
(WARNING while on key/guitar screens like this, rapid incoming notes will slow the arp due to refreshing the display)
– Options:
– `OFF`
– standard key roots: `C..B` (an off-key note will trigger the next on-key one above it)
– alternate white-key mapper roots: `CKEY C..CKEY B` (these map the white keys to each scale note instead)
– `OFF`, `MAJOR`, `MINOR`, `MAJ+MIN`, `BLUES`, `MAJ BLUES`, `BLUES+BOTH`, `HARM MIN`, `MEL MIN`
– In `CKEY` mode, combo scales are skipped (`MAJ+MIN`, `BLUES+BOTH`).
– Options: `GUITAR`, `PIANO`.
– Chooses visualization style for key/scale pages.
– Saved in preset and restored on boot/load.
– LIVE NOTES DISPLAY in real-time so you can see where to play along.
– Select preset slot `1..16` in edit mode.
– Preset is actually loaded when you click back to select mode.
– Grid view shows slot location.
– NOTE all changed settings will AUTO SAVE to the slot you last loaded from.
– Select destination slot `1..16` in edit mode.
– Slot is written when you click back to select mode.
– Grid view shows slot location.
– The next changed settings will AUTO SAVE to this slot.
**WARNING if you stay on this screen, rapid incoming notes will slow the arp due to refreshing the display**
– device counts
– queue depth and drop counters
– overload risk flag
– last incoming channel/note and on/off state
– RX age timing












