class HeadMusic::Style::Guidelines::PreferImperfect
A counterpoint guideline
Constants
- MESSAGE
Public Instance Methods
marks()
click to toggle source
# File lib/head_music/style/guidelines/prefer_imperfect.rb, line 10 def marks HeadMusic::Style::Mark.for_all(perfect_intervals.map(&:notes).flatten) if ratio_of_perfect_intervals >= 0.5 end
Private Instance Methods
downbeat_harmonic_intervals_in_middle()
click to toggle source
# File lib/head_music/style/guidelines/prefer_imperfect.rb, line 26 def downbeat_harmonic_intervals_in_middle downbeat_harmonic_intervals[1..-2] end
perfect_intervals()
click to toggle source
# File lib/head_music/style/guidelines/prefer_imperfect.rb, line 22 def perfect_intervals downbeat_harmonic_intervals_in_middle.select { |interval| interval.perfect_consonance?(:two_part_harmony) } end
ratio_of_perfect_intervals()
click to toggle source
# File lib/head_music/style/guidelines/prefer_imperfect.rb, line 16 def ratio_of_perfect_intervals return 0 if downbeat_harmonic_intervals_in_middle.nil? perfect_intervals.length.to_f / downbeat_harmonic_intervals.length end