Class: HeadMusic::Rudiment::DiatonicContext

Inherits:
TonalContext show all
Defined in:
lib/head_music/rudiment/diatonic_context.rb

Overview

Abstract class representing a diatonic tonal context (7-note scale system)

Direct Known Subclasses

Key, Mode

Instance Method Summary collapse

Constructor Details

This class inherits a constructor from HeadMusic::Rudiment::TonalContext

Instance Method Details

#key_signatureObject



14
15
16
# File 'lib/head_music/rudiment/diatonic_context.rb', line 14

def key_signature
  @key_signature ||= HeadMusic::Rudiment::KeySignature.from_scale(scale)
end

#parallelObject

Raises:

  • (NotImplementedError)


22
23
24
# File 'lib/head_music/rudiment/diatonic_context.rb', line 22

def parallel
  raise NotImplementedError, "Subclasses must implement #parallel"
end

#relativeObject

Raises:

  • (NotImplementedError)


18
19
20
# File 'lib/head_music/rudiment/diatonic_context.rb', line 18

def relative
  raise NotImplementedError, "Subclasses must implement #relative"
end

#scaleObject



10
11
12
# File 'lib/head_music/rudiment/diatonic_context.rb', line 10

def scale
  @scale ||= HeadMusic::Rudiment::Scale.get(tonic_spelling, scale_type)
end

#scale_typeObject

Raises:

  • (NotImplementedError)


6
7
8
# File 'lib/head_music/rudiment/diatonic_context.rb', line 6

def scale_type
  raise NotImplementedError, "Subclasses must implement #scale_type"
end