Class: HeadMusic::Analysis::IntervalConsonance
- Inherits:
-
Object
- Object
- HeadMusic::Analysis::IntervalConsonance
- 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
-
#interval ⇒ Object
readonly
Returns the value of attribute interval.
-
#style_tradition ⇒ Object
readonly
Returns the value of attribute style_tradition.
Instance Method Summary collapse
- #classification ⇒ Object
- #consonance ⇒ Object
- #consonant? ⇒ Boolean
- #contextual? ⇒ Boolean
- #dissonance? ⇒ Boolean
- #dissonant? ⇒ Boolean
- #harsh_dissonance? ⇒ Boolean
- #imperfect_consonance? ⇒ Boolean
-
#initialize(interval, style_tradition = HeadMusic::Style::ModernTradition.new) ⇒ IntervalConsonance
constructor
A new instance of IntervalConsonance.
- #mild_dissonance? ⇒ Boolean
- #perfect_consonance? ⇒ Boolean
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
#interval ⇒ Object (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_tradition ⇒ Object (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
#classification ⇒ Object
12 13 14 |
# File 'lib/head_music/analysis/interval_consonance.rb', line 12 def classification @classification ||= style_tradition.consonance_classification(interval) end |
#consonance ⇒ Object
16 17 18 |
# File 'lib/head_music/analysis/interval_consonance.rb', line 16 def consonance @consonance ||= HeadMusic::Rudiment::Consonance.get(classification) end |
#consonant? ⇒ 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
28 29 30 |
# File 'lib/head_music/analysis/interval_consonance.rb', line 28 def contextual? classification == HeadMusic::Rudiment::Consonance::CONTEXTUAL end |
#dissonance? ⇒ Boolean
48 49 50 |
# File 'lib/head_music/analysis/interval_consonance.rb', line 48 def dissonance? classification == HeadMusic::Rudiment::Consonance::DISSONANCE end |
#dissonant? ⇒ 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
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
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
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
32 33 34 |
# File 'lib/head_music/analysis/interval_consonance.rb', line 32 def perfect_consonance? classification == HeadMusic::Rudiment::Consonance::PERFECT_CONSONANCE end |