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

Usage

a_harmonic_minor = Scales[:et12][440.0][:minor_harmonic][69]
a_harmonic_minor.vii  # G# (80) - raised 7th, not G (79)
a_harmonic_minor.vi   # F (77)
# Augmented second: F to G# = 3 semitones

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



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

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



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

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



105
106
107
# File 'lib/musa-dsl/music/scale_kinds/minor_harmonic_scale_kind.rb', line 105

def pitches
  @@pitches
end