Class: HeadMusic::Style::Guidelines::ThirdSpeciesDissonanceTreatment

Inherits:
WeakBeatDissonanceTreatment show all
Includes:
DissonanceFigureDetection
Defined in:
lib/head_music/style/guidelines/third_species_dissonance_treatment.rb

Overview

A counterpoint guideline for third-species dissonance treatment. Every dissonant note on beats 2, 3, or 4 must be treated as a passing tone, neighbor tone, nota cambiata, or double neighbor figure.

Constant Summary collapse

MESSAGE =
"Treat dissonances as passing tones, neighbor tones, cambiata, or double neighbor figures."

Instance Method Summary collapse

Constructor Details

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

Instance Method Details

#cambiata_as_note_2?(index) ⇒ Boolean (private) Originally defined in module DissonanceFigureDetection

Returns:

  • (Boolean)

#cambiata_dissonance?(note) ⇒ Boolean (private) Originally defined in module DissonanceFigureDetection

Nota cambiata: a five-note figure where note 2 is dissonant, approached by step from note 1, leaps a third in the same direction to note 3, then notes 3-4-5 proceed stepwise in the opposite direction. Notes 1, 3, and 5 must be consonant with the CF.

Returns:

  • (Boolean)

#consonant_with_cantus?(note) ⇒ Boolean (private) Originally defined in module DissonanceFigureDetection

Returns:

  • (Boolean)

#double_neighbor_figure?(index, offset:) ⇒ Boolean (private) Originally defined in module DissonanceFigureDetection

Double neighbor: a four-note figure within one bar. Beats 1 and 4 are the same pitch (consonant), beats 2 and 3 are upper and lower neighbors connected by a leap of a third.

Returns:

  • (Boolean)

#double_neighbor_member?(note) ⇒ Boolean (private) Originally defined in module DissonanceFigureDetection

Returns:

  • (Boolean)

#melodic_interval_between(note1, note2) ⇒ Object (private) Originally defined in module DissonanceFigureDetection

#neighbor_tone?(note) ⇒ Boolean (private)

Neighbor tone: approached by step, left by step in the opposite direction.

Returns:

  • (Boolean)


19
20
21
# File 'lib/head_music/style/guidelines/third_species_dissonance_treatment.rb', line 19

def neighbor_tone?(note)
  stepwise_figure?(note, same_direction: false)
end

#recognized_figure?(note) ⇒ Boolean (private)

Returns:

  • (Boolean)


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

def recognized_figure?(note)
  super || neighbor_tone?(note) || cambiata_dissonance?(note) || double_neighbor_member?(note)
end