Fix MIDI Problems
Find the message or the symptom, then work through the fix. Quoted blocks are what resonon prints.
No notes reach the synth or DAW
Section titled “No notes reach the synth or DAW”First check that the track has an output. A new MidiTrack has none until >> routes it, and
print(bass); shows no output. Route it to a declared alias:
let bass = MidiTrack("bass");bass >> MidiOutput("synth");MIDI port “synth” is not connected — 3 events dropped. Add a
[[midi.outputs]]entry with this alias.
The track was routed to the alias, but the preferences no longer declare it.
-
Declare it in
~/.resonon/preferences.toml—resonon setuppicks the port from a list:[[midi.outputs]]alias = "synth"port = "IAC" -
Run
reload_preferences()to open it without restarting. -
Check what is connected:
print(midi_connected());prints{alias: port}for every open port.
MIDI port “synth” has no device — 3 events dropped. Run
resonon --list-portsand check the port name.
The alias is declared, but no device matches its port. Resonon also prints this for every port when
it runs with --no-midi, which opens no ports on purpose.
- Run
resonon --list-portsand compare the names. A port name matches exactly first, then as a substring, so"IAC"finds"IAC Driver Bus 1". - Plug the device in, then run
reload_preferences(). The alias stays valid while the device is missing, so the tracks that use it do not need to change. - For gear that is not always there, add
optional = trueto its entry: its absence is expected rather than reported.
On the DAW side, check that the track’s MIDI input is the port, that it is armed or monitoring, and that it has an instrument.
A port is not found
Section titled “A port is not found”- Run
resonon --list-ports. It prints an entry for each attached device, ready to paste. - For a DAW on the same Mac, turn on a virtual port: Audio MIDI Setup → Window → Show MIDI Studio → IAC Driver → Device is online.
- Run
reload_preferences()after you change the file or plug in the device.
A note hangs
Section titled “A note hangs”A note-on was sent, and its note-off never arrived — often after a change in the middle of a note.
- Press F5 to play: on start, resonon sends a note-off for every note it left sounding.
- Press Shift+F5 three times: the third stop sends a note-off for every note resonon started that is still sounding, on every port.
- If the note still hangs, the synth or DAW lost the note-off: use its own panic.
Notes or clock arrive late or unevenly
Section titled “Notes or clock arrive late or unevenly”A device is behind or ahead of the mix by the same amount every time: trim its port — see Align Hardware with the Mix. When the timing wobbles, or a device following resonon’s clock drifts, trace what is sent:
-
Start the trace, with the transport playing:
set_midi_trace(true); -
Let it play a few bars, then stop the trace. It prints what it captured:
set_midi_trace(false); -
Read the report. Each
NoteOnline says how far ahead of its time it was sent, orLATE. UnderInter-tick intervals, thejitterline is the spread of the clock’s tick spacing.
midi_trace_report() prints what has been captured so far and keeps recording. Turn the trace off
when you are done: it takes a lock on the audio thread while it records.
Notes sent LATE reached the output after their time: check the load — see
the audio crackles, or reacts late
and notes drop out under load.
A steady report with a device that still wobbles points at the device or its connection.
The octaves look one off
Section titled “The octaves look one off”Nothing is wrong. Resonon writes C4 for MIDI note 60; Ableton Live and some other DAWs call the
same note C3.
| Resonon | MIDI note | Ableton Live |
|---|---|---|
C4 | 60 | C3 |
A4 | 69 | A3 |
C5 | 72 | C4 |
Related
Section titled “Related”- Send MIDI to a Synth or DAW — ports, channels and a DAW over a virtual port
- Preferences — every port key
- Align Hardware with the Mix — a device that is early or late