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

  1. Install your microcontroller’s USB-serial driver (CH340, FTDI, or Arduino drivers).
  2. 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

  1. Download Hairless MIDI<->Serial Bridge and unzip it.
  2. Run the Hairless executable (no install required on most platforms).
  3. On first run, allow it through your OS firewall if prompted.

3. Configure serial port and baud rate

  1. In Hairless, set the Serial Port to the COM/TTY device representing your microcontroller (e.g., COM3, /dev/ttyACM0).
  2. 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.
  3. Click “Open” to connect; Hairless should show serial activity when data flows.

4. Set MIDI I/O in Hairless

  1. 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).
  2. If using loopMIDI/IAC, select the corresponding port names.

5. Verify MIDI data and framing

  1. Enable the “Show Hex” or monitor in Hairless to view incoming serial bytes.
  2. Send notes from your MIDI controller; you should see MIDI messages appear in Hairless and be forwarded over serial.
  3. 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

  1. 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).
  2. Ensure firmware sends raw MIDI bytes over the serial connection without extra framing, or follow Hairless framing conventions if using its optional protocol features.
  3. 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

Comments

Leave a Reply