MIDI Output
Send note and control data to MIDI instruments.
What it does
MIDI Output takes a value from the graph and sends it to a real MIDI device or another application, as either a Control Change (CC) message or a Note trigger. Value is read as 0–1 and mapped to the MIDI range 0–127 on the way out, so anything already outputting 0–1 drives it: an audio level, a Time node, an Expression, a pointer position.
Pick the target Device and Channel, choose Control Change or Note, and set which CC or Note Number to address. The Sent output pulses to 1 for the frame a message goes out, which confirms traffic without an external MIDI monitor.
When to use it
A synth, DAW or lighting rig's MIDI-mapped parameter driven from something happening in the graph
A Note triggered on a MIDI instrument in time with the graph, with Output Type on Note
A value fed into Ableton Live, another DAW, or any app listening for CC, with Number set to match the target's MIDI mapping
Confirmation that output is happening, from the Sent output
| Parameter | Type | Default |
|---|---|---|
device | String | "0" |
channel | Number | 1 |
number | Number | 1 |
output_type | String | "cc" |
value | Number | 0 |
enabled | Boolean | true |
send_on_change | Boolean | true |
Gotchas
Value is always read as 0–1 and rescaled to MIDI's 0–127. That maths does not need doing upstream.
Send on Change is on by default and only sends a fresh message when the value moves, which keeps a busy MIDI cable from flooding. Turn it off if the receiving device needs a message every frame regardless of change.
The Device list is populated from whatever MIDI outputs the system reports at the time. With no MIDI devices connected the list is empty and Device does not resolve to a real port. Connect or start the MIDI device or virtual port first, then reselect it here.
Worked example
Add a MIDI Output node and pick your target Device from the list.
Set Channel to match the channel your instrument or DAW is listening on.
Leave Output Type on CC, and set Number to the CC your target parameter is mapped to.
Wire a 0–1 value into Value: an Audio node's level, a Time-driven Expression, anything that animates.
Watch Sent pulse as messages go out, confirming the connection is live.
See also
MIDI Input · DMX Output · OSC Output · Numbers, signals & audio