class Note

Attributes

dur[R]
note[R]
octave[R]
velocity[R]

Public Class Methods

new(degree, octave, velocity, dur) click to toggle source
# File lib/kuromusic/Track/Measure/Chord/Note.rb, line 18
def initialize(degree, octave, velocity, dur)
  @degree = degree
  @octave = octave
  @dur = dur
  @velocity = velocity
end

Public Instance Methods

get_off_event(key) click to toggle source
# File lib/kuromusic/Track/Measure/Chord/Note.rb, line 30
def get_off_event(key)
  gdeg, goct = get_gdeg_and_goct(key)
  Event::Note::off(Key::degree_to_key(gdeg), goct)
end
get_on_event(key) click to toggle source
# File lib/kuromusic/Track/Measure/Chord/Note.rb, line 25
def get_on_event(key)
  gdeg, goct = get_gdeg_and_goct(key)
  Event::Note::on(Key::degree_to_key(gdeg), goct, @velocity)
end
inspect(key = nil) click to toggle source
# File lib/kuromusic/Track/Measure/Chord/Note.rb, line 35
def inspect(key = nil)
  if key.nil?
    "<:degree=>" + @degree.to_s + ", :octave=>" + @octave.to_s + ", :velocity:=>" + @velocity.to_s + ", :duration=>" + @dur.to_s + ">"
  else
    gdeg, goct = get_gdeg_and_goct(key)
    "<:note=>" + Key::degree_to_key(gdeg) + ", :octave=>" + goct.to_s + ", :velocity:=>" + @velocity.to_s + ", :duration=>" + @dur.to_s + ">"
  end
end

Private Instance Methods

get_gdeg_and_goct(key) click to toggle source
# File lib/kuromusic/Track/Measure/Chord/Note.rb, line 6
def get_gdeg_and_goct(key)
  key_n = Key::key_to_degree(key)
  gdeg = (key_n + @degree) % 12
  if gdeg < 0
    goct = @octave - 1
  else
    goct = @octave + (key_n + @degree) / 12
  end
  return gdeg, goct
end