class MIDIInstrument::Input
Enable a node to listen for MIDI messages on a MIDI input
Attributes
channel[R]
devices[R]
Public Class Methods
new(options = {})
click to toggle source
@param [Hash] options @option options [Array<UniMIDI::Input>, UniMIDI::Input] :sources @option options [Hash] :input_map
# File lib/midi-instrument/input.rb, line 14 def initialize(options = {}) @listener = Listener.new(options[:sources]) @devices = InputContainer.new(@listener) @channel = nil end
Public Instance Methods
add(*messages)
click to toggle source
Manually add messages to the input @param [Array<MIDIMessage>, MIDIMessage, *MIDIMessage] messages @return [Array<MIDIMessage>]
# File lib/midi-instrument/input.rb, line 34 def add(*messages) messages = Message.to_messages([messages].flatten).compact @listener.add(*messages) unless messages.empty? messages end
Also aliased as: <<
channel=(channel)
click to toggle source
Specify an input channel @return [Boolean]
# File lib/midi-instrument/input.rb, line 51 def channel=(channel) @channel = channel true end
devices=(devices)
click to toggle source
Replace the devices with the given devices @param [Array<UniMIDI::Inputs>] devices @return [InputContainer]
# File lib/midi-instrument/input.rb, line 59 def devices=(devices) @devices.clear @devices += devices @devices end
omni()
click to toggle source
Set the listener to acknowledge notes on all channels @return [Boolean]
# File lib/midi-instrument/input.rb, line 43 def omni @channel = nil true end
Also aliased as: omni_on
receive(match = {}) { |event| ... }
click to toggle source
Add a MIDI input callback @param [Hash] match Matching spec @param [Proc] callback @return [Listen]
# File lib/midi-instrument/input.rb, line 24 def receive(match = {}, &block) if block_given? @listener.receive(match) { |event| yield(event) } end self end