Class: HeadMusic::Style::Guides::SpeciesMelody
- Defined in:
- lib/head_music/style/guides/species_melody.rb
Overview
Base class for species melody guides. Inherits analysis behavior from Base; exists as a semantic marker distinguishing melody guides from harmony guides.
Direct Known Subclasses
CombinedFirstSecondThirdSpeciesMelody, DiatonicMelody, FifthSpeciesMelody, FirstSpeciesMelody, FourthSpeciesMelody, FuxCantusFirmus, SalzerSchachterCantusFirmus, SecondSpeciesMelody, ThirdSpeciesMelody, ThirdSpeciesTripleMeterMelody
Constant Summary collapse
- MELODIC_CORE =
Guidelines shared by every melodic guide. Subclasses splat this into their RULESET: RULESET = [*MELODIC_CORE, …species-specific rules].
[ HeadMusic::Style::Guidelines::ConsonantClimax, HeadMusic::Style::Guidelines::Diatonic, HeadMusic::Style::Guidelines::LimitOctaveLeaps, HeadMusic::Style::Guidelines::MostlyConjunct, HeadMusic::Style::Guidelines::SingableIntervals, HeadMusic::Style::Guidelines::SingableRange ].freeze
- MOVING_MELODIC_CORE =
Guidelines shared by every moving species (second through fifth), whose melodies progress within the bar rather than holding a whole note as in first species. Subclasses splat this in alongside MELODIC_CORE.
[ HeadMusic::Style::Guidelines::AlwaysMove, HeadMusic::Style::Guidelines::EndOnTonic, HeadMusic::Style::Guidelines::FrequentDirectionChanges, HeadMusic::Style::Guidelines::NoRestsAfterNote, HeadMusic::Style::Guidelines::NoteFillsFinalBar, HeadMusic::Style::Guidelines::PrepareOctaveLeaps, HeadMusic::Style::Guidelines::StartOnPerfectConsonance, HeadMusic::Style::Guidelines::StepOutOfUnison, HeadMusic::Style::Guidelines::StepUpToFinalNote ].freeze
Class Method Summary collapse
-
.moving_species_ruleset(*additional) ⇒ Object
Builds a moving-species RULESET: the shared melodic and moving cores plus the species-specific guidelines passed in.
Class Method Details
.moving_species_ruleset(*additional) ⇒ Object
Builds a moving-species RULESET: the shared melodic and moving cores plus the species-specific guidelines passed in.
35 36 37 |
# File 'lib/head_music/style/guides/species_melody.rb', line 35 def self.moving_species_ruleset(*additional) [*MELODIC_CORE, *MOVING_MELODIC_CORE, *additional].freeze end |