Class: HeadMusic::Style::MedievalTradition

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

Overview

Medieval 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
# File 'lib/head_music/style/medieval_tradition.rb', line 3

def consonance_classification(interval)
  interval_mod = interval.simple_semitones

  # Check for augmented or diminished intervals
  if interval.augmented? || interval.diminished?
    return HeadMusic::Rudiment::Consonance::DISSONANCE
  end

  case interval_mod
  when 0, 12  # Unison, Octave
    HeadMusic::Rudiment::Consonance::PERFECT_CONSONANCE
  when 7      # Perfect Fifth
    HeadMusic::Rudiment::Consonance::PERFECT_CONSONANCE
  when 5      # Perfect Fourth - consonant in medieval music
    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
  else
    HeadMusic::Rudiment::Consonance::DISSONANCE
  end
end