Class: HeadMusic::Style::Guidelines::LimitOctaveLeaps
- Inherits:
-
Annotation
- Object
- Annotation
- HeadMusic::Style::Guidelines::LimitOctaveLeaps
show all
- Defined in:
- lib/head_music/style/guidelines/limit_octave_leaps.rb
Overview
A counterpoint guideline: Use a maximum of one octave leap.
Configurable via the maximum_leaps: option.
Constant Summary
collapse
- MAXIMUM_LEAPS =
1
Instance Method Summary
collapse
Instance Method Details
#marks ⇒ Object
9
10
11
12
13
14
15
|
# File 'lib/head_music/style/guidelines/limit_octave_leaps.rb', line 9
def marks
return if octave_leaps.length <= maximum_leaps
octave_leaps.map do |leap|
HeadMusic::Style::Mark.for_all(leap.notes)
end
end
|
#maximum_leaps ⇒ Object
23
24
25
|
# File 'lib/head_music/style/guidelines/limit_octave_leaps.rb', line 23
def maximum_leaps
options.fetch(:maximum_leaps) { self.class::MAXIMUM_LEAPS }
end
|
#message ⇒ Object
17
18
19
|
# File 'lib/head_music/style/guidelines/limit_octave_leaps.rb', line 17
def message
"Use a maximum of #{maximum_leaps.humanize} octave #{(maximum_leaps == 1) ? "leap" : "leaps"}."
end
|
#octave_leaps ⇒ Object
27
28
29
|
# File 'lib/head_music/style/guidelines/limit_octave_leaps.rb', line 27
def octave_leaps
melodic_note_pairs.select(&:octave?)
end
|