Class: Fluent::MIDIOutput

Inherits:
Output
  • Object
show all
Defined in:
lib/fluent/plugin/out_midi.rb

Instance Method Summary collapse

Constructor Details

#initializeMIDIOutput

Returns a new instance of MIDIOutput.



7
8
9
10
# File 'lib/fluent/plugin/out_midi.rb', line 7

def initialize
  super
  require 'rtmidi'
end

Instance Method Details

#configure(conf) ⇒ Object



12
13
14
# File 'lib/fluent/plugin/out_midi.rb', line 12

def configure(conf)
  super
end

#emit(tag, es, chain) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/fluent/plugin/out_midi.rb', line 27

def emit(tag, es, chain)
  chain.next
  es.each do |time, record|
    status   = record['status']   || 0x90 # note on
    note     = record['note']     || 0
    velocity = record['velocity'] || 0
    duration = record['duration']

    @output.send_channel_message(status, note, velocity)
    if duration
      sleep duration
      @output.send_channel_message(status, note, 0)
    end
  end
end

#shutdownObject



22
23
24
25
# File 'lib/fluent/plugin/out_midi.rb', line 22

def shutdown
  super
  @output.close_port
end

#startObject



16
17
18
19
20
# File 'lib/fluent/plugin/out_midi.rb', line 16

def start
  super
  @output = RtMidi::Out.new
  @output.open_port(@port)
end