class HeadMusic::Style::Guidelines::SingableIntervals

A counterpoint guideline

Constants

MESSAGE
PERMITTED_ASCENDING
PERMITTED_DESCENDING

Public Instance Methods

marks() click to toggle source
# File lib/head_music/style/guidelines/singable_intervals.rb, line 13
def marks
  melodic_intervals.reject { |interval| permitted?(interval) }.map do |unpermitted_interval|
    HeadMusic::Style::Mark.for_all([unpermitted_interval.first_note, unpermitted_interval.second_note])
  end
end

Private Instance Methods

permitted?(melodic_interval) click to toggle source
# File lib/head_music/style/guidelines/singable_intervals.rb, line 21
def permitted?(melodic_interval)
  whitelist_for_interval(melodic_interval).include?(melodic_interval.shorthand)
end
whitelist_for_interval(melodic_interval) click to toggle source
# File lib/head_music/style/guidelines/singable_intervals.rb, line 25
def whitelist_for_interval(melodic_interval)
  melodic_interval.ascending? ? PERMITTED_ASCENDING : PERMITTED_DESCENDING
end