Class: HeadMusic::Style::Guidelines::DirectionalStepToFinalNote
- Inherits:
-
Annotation
- Object
- Annotation
- HeadMusic::Style::Guidelines::DirectionalStepToFinalNote
show all
- Defined in:
- lib/head_music/style/guidelines/directional_step_to_final_note.rb
Overview
Base class for guidelines requiring a step in a specific direction to the final note.
Instance Method Summary
collapse
Instance Method Details
#expected_direction? ⇒ Boolean
17
18
19
|
# File 'lib/head_music/style/guidelines/directional_step_to_final_note.rb', line 17
def expected_direction?
raise NotImplementedError
end
|
#last_melodic_interval ⇒ Object
25
26
27
|
# File 'lib/head_music/style/guidelines/directional_step_to_final_note.rb', line 25
def last_melodic_interval
@last_melodic_interval ||= melodic_intervals.last
end
|
#marks ⇒ Object
6
7
8
9
10
11
12
13
|
# File 'lib/head_music/style/guidelines/directional_step_to_final_note.rb', line 6
def marks
return if last_melodic_interval.nil?
fitness = 1
fitness *= HeadMusic::PENALTY_FACTOR unless step?
fitness *= HeadMusic::PENALTY_FACTOR unless expected_direction?
HeadMusic::Style::Mark.for_all(notes[-2..], fitness: fitness) if fitness < 1
end
|
#step? ⇒ Boolean
21
22
23
|
# File 'lib/head_music/style/guidelines/directional_step_to_final_note.rb', line 21
def step?
last_melodic_interval&.step?
end
|