Class: Cemetry::Sequence

Inherits:
Object
  • Object
show all
Defined in:
lib/cemetry.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(bpm) ⇒ Sequence

Returns a new instance of Sequence.



10
11
12
# File 'lib/cemetry.rb', line 10

def initialize(bpm)
  @bpm_msec = Miserable.new(bpm)
end

Instance Attribute Details

#bpm_msecObject (readonly)

Returns the value of attribute bpm_msec.



8
9
10
# File 'lib/cemetry.rb', line 8

def bpm_msec
  @bpm_msec
end

Instance Method Details

#play(proc, only_once: nil) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/cemetry.rb', line 14

def play(proc, only_once: nil)
  begin
    osc_client = OSC::Client.new("localhost", 2345)
  rescue SocketError => e
    puts e.message
    retry
  end
  loop do
    note = Noone::NOTE_TABLE[proc.call.upcase]
    osc_client.send(OSC::Message.new("/sequence", note))
    sleep(@bpm_msec.quarter_note / 1_000)
    break if only_once
  end
end