Here's an example where MicroMIDI sends some MIDI messages to an output. (see an example here which explains selecting an output...)
require "micromidi" @o = UniMIDI::Output.use(:first) MIDI.using(@o) do note "C" off cc 5, 120 play "C3", 0.5 end
Running this code sends the following to @o:
* note C2 (2 is the default octave)
* note-off for C2, since that was the last note sent
* sets controller number 5 to 120
* note C3, waits half of a second and then note-off for C3
By default, any time you call a method that returns a MIDI message object, it's automatically sent to any outputs that are passed in. You can toggle this feature by calling
output false
or
output true
You can also prevent only a single command from sending output by setting the output option:
note "c", :output => falseSticky Values
If you work with MIDI often, you may have noticed that there was no mention of MIDI channel or velocity in the last example. Most of the time, sending a note-on or note-off message requires those values. In addition, for the first message I didn't specify what octave the note C should be.
Here's an example where the sticky values are used, changed and overriden.
MIDI.using(@o) do channel 1 note "C4" off octave 5 velocity 60 note "E", :channel => 2 off channel 3 note "C3" off end
What winds up being sent to @o is:
* note C4 (channel 1, vel 100)
* note-off C4 (channel 1, vel 100)
* note E5 (channel 2, vel 60)
* note-off E5 (channel 2, vel 60)
* note C3 (channel 3, vel 60)
* note-off C3 (channel 3, vel 60)
No comments:
Post a Comment