Class: HeadMusic::Style::Guidelines::NoUnisonsInMiddle

Inherits:
HeadMusic::Style::Guideline show all
Defined in:
lib/head_music/style/guidelines/no_unisons_in_middle.rb

Overview

A counterpoint guideline

Instance Method Summary collapse

Constructor Details

This class inherits a constructor from HeadMusic::Style::Guideline

Instance Method Details

#marksObject



6
7
8
9
10
# File 'lib/head_music/style/guidelines/no_unisons_in_middle.rb', line 6

def marks
  unison_pairs.map do |notes|
    HeadMusic::Style::Mark.for_all(notes)
  end.flatten
end

#middle_intervalsObject (private)



22
23
24
# File 'lib/head_music/style/guidelines/no_unisons_in_middle.rb', line 22

def middle_intervals
  [harmonic_intervals[1..-2]].flatten.compact
end

#middle_unisonsObject (private)



18
19
20
# File 'lib/head_music/style/guidelines/no_unisons_in_middle.rb', line 18

def middle_unisons
  middle_intervals.select { |interval| interval.perfect_consonance? && interval.unison? }
end

#unison_pairsObject (private)



14
15
16
# File 'lib/head_music/style/guidelines/no_unisons_in_middle.rb', line 14

def unison_pairs
  middle_unisons.map(&:notes).compact
end