Class: HeadMusic::Style::Guidelines::MixedRhythmicValues

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

Overview

Checks that the voice uses at least 3 different rhythmic value durations. Florid counterpoint requires a genuine mixture of species textures.

Instance Method Summary collapse

Constructor Details

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

Instance Method Details

#distinct_durations_countObject (private)



16
17
18
# File 'lib/head_music/style/guidelines/mixed_rhythmic_values.rb', line 16

def distinct_durations_count
  notes.map { |note| note.rhythmic_value.total_value }.uniq.length
end

#marksObject



7
8
9
10
11
12
# File 'lib/head_music/style/guidelines/mixed_rhythmic_values.rb', line 7

def marks
  return [] if notes.length < 2
  return [] if distinct_durations_count >= 3

  [HeadMusic::Style::Mark.for(notes.first)]
end