Six tracks, looped.
A MIDI looper I first wrote in C++ and Qt for an audio programming class in 2016, rebuilt for the browser. Record a phrase and it becomes the loop, then play five more over it.
Ready. Press Record and play something; the first take sets the loop.
How it works
- Pick a track with its Record button and choose an instrument. Channel 10 is the drum channel, as in General MIDI.
- Press Record and play. The first take starts on your first note and becomes the loop when you press Play or Stop.
- Pick another track and press Record again to play over the loop. A new take replaces what was on that track; Undo brings it back.
- The Play boxes take tracks in and out of the mix, and Save MIDI exports the loop for GarageBand, Logic or anything else, each track on its own channel.
Keys
- A to '
- Notes, with the black keys on the row above
- Z X
- Octave down, up
- C V
- Softer, harder
- R
- Record
- Space
- Play or stop
- 1–6
- Pick a track to record on
- ⌘Z
- Undo
A MIDI keyboard works too in Chrome, Edge and Firefox, sustain pedal included.
Then and now
The first version was my final project for CS 312: Audio Programming at Carleton. It took notes from the lab's MIDI keyboard and sent them on to a General MIDI synth, and it only ever ran on the lab's Macs. This one keeps its six tracks and its dropdowns, program numbers and all, and adds what it never quite managed: it loops, you can hear yourself while you record, and Stop stops.
The original C++ is at the legacy-2016 tag. Instruments are the MusyngKite soundfont (CC BY-SA 3.0) from midi-js-soundfonts; the drum machines are public-domain samples from smpldsnds, played with smplr.