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

<<(*messages)
Alias for: add
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
omni_on()
Alias for: omni
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