Sends MIDI and OSC to other devices and programs at their time.
These have no timestamps, so loops hand each message here ahead of time, and it is sent at the moment. The process wakes 2 ms before a message is due and waits out the rest by reading the clock, which keeps messages within a millisecond of their time; Erlang timers alone run 1 to 7 ms late.
A MIDI message goes to the output port it names, or to every connected output port when it names none. A port that is not connected, or an OSC destination that cannot be reached, prints one warning naming it, and its messages are dropped. On stop it sends note off for every MIDI note still sounding.
Summary
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
Sends a {:midi, port, bytes} or {:osc, {host, port}, packet} message at a Unix time in microseconds.
Starts the sender, under the name in opts, or Mx.Out unless name: nil.