class Metronome::Bar

Attributes

beat_array[RW]
d[R]
downbeat_sound_file[W]
n[R]
tempo[RW]
upbeat_sound_file[W]

Public Class Methods

new(tempo, n, d) click to toggle source
# File lib/metronome-odd.rb, line 79
def initialize(tempo, n, d)
  data_dir = Gem.datadir("metronome-odd")
  data_dir = data_dir ? data_dir : ""
  @upbeat_sound_file = data_dir + "/beat_upbeat.aiff"
  @downbeat_sound_file = data_dir + "/beat_downbeat.aiff"

  @beat_array = Array.new
  @beat_array.push(Beat.new(tempo*d/4.0, @upbeat_sound_file))

  @n = n
  @d = d

  @tempo = tempo

  (2..n).each do 
    @beat_array.push(Beat.new(tempo*d/4.0, @downbeat_sound_file))
  end
  self
end

Public Instance Methods

play() click to toggle source
# File lib/metronome-odd.rb, line 99
def play
  @beat_array.each {|b| b.play}
end
print_sign() click to toggle source
set_tempo(tempo) click to toggle source
# File lib/metronome-odd.rb, line 107
def set_tempo(tempo)
  old_tempo = Float(@tempo)

  @beat_array.each do |beat|
    beat.silence.duration *= old_tempo/tempo
  end

  @tempo = tempo
end