Class: HeadMusic::Analysis::IntervalConsonance

Inherits:
Object
  • Object
show all
Defined in:
lib/head_music/analysis/interval_consonance.rb

Overview

Analysis class that combines an interval with a style tradition to determine consonance

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(interval, style_tradition = HeadMusic::Style::ModernTradition.new) ⇒ IntervalConsonance

Returns a new instance of IntervalConsonance.



5
6
7
8
9
10
# File 'lib/head_music/analysis/interval_consonance.rb', line 5

def initialize(interval, style_tradition = HeadMusic::Style::ModernTradition.new)
  @interval = interval
  @style_tradition = style_tradition.is_a?(HeadMusic::Style::Tradition) ?
                     style_tradition :
                     HeadMusic::Style::Tradition.get(style_tradition)
end

Instance Attribute Details

#intervalObject (readonly)

Returns the value of attribute interval.



3
4
5
# File 'lib/head_music/analysis/interval_consonance.rb', line 3

def interval
  @interval
end

#style_traditionObject (readonly)

Returns the value of attribute style_tradition.



3
4
5
# File 'lib/head_music/analysis/interval_consonance.rb', line 3

def style_tradition
  @style_tradition
end

Instance Method Details

#classificationObject



12
13
14
# File 'lib/head_music/analysis/interval_consonance.rb', line 12

def classification
  @classification ||= style_tradition.consonance_classification(interval)
end

#consonanceObject



16
17
18
# File 'lib/head_music/analysis/interval_consonance.rb', line 16

def consonance
  @consonance ||= HeadMusic::Rudiment::Consonance.get(classification)
end

#consonant?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/head_music/analysis/interval_consonance.rb', line 20

def consonant?
  [HeadMusic::Rudiment::Consonance::PERFECT_CONSONANCE, HeadMusic::Rudiment::Consonance::IMPERFECT_CONSONANCE].include?(classification)
end

#contextual?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/head_music/analysis/interval_consonance.rb', line 28

def contextual?
  classification == HeadMusic::Rudiment::Consonance::CONTEXTUAL
end

#dissonance?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/head_music/analysis/interval_consonance.rb', line 48

def dissonance?
  classification == HeadMusic::Rudiment::Consonance::DISSONANCE
end

#dissonant?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/head_music/analysis/interval_consonance.rb', line 24

def dissonant?
  [HeadMusic::Rudiment::Consonance::MILD_DISSONANCE, HeadMusic::Rudiment::Consonance::HARSH_DISSONANCE, HeadMusic::Rudiment::Consonance::DISSONANCE].include?(classification)
end

#harsh_dissonance?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/head_music/analysis/interval_consonance.rb', line 44

def harsh_dissonance?
  classification == HeadMusic::Rudiment::Consonance::HARSH_DISSONANCE
end

#imperfect_consonance?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/head_music/analysis/interval_consonance.rb', line 36

def imperfect_consonance?
  classification == HeadMusic::Rudiment::Consonance::IMPERFECT_CONSONANCE
end

#mild_dissonance?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/head_music/analysis/interval_consonance.rb', line 40

def mild_dissonance?
  classification == HeadMusic::Rudiment::Consonance::MILD_DISSONANCE
end

#perfect_consonance?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/head_music/analysis/interval_consonance.rb', line 32

def perfect_consonance?
  classification == HeadMusic::Rudiment::Consonance::PERFECT_CONSONANCE
end