class MTK::IO::MIDIInput
Common behavior for realtime MIDI
input.
Attributes
device[R]
The underlying output device implementation wrapped by this class. The device type depends on the platform.
Public Class Methods
available_input_types()
click to toggle source
# File lib/mtk/io/midi_input.rb, line 14 def available_input_types @available_input_types ||= [] end
devices()
click to toggle source
All available input devices.
# File lib/mtk/io/midi_input.rb, line 27 def devices @devices ||= available_input_types.map{|input_type| input_type.devices }.flatten end
devices_by_name()
click to toggle source
Maps input device names to the input device.
# File lib/mtk/io/midi_input.rb, line 32 def devices_by_name @devices_by_name ||= ( available_input_types.each_with_object( Hash.new ) do |input_type,hash| hash.merge!( input_type.devices_by_name ) end ) end
find_by_name(name)
click to toggle source
# File lib/mtk/io/midi_input.rb, line 40 def find_by_name(name) if name.is_a? Regexp matching_name = devices_by_name.keys.find{|device_name| device_name =~ name } device = devices_by_name[matching_name] else device = devices_by_name[name.to_s] end open(device) if device end
inherited(subclass)
click to toggle source
# File lib/mtk/io/midi_input.rb, line 10 def inherited(subclass) available_input_types << subclass end
input_types_by_device()
click to toggle source
# File lib/mtk/io/midi_input.rb, line 18 def input_types_by_device @input_types_by_device ||= ( available_input_types.each_with_object( Hash.new ) do |input_type,hash| input_type.devices.each{|device| hash[device] = input_type } end ) end
open(device)
click to toggle source
# File lib/mtk/io/midi_input.rb, line 50 def open(device) input_type = input_types_by_device[device] input_type.new(device) if input_type end
Private Class Methods
new(input_device, options={})
click to toggle source
# File lib/mtk/io/midi_input.rb, line 57 def initialize(input_device, options={}) @device = input_device @device.open @options = options end
Public Instance Methods
name()
click to toggle source
# File lib/mtk/io/midi_input.rb, line 72 def name @device.name end
record()
click to toggle source
# File lib/mtk/io/midi_input.rb, line 76 def record end
stop()
click to toggle source
# File lib/mtk/io/midi_input.rb, line 79 def stop end
to_timeline()
click to toggle source
# File lib/mtk/io/midi_input.rb, line 82 def to_timeline MTK::Events::Timeline.new end