Class: Musa::Scales::MinorHarmonicScaleKind Private

Inherits:
ScaleKind show all
Defined in:
lib/musa-dsl/music/scale_kinds/minor_harmonic_scale_kind.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Harmonic minor scale kind.

MinorHarmonicScaleKind defines the harmonic minor scale, a variation of the natural minor with a raised seventh degree. This creates a leading tone (major seventh) that resolves strongly to the tonic, giving the scale a more directed, dramatic character.

Pitch Structure

7 diatonic degrees plus extended harmony (8th-13th):

Scale Degrees (Roman numerals, lowercase for minor):

  • i (tonic): Root (0 semitones)
  • ii (supertonic): Major second (2 semitones)
  • iii (mediant): Minor third (3 semitones, relative major)
  • iv (subdominant): Perfect fourth (5 semitones)
  • v (dominant): Perfect fifth (7 semitones)
  • vi (submediant): Minor sixth (8 semitones)
  • vii (leading): Major seventh (11 semitones) ← RAISED from natural minor

Extended degrees: viii-xiii (compound intervals)

Key Difference from Natural Minor

The vii degree is raised from 10 semitones (minor seventh) to 11 semitones (major seventh), creating:

  • A leading tone that resolves strongly upward to the tonic
  • An augmented second interval between vi and vii (3 semitones)
  • A dominant seventh chord (v7) with strong resolution to i

Musical Character

The harmonic minor scale:

  • Maintains minor quality (minor third)
  • Provides strong dominant-to-tonic resolution
  • Creates exotic sound due to augmented second (vi-vii)
  • Common in classical, jazz, and Middle Eastern music

Function Aliases

Same as natural minor:

  • Numeric: _1, _2, _3, _4, _5, _6, _7
  • Roman: i, ii, iii, iv, v, vi, vii
  • Function: tonic, supertonic, mediant, subdominant, dominant, submediant, leading
  • Special: relative/relative_major for iii

Examples:

The raised seventh, and the gap it opens

a_harmonic = Scales[:et12][440.0][:minor_harmonic][69]

a_harmonic.vi.pitch   # => 77  (F)
a_harmonic.vii.pitch  # => 80  (G#, raised: it would be 79 in natural minor)

a_harmonic.vii.pitch - a_harmonic.vi.pitch  # => 3

# Three semitones between two consecutive degrees: the augmented second
# that gives this scale its sound, and the reason the seventh is raised
# at all -- a leading tone a semitone below the tonic.

See Also:

Constant Summary collapse

@@pitches =

This classvariable is part of a private API. You should avoid using this classvariable if possible, as it may be removed or be changed in the future.

[{ functions: %i[i _1 tonic],
pitch: 0 },
             { functions: %i[ii _2 supertonic],
pitch: 2 },
             { functions: %i[iii _3 mediant relative relative_major],
pitch: 3 },
             { functions: %i[iv _4 subdominant],
pitch: 5 },
             { functions: %i[v _5 dominant],
pitch: 7 },
             { functions: %i[vi _6 submediant],
pitch: 8 },
             { functions: %i[vii _7 leading],
pitch: 11 },
             { functions: %i[viii _8],
pitch: 12 },
             { functions: %i[ix _9],
pitch: 12 + 2 },
             { functions: %i[x _10],
pitch: 12 + 3 },
             { functions: %i[xi _11],
pitch: 12 + 5 },
             { functions: %i[xii _12],
pitch: 12 + 7 },
             { functions: %i[xiii _13],
pitch: 12 + 8 }].freeze

Class Method Summary collapse

Constructor Details

This class inherits a constructor from Musa::Scales::ScaleKind

Class Method Details

.gradesInteger

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Number of diatonic degrees.

Returns:

  • (Integer)

    7



116
117
118
# File 'lib/musa-dsl/music/scale_kinds/minor_harmonic_scale_kind.rb', line 116

def grades
  7
end

.idSymbol

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Scale kind identifier.

Returns:

  • (Symbol)

    :minor_harmonic



122
123
124
# File 'lib/musa-dsl/music/scale_kinds/minor_harmonic_scale_kind.rb', line 122

def id
  :minor_harmonic
end

.pitchesArray<Hash>

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Pitch structure.

Returns:

  • (Array<Hash>)

    pitch definitions with functions and offsets



110
111
112
# File 'lib/musa-dsl/music/scale_kinds/minor_harmonic_scale_kind.rb', line 110

def pitches
  @@pitches
end