Class: HeadMusic::Style::Guidelines::StepDownToFinalNote

Inherits:
Annotation
  • Object
show all
Defined in:
lib/head_music/style/guidelines/step_down_to_final_note.rb

Overview

A counterpoint guideline

Constant Summary collapse

MESSAGE =
"Step down to the final note."

Instance Attribute Summary

Attributes inherited from Annotation

#voice

Instance Method Summary collapse

Methods inherited from Annotation

#adherent?, #end_position, #fitness, #initialize, #message, #notes?, #start_position

Constructor Details

This class inherits a constructor from HeadMusic::Style::Annotation

Instance Method Details

#marksObject



10
11
12
13
14
15
16
17
# File 'lib/head_music/style/guidelines/step_down_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 descending?
  HeadMusic::Style::Mark.for_all(notes[-2..], fitness: fitness) if fitness < 1
end