Class: HeadMusic::Style::Guides::SpeciesHarmony
- Defined in:
- lib/head_music/style/guides/species_harmony.rb
Overview
Base class for species harmony guides. Inherits analysis behavior from Base; exists as a semantic marker distinguishing harmony guides from melody guides.
Direct Known Subclasses
CombinedFirstSecondThirdSpeciesHarmony, FifthSpeciesHarmony, FirstSpeciesHarmony, FourthSpeciesHarmony, SecondSpeciesHarmony, ThirdSpeciesHarmony, ThirdSpeciesTripleMeterHarmony
Constant Summary collapse
- HARMONIC_CORE =
Guidelines shared by every harmonic guide. Subclasses splat this into their RULESET: RULESET = [*HARMONIC_CORE, …species-specific rules].
[ HeadMusic::Style::Guidelines::ApproachPerfectionContrarily, HeadMusic::Style::Guidelines::AvoidCrossingVoices, HeadMusic::Style::Guidelines::AvoidOverlappingVoices, HeadMusic::Style::Guidelines::ConsonantDownbeats, HeadMusic::Style::Guidelines::NoParallelPerfectOnDownbeats, HeadMusic::Style::Guidelines::PreferContraryMotion, HeadMusic::Style::Guidelines::PreferImperfect ].freeze
- DIMINUTION_HARMONIC_CORE =
Guidelines shared by the diminution species (second, third, and triple meter), which set several counterpoint notes against each whole note of the cantus firmus. Subclasses splat this in alongside HARMONIC_CORE.
[ HeadMusic::Style::Guidelines::NoParallelPerfectAcrossBarline, HeadMusic::Style::Guidelines::NoStrongBeatUnisons ].freeze
Class Method Summary collapse
-
.diminution_ruleset(*additional) ⇒ Object
Builds a diminution-species RULESET: the shared harmonic and diminution cores plus the species-specific guidelines passed in.
Class Method Details
.diminution_ruleset(*additional) ⇒ Object
Builds a diminution-species RULESET: the shared harmonic and diminution cores plus the species-specific guidelines passed in.
29 30 31 |
# File 'lib/head_music/style/guides/species_harmony.rb', line 29 def self.diminution_ruleset(*additional) [*HARMONIC_CORE, *DIMINUTION_HARMONIC_CORE, *additional].freeze end |