Sha256: a830f413db8eb269548ebf04b66077470a62f202001c2eb85a74441c114034fd
Contents?: true
Size: 662 Bytes
Versions: 2
Compression:
Stored size: 662 Bytes
Contents
# frozen_string_literal: true # Module for Annotations. module HeadMusic::Style::Annotations; end # A counterpoint guideline class HeadMusic::Style::Annotations::PreferContraryMotion < HeadMusic::Style::Annotation MESSAGE = 'Prefer contrary motion. Move voices in different melodic directions.' def marks return nil if notes.length < 2 return nil if direct_motion_ratio <= 0.5 direct_motions.map { |motion| HeadMusic::Style::Mark.for_all(motion.notes) } end private def direct_motions motions.select(&:direct?) end def direct_motion_ratio return 0 if motions.empty? direct_motions.count / motions.count.to_f end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
head_music-0.19.0 | lib/head_music/style/annotations/prefer_contrary_motion.rb |
head_music-0.18.0 | lib/head_music/style/annotations/prefer_contrary_motion.rb |