My MIDI recorder is a small device that lives plugged into a MIDI instrument (specifically a digital piano) and automatically records and uploads everything played on it for later reference. The core idea is that no input is required, and no feedback is given that recording has started/stopped, so you get 'recording-by-default'. A webserver automatically processes recordings and makes them available for playback via a frontend website.
This is the firmware and CAD files for a device that I'm building that automatically records everything I play on my piano. The repository for the server and frontend website can be found here
The device is pretty simple - it's an ESP32, some power regulation and MIDI IN / MIDI THRU. Check back soon, I'm actively working on this project right now so CAD files for the enclosure should be coming soon!
- ESP32 WROOM (or similar) - note the pinout if you're using my PCB design
- 6N138 Optocoupler (DIP8)
- HT7333 Linear Voltage Regulator
- 1N914 Signal Diode
- 6 x 220Ω Resistors
- 4-pin 8mm RGB LED
- Bidirectional Logic Level Converter (e.g. this one from sparkfun)
- 2 x 5-pin DIN Jack (panel mount)
- 1 x DC Barrel Jack (panel mount)
- 5V 2A DC Power Supply (make sure the barrel size matches your jack size)
- Open up the firmware in the Arduino IDE and install this custom library (you should be able to find it in the Library Manager
- Replace my SSID and passcode with your WiFi credentials (2.4GHz only)
- Replace the server with the URL of your custom server instance (see the server readme for details)
- Make sure that line 1 is uncommented (i.e. that
DEBUG_MODE
is defined) - Flash the firmware and examine the serial output (38400 baud) - note the MAC address and ensure WiFi is connecting successfully (reboot the device if you don't see them)
- Update the
NEXT_PUBLIC_DEVICE_MAC_ADDRESS
environment variable on the server and redeploy - Try uploading a recording! If it works, comment-out
DEBUG_MODE
and reflash - you're done!