Class: HeadMusic::Style::Guidelines::ConsonantDownbeats
Overview
A counterpoint guideline.
Dissonant downbeats are permitted only when the counterpoint note is a
properly tied-over suspension (i.e., it began before the current CF note).
Instance Method Summary
collapse
Instance Method Details
#dissonant_intervals ⇒ Object
24
25
26
|
# File 'lib/head_music/style/guidelines/consonant_downbeats.rb', line 24
def dissonant_intervals
downbeat_harmonic_intervals.select { |interval| interval.dissonance?(:two_part_harmony) }
end
|
#dissonant_pairs ⇒ Object
16
17
18
|
# File 'lib/head_music/style/guidelines/consonant_downbeats.rb', line 16
def dissonant_pairs
non_suspension_dissonant_intervals.map(&:notes).compact
end
|
#marks ⇒ Object
8
9
10
11
12
|
# File 'lib/head_music/style/guidelines/consonant_downbeats.rb', line 8
def marks
dissonant_pairs.map do |dissonant_pair|
HeadMusic::Style::Mark.for_all(dissonant_pair)
end.flatten
end
|
#non_suspension_dissonant_intervals ⇒ Object
20
21
22
|
# File 'lib/head_music/style/guidelines/consonant_downbeats.rb', line 20
def non_suspension_dissonant_intervals
dissonant_intervals.reject { |interval| tied_suspension?(interval) }
end
|
#tied_suspension?(interval) ⇒ Boolean
28
29
30
31
32
33
|
# File 'lib/head_music/style/guidelines/consonant_downbeats.rb', line 28
def tied_suspension?(interval)
cp_note = voice.note_at(interval.position)
return false unless cp_note
cp_note.position < interval.position
end
|