EchoBox MIDI Looper — User Guide

A hardware MIDI recorder and looper for musicians. No technical knowledge required.


Contents


What This Device Does

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

First Time Setup

1. Set the Clock

The device timestamps every recording. Set the clock once on first use via WiFi mode (see WiFi File Management for full details):

  1. Hold buttons A + B while powering on
  2. Connect to WiFi ESP32-MIDI-Looper (password: midi1234)
  3. Open http://192.168.4.1 → click "Set Device Time"
  4. Press any button on the device to exit and reboot

Note: The clock is battery-backed (CR2032 on the RTC module) and keeps time when the device is powered off.


Understanding the Buttons

The device has 4 buttons, from left to right:

┌────────┬────────┬────────┬────────┐
│   A    │   B    │   C    │   D    │
│  LOOP  │  PREV  │  PLAY  │  NEXT  │
└────────┴────────┴────────┴────────┘

Button Functions at a Glance

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

Button A — LOOP

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

Button B — PREV / REWIND

Button C — PLAY

Button D — NEXT / FORWARD


Basic Operation

Recording Your First Loop

  1. Set Loop Mode — Press A (LOOP) until the LED is GREEN (infinite loop)
  2. Start Playing — Play any MIDI notes. Recording starts automatically. All 4 LEDs turn red.
  3. Stop Recording — Stop playing and wait 5 seconds (auto-saves), or press C (PLAY) to stop immediately.
  4. Loop Starts — Playback begins automatically and loops forever. Press A or C to stop.

Tip: The loop is seamless — there is less than 2ms of silence between iterations.


Playing Back a Previous Recording

  1. Press C (PLAY) — LED C turns yellow (browse mode)
  2. Press B or D to navigate:
Track Number Meaning
−1, −2, −3... Your recordings, newest first
+1, +2, +3... Uploaded MIDI files
  1. Press C (PLAY) again to start playback
  2. Press A (LOOP) or C (PLAY) to stop

Seeking During Playback

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.


Stopping Playback

Press A (LOOP) or C (PLAY) — all MIDI notes are silenced immediately.

Note: B and D seek through the track rather than stopping it.


Loop Modes Explained

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).

Display Information

During Playback

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

While Browsing

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.

Screen Saver

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.


LED Colour Guide

Loop Mode (Button A)

Colour Mode
🔴 Red Loop OFF — record only
🟡 Yellow Loop ONCE — play once
🟢 Green Loop INFINITE — loop forever

Device State

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

WiFi File Management

Use WiFi mode to set the clock, upload MIDI files, or manage your recordings.

Entering WiFi Mode

  1. Turn off the device
  2. Hold buttons A + B (the two leftmost buttons)
  3. Turn on while holding — display shows: Join wifi / pw=midi1234 / 192.168.4.1
  4. On your phone, tablet, or computer connect to WiFi: ESP32-MIDI-Looper (password: midi1234)
  5. Your browser should open automatically — if not, go to http://192.168.4.1

What You Can Do

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

Using Uploaded Files

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.

Exiting WiFi Mode

Press any button on the device — it reboots to normal mode.


Tips & Tricks

Quick Live Loop

  1. Set loop to 🟢 GREEN (infinite)
  2. Start playing — recording starts automatically
  3. Stop playing and wait 5 seconds
  4. Loop starts immediately

Precise Recording Stop

Press C (PLAY) during recording to end it at exactly the right moment, rather than waiting for the 5-second silence timeout.

Building a Set List

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.

Skipping Through Long Recordings

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.

Layering Ideas

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.


Troubleshooting

"Nothing happens when I play MIDI notes"

"Time is wrong on recordings"

"Display is blank"

"Can't connect to WiFi"

"Uploaded MIDI file won't play"


File Naming

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.


Safety Notes

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

Quick Reference

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! 🎹🔁