Sha256: 0e20b9c840c36fa9177e2950043664301b42185d41e2e181804057d11cab3148
Contents?: true
Size: 628 Bytes
Versions: 1
Compression:
Stored size: 628 Bytes
Contents
module HeadMusic::Style::Annotations end class HeadMusic::Style::Annotations::PreferImperfect < HeadMusic::Style::Annotation MESSAGE = "Use consonant harmonic intervals." def marks if ratio_of_perfect_intervals > 0.5 HeadMusic::Style::Mark.for_all(perfect_intervals.map(&:notes).flatten) end end private def ratio_of_perfect_intervals return 0 if downbeat_harmonic_intervals.empty? perfect_intervals.length.to_f / downbeat_harmonic_intervals.length end def perfect_intervals downbeat_harmonic_intervals.select { |interval| interval.perfect_consonance?(:two_part_harmony) } end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
head_music-0.13.2 | lib/head_music/style/annotations/prefer_imperfect.rb |