Skip to content

DAW Setup

This content is for v0.7. Switch to the latest version for up-to-date documentation.

  1. Open Audio MIDI Setup (Applications > Utilities)
  2. Menu: Window > Show MIDI Studio (or Cmd+2)
  3. Double-click IAC Driver
  4. Check Device is online
  5. Ensure at least one port exists (default: “Bus 1”)
  6. Click Apply
Terminal window
resonon --list-ports

You should see “IAC Driver Bus 1” (or similar).

  1. Install loopMIDI
  2. Create a virtual port (e.g., “loopMIDI Port”)
  3. Connect in Resonon:
midi_connect("loopMIDI Port");

Or via CLI:

Terminal window
resonon -p "loopMIDI"

Use ALSA or JACK virtual MIDI:

Terminal window
# List available ports
resonon --list-ports
# Connect
resonon -p "Your Port Name"
  1. Open Ableton Live
  2. Go to Preferences > Link, Tempo & MIDI
  3. In MIDI Ports, find “IAC Driver (Bus 1)”
  4. Enable Track input (checkmark in Track column)
  5. Optionally enable Remote for control messages
  1. Create a new MIDI track (Cmd+Shift+T)
  2. Set MIDI From to “IAC Driver (Bus 1)”
  3. Set Monitor to In
  4. Load an instrument (e.g., drag a synth from Browser > Instruments)
midi_connect("IAC Driver Bus 1");
let t = MidiTrack(1);
t << [C4 E4 G4 E4];
PLAY;

You should hear notes through Ableton’s instrument.

To record Resonon output:

  1. Arm the MIDI track
  2. Press record in Ableton
  3. Run your Resonon code
  4. Stop recording

MIDI clips will contain the captured notes.

These steps work with any DAW that accepts external MIDI input:

  1. Open your DAW’s MIDI or Audio/MIDI preferences
  2. Find the virtual MIDI port in the input list — IAC Driver on macOS, loopMIDI on Windows, or your ALSA/JACK port on Linux
  3. Enable it as a MIDI input
  4. Create an instrument track and load a synth or plugin
  5. Set the track’s MIDI input to the virtual port (or “All Inputs”)
  6. Enable input monitoring so you hear incoming MIDI in real time
  7. Test with a basic Resonon snippet:
let t = MidiTrack(1);
t << [C4 E4 G4 E4];
PLAY;

To record Resonon output as MIDI clips, arm the track and press record before running your code.

Use different MIDI channels for different instruments:

main.non
midi_connect("IAC Driver Bus 1");
let drums = MidiTrack(10); // Channel 10 (GM drums)
let bass = MidiTrack(1);
let lead = MidiTrack(2);
let pad = MidiTrack(3);

In your DAW, create tracks listening to each channel.