A hardware MIDI recorder and looper for musicians. No technical knowledge required.
The EchoBox MIDI Looper records your MIDI performances in real time and plays them back as seamless loops — all with four physical buttons, no computer required.
| Feature | Detail |
|---|---|
| Recording | Starts automatically when you play MIDI notes |
| Storage | SD card with date/time stamped filenames |
| Loops | Seamless infinite loops with less than 2ms gap |
| Upload | Load .mid files via WiFi |
| Display | OLED shows state, channel, and playback progress |
The device timestamps every recording. Set the clock once on first use via WiFi mode (see WiFi File Management for full details):
Note: The clock is battery-backed (CR2032 on the RTC module) and keeps time when the device is powered off.
The device has 4 buttons, from left to right:
┌────────┬────────┬────────┬────────┐
│ A │ B │ C │ D │
│ LOOP │ PREV │ PLAY │ NEXT │
└────────┴────────┴────────┴────────┘
| Button | While Idle | While Browsing | While Playing | While Recording |
|---|---|---|---|---|
| A — LOOP | Cycle loop mode | Cycle loop mode | Stop playback | No effect |
| B — PREV | No effect | Go back (−1, −2...) | ⏮ Rewind 1s | No effect |
| C — PLAY | Enter browse mode | Play selected track | Stop playback | End recording now |
| D — NEXT | No effect | Go forward | ⏭ Skip forward 1s | No effect |
Cycles the loop mode. The LED on button A shows the current setting:
| LED Colour | Mode | Behaviour |
|---|---|---|
| 🔴 Red | OFF | Record only — no automatic playback |
| 🟡 Yellow | ONCE | Play once after recording, then stop |
| 🟢 Green | INFINITE | Loop continuously until you stop it |
Tip: The loop is seamless — there is less than 2ms of silence between iterations.
| Track Number | Meaning |
|---|---|
| −1, −2, −3... | Your recordings, newest first |
| +1, +2, +3... | Uploaded MIDI files |
While a track is playing you can jump to any position:
| Press | Action |
|---|---|
| B once | Jump back 1 second |
| B three times | Jump back 3 seconds |
| D once | Jump forward 1 second |
| D three times | Jump forward 3 seconds |
Any stuck notes are silenced automatically each time you seek. To stop playback entirely, press A or C.
Press A (LOOP) or C (PLAY) — all MIDI notes are silenced immediately.
Note: B and D seek through the track rather than stopping it.
Press A (LOOP) to cycle through the three modes:
| Mode | Behaviour | |
|---|---|---|
| 🔴 RED — Loop OFF | Record only | Saves the recording but does not play it back. Good for capturing performances you'll browse and play later. |
| 🟡 YELLOW — Loop ONCE | Play once | Plays the recording once after capture, then returns to idle. Good for quickly previewing what you just played. |
| 🟢 GREEN — Loop INFINITE | Loop forever | Loops continuously until you press A or C. Perfect for live performance. Each loop is seamless (less than 2ms gap). |
PLAY L:INF
CH:05 42%
SD:1000HRS
| Line | Meaning |
|---|---|
| Line 1 | Current state (PLAY) and loop mode (L:INF = infinite) |
| Line 2 | MIDI channel (CH:05) and playback progress (42%) |
| Line 3 | SD card free space shown as estimated recording hours |
WAIT L:INF
CH:05 #0000
REC:-3
Line 3 shows your current position: REC:-3 = 3rd-most-recent recording, UPL:+2 = uploaded file #2.
After 30 seconds of no activity the display and LEDs turn off to protect the screen.
MIDI recording continues normally during screen saver mode. Any button press or incoming MIDI note wakes the device instantly.
| Colour | Mode |
|---|---|
| 🔴 Red | Loop OFF — record only |
| 🟡 Yellow | Loop ONCE — play once |
| 🟢 Green | Loop INFINITE — loop forever |
| Colour | When |
|---|---|
| 🔴 All four LEDs red | Recording in progress |
| 🟢 Button C green | Playback active |
| 🟡 Button C yellow | Browsing recordings |
| 🔵 All LEDs blue | Browsing uploaded files |
| 🔵 Cyan | WiFi mode active |
| ⚫ All off | Screen saver active |
Use WiFi mode to set the clock, upload MIDI files, or manage your recordings.
Join wifi / pw=midi1234 / 192.168.4.1| Action | Notes |
|---|---|
| Set device time | Required on first use and after replacing the backup battery |
| Upload MIDI files | .mid format — choose which MIDI channel to use |
| Upload native files | .txt format — direct upload, no conversion needed |
| Download recordings | As native .txt or converted to standard .mid |
| Delete recordings | Individual files or bulk delete |
| View all files | Listed with timestamps |
Uploaded files appear as positive track numbers (+1, +2, +3...). Browse past 0 with D (NEXT) to reach them. Blue LEDs indicate you are on an uploaded file. Play them exactly like your own recordings.
Press any button on the device — it reboots to normal mode.
Press C (PLAY) during recording to end it at exactly the right moment, rather than waiting for the 5-second silence timeout.
Upload your backing tracks as .mid files via WiFi. They appear as +1, +2, +3... Browse to them during a performance with D (NEXT) and press C (PLAY) to start.
Use seek to navigate without listening all the way through. Press D several times to skip forward quickly, B to go back. Each press moves 1 second.
Record a rhythm loop on GREEN mode. While it plays, press C to stop, then record a second loop that plays along. Both are saved separately — reload either one later via browse mode.
.mid)Recordings are named automatically with a sequence number, date, time, and MIDI channel:
Example: midi_00042_20260201_143022_CH05.txt
| Part | Example | Meaning |
|---|---|---|
00042 |
42nd recording | Sequence number |
20260201 |
2026-02-01 | Date (YYYYMMDD) |
143022 |
14:30:22 | Time (HHMMSS) |
CH05 |
Channel 5 | Last MIDI channel used |
Files are stored on the SD card and can be copied to a computer at any time.
| ✅ | Recordings save to SD card automatically — nothing is lost if you power off |
| ✅ | Clock is battery-backed — timestamps survive power cycles |
| ✅ | No stuck MIDI notes — all notes are silenced when you stop or seek |
| ✅ | SD card is removable — plug it into your computer to back up files |
| ✅ | WiFi mode is read-only until you click delete |
| Button | Idle | Browsing | Playback | Recording |
|---|---|---|---|---|
| A — LOOP | Cycle loop mode | Cycle loop mode | Stop | — |
| B — PREV | — | Previous track | ⏮ Rewind 1s | — |
| C — PLAY | Browse mode | Play selected | Stop | End now |
| D — NEXT | — | Next track | ⏭ Skip 1s | — |
WiFi Mode: Hold A+B at power-on · Network: ESP32-MIDI-Looper · Password: midi1234 · Address: http://192.168.4.1
Screen Saver: Display off after 30s inactivity · Press any button or play a note to wake
Enjoy looping! 🎹🔁