Hairless MIDI to Serial Bridge: Easy MIDI-over-Serial Explained
How to Set Up a Hairless MIDI to Serial Bridge — Step‑by‑Step
What you need
- Hardware: MIDI device (keyboard/controller), USB MIDI or 5-pin DIN MIDI interface to your computer, microcontroller/serial device (e.g., Arduino) with USB-serial or TTL serial connection.
- Software: Hairless MIDI<->Serial Bridge (Hairless), a serial driver for your microcontroller (e.g., Arduino IDE driver), and a virtual MIDI cable if required (e.g., loopMIDI on Windows, IAC Driver on macOS).
1. Install drivers and virtual MIDI port
- Install your microcontroller’s USB-serial driver (CH340, FTDI, or Arduino drivers).
- Install a virtual MIDI loop driver if you need to route MIDI between applications:
- Windows: loopMIDI or similar.
- macOS: enable “IAC Driver” in Audio MIDI Setup.
- Linux: typically not required; use aconnect or a virtual MIDI device as needed.
2. Download and run Hairless
- Download Hairless MIDI<->Serial Bridge and unzip it.
- Run the Hairless executable (no install required on most platforms).
- On first run, allow it through your OS firewall if prompted.
3. Configure serial port and baud rate
- In Hairless, set the Serial Port to the COM/TTY device representing your microcontroller (e.g., COM3, /dev/ttyACM0).
- Set the Baud Rate to match the device firmware. Common values:
- 115200 for Arduino MIDI libraries (Hairless uses a MIDI-over-serial framing).
- 38400 or 31250 only if your device firmware expects those — 31250 is standard MIDI baud for DIN MIDI hardware; for serial-over-USB MIDI you’ll usually use 115200.
- Click “Open” to connect; Hairless should show serial activity when data flows.
4. Set MIDI I/O in Hairless
- In the Hairless window, choose the MIDI Input and MIDI Output ports:
- MIDI Input: the virtual MIDI port or hardware MIDI interface receiving from your DAW/controller.
- MIDI Output: where you want MIDI forwarded (often a synth app or another virtual port).
- If using loopMIDI/IAC, select the corresponding port names.
5. Verify MIDI data and framing
- Enable the “Show Hex” or monitor in Hairless to view incoming serial bytes.
- Send notes from your MIDI controller; you should see MIDI messages appear in Hairless and be forwarded over serial.
- If messages are garbled, confirm matching baud rate, correct serial voltage levels (TTL vs RS232), and that your microcontroller firmware packages MIDI bytes correctly.
6. Configure microcontroller firmware
- Use a sketch/library that implements MIDI-over-serial framing compatible with Hairless (e.g., use the Hairless-compatible Arduino sketch or the MIDI library with Serial.write).
- Ensure firmware sends raw MIDI bytes over the serial connection without extra framing, or follow Hairless framing conventions if using its optional protocol features.
- If using TTL-level serial (e.g., Arduino TX/RX), ensure correct wiring and common ground; for 5-pin DIN MIDI hardware, use an opto-isolator or proper MIDI driver circuit.
7. Troubleshooting checklist
- No serial port visible: confirm drivers installed, cable connected, device powered.
- No MIDI passing: check MIDI routing (virtual ports), Hairless MIDI I/O settings, and that the DAW/app sends to the selected port.
- Garbled/slow data: mismatch in
Leave a Reply
You must be logged in to post a comment.