LoopMidi is a Qt/QML MIDI loop sequencer. It records up to four 16-step MIDI tracks from any MIDI keyboard (e.g. Arturia MiniLab 3) and plays them back together as a continuous loop through a virtual MIDI port that any DAW or synthesizer (e.g. Surge-XT) can subscribe to.
| Feature | Details |
|---|---|
| 4-track recorder | Pick an active record target and edit its 16-step sequence |
| Layered playback | All tracks play together from the same transport |
| Record modes | Record every beat in sequence or overdub only the currently playing beat |
| Virtual MIDI output | Exposes "LoopMidi Output" — connect Surge-XT or any app to it |
| Passthrough | Notes from your keyboard are forwarded live to the virtual port while playing/idle |
| Adjustable BPM | 40 – 240 BPM slider for playback speed |
| Project files | Save/load named .loopmidi projects with BPM and all track data |
| MIDI Learn | Bind transport buttons to any CC knob or pad from each button's right-click menu |
| Keyboard shortcuts | R record, Space play/stop, C clear, Esc stop all |
| Beautiful dark UI | Step grid with velocity bars, live note visualizer, animated indicators |
# Run directly
nix run github:yourusername/loopmidi
# Or build
nix build github:yourusername/loopmidi
./result/bin/loopmidinix develop
cmake -B build -DAPP_VERSION=0.3.0
cmake --build build -j$(nproc)
./build/loopmidi- Start LoopMidi — a virtual port named
LoopMidi Outputappears. - Select input port — choose
Arturia MiniLab 3in the left sidebar. - Open Surge-XT → MIDI settings → subscribe to
LoopMidi Output. - Enable Passthrough (on by default) so live notes go straight to Surge-XT.
- Choose the active track and record mode, press Record (or
R), and play notes on the MiniLab.
Recording stops automatically; playback begins immediately. - Surge-XT will receive the looping notes and play them back.
- Right-click a learnable transport button and choose
MIDI Learn. - Move a knob or press a pad on the MiniLab 3.
- The CC or note is captured. That control now triggers the action.
Arturia MiniLab 3
│ (RtMidi input)
▼
MidiEngine (C++)
│ passthrough / sequencer
▼
LoopMidi Output ◄── virtual ALSA MIDI port
│
▼
Surge-XT (or any DAW)
Requirements: Qt 6, rtmidi, ALSA (Linux), CMake ≥ 3.20.
cmake -B build -DAPP_VERSION=0.3.0
cmake --build build -j$(nproc)MIT © 2024 — see LICENSE.