class HeadMusic::Style::Guidelines::PreferContraryMotion
A counterpoint guideline
Constants
- MESSAGE
Public Instance Methods
marks()
click to toggle source
# File lib/head_music/style/guidelines/prefer_contrary_motion.rb, line 10 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 Instance Methods
direct_motion_ratio()
click to toggle source
# File lib/head_music/style/guidelines/prefer_contrary_motion.rb, line 23 def direct_motion_ratio return 0 if motions.empty? direct_motions.count / motions.count.to_f end
direct_motions()
click to toggle source
# File lib/head_music/style/guidelines/prefer_contrary_motion.rb, line 19 def direct_motions motions.select(&:direct?) end