Class: HeadMusic::Style::ModernTradition

Inherits:
Tradition
  • Object
show all
Defined in:
lib/head_music/style/modern_tradition.rb

Overview

Modern/standard practice tradition for interval consonance classification

Instance Method Summary collapse

Instance Method Details

#consonance_classification(interval) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/head_music/style/modern_tradition.rb', line 3

def consonance_classification(interval)
  interval_mod = interval.simple_semitones

  # Check for augmented or diminished intervals (except diminished fifth/augmented fourth)
  if (interval.augmented? || interval.diminished?) && interval_mod != 6
    return HeadMusic::Rudiment::Consonance::DISSONANCE
  end

  case interval_mod
  when 0  # Unison, Octave
    HeadMusic::Rudiment::Consonance::PERFECT_CONSONANCE
  when 7  # Perfect Fifth
    HeadMusic::Rudiment::Consonance::PERFECT_CONSONANCE
  when 3, 4  # Minor Third, Major Third
    HeadMusic::Rudiment::Consonance::IMPERFECT_CONSONANCE
  when 8, 9  # Minor Sixth, Major Sixth
    HeadMusic::Rudiment::Consonance::IMPERFECT_CONSONANCE
  when 5  # Perfect Fourth
    # Perfect fourth is contextual: consonant in upper voices, dissonant against bass
    HeadMusic::Rudiment::Consonance::CONTEXTUAL
  when 2, 10  # Major Second, Minor Seventh
    HeadMusic::Rudiment::Consonance::MILD_DISSONANCE
  when 1, 11  # Minor Second, Major Seventh
    HeadMusic::Rudiment::Consonance::HARSH_DISSONANCE
  when 6  # Tritone (Aug 4th/Dim 5th)
    HeadMusic::Rudiment::Consonance::DISSONANCE
  end
end