class HeadMusic::Style::Guidelines::StepUpToFinalNote

A counterpoint guideline

Constants

MESSAGE

Public Instance Methods

marks() click to toggle source
# File lib/head_music/style/guidelines/step_up_to_final_note.rb, line 10
def marks
  return if last_melodic_interval.nil?

  fitness = 1
  fitness *= HeadMusic::PENALTY_FACTOR unless step?
  fitness *= HeadMusic::PENALTY_FACTOR unless ascending?
  HeadMusic::Style::Mark.for_all(notes[-2..-1], fitness: fitness) if fitness < 1
end

Private Instance Methods

ascending?() click to toggle source
# File lib/head_music/style/guidelines/step_up_to_final_note.rb, line 21
def ascending?
  last_melodic_interval&.ascending?
end
last_melodic_interval() click to toggle source
# File lib/head_music/style/guidelines/step_up_to_final_note.rb, line 29
def last_melodic_interval
  @last_melodic_interval ||= melodic_intervals.last
end
step?() click to toggle source
# File lib/head_music/style/guidelines/step_up_to_final_note.rb, line 25
def step?
  last_melodic_interval&.step?
end