A scale type describes the intervals contained in a scale, with no specific root pitch class. E.g. the "major scale."
Music.Internal.ScaleType.ScaleType
mode : Basics.Int -> ScaleType -> ScaleType
Get a mode of a scale type by shifting the order of its intervals. For example, the Phrygian mode is the third mode of the major scale:
mode 3 major == phrygian
Note: like many numbers in music theory, modes are 1-based; 2
means the second mode of the scale type. 0 and negative integers are ignored.
toList : ScaleType -> List Music.Internal.Interval.Interval
Get the intervals contained in the scale type:
toList major
== [ Interval.perfectUnison
, Interval.majorSecond
, Interval.majorThird
, Interval.perfectFourth
, Interval.perfectFifth
, Interval.majorSixth
, Interval.majorSeventh
]
major : ScaleType
Same as ionian
minor : ScaleType
Also known as the "natural minor" scale. Same as aeolian
ionian : ScaleType
dorian : ScaleType
phrygian : ScaleType
lydian : ScaleType
mixolydian : ScaleType
aeolian : ScaleType
locrian : ScaleType
melodicMinor : ScaleType
dorianFlat2 : ScaleType
lydianAugmented : ScaleType
acoustic : ScaleType
majorMinor : ScaleType
minorLocrian : ScaleType
superlocrian : ScaleType
harmonicMinor : ScaleType
locrianNatural6 : ScaleType
majorAugmented : ScaleType
lydianDiminished : ScaleType
phrygianDominant : ScaleType
aeolianHarmonic : ScaleType
ultralocrian : ScaleType
diminishedWholeToneHalfTone : ScaleType
diminishedHalfToneWholeTone : ScaleType
wholeTone : ScaleType
majorPentatonic : ScaleType
minorPentatonic : ScaleType
customPentatonic : { rootToSecond : Music.Internal.Interval.Interval, rootToThird : Music.Internal.Interval.Interval, rootToFourth : Music.Internal.Interval.Interval, rootToFifth : Music.Internal.Interval.Interval } -> ScaleType
Define a custom scale type with 5 degrees:
customPentatonic
{ rootToSecond = Interval.minorThird
, rootToThird = Interval.perfectFourth
, rootToFourth = Interval.perfectFifth
, rootToFifth = Interval.minorSeventh
}
== minorPentatonic
customHexatonic : { rootToSecond : Music.Internal.Interval.Interval, rootToThird : Music.Internal.Interval.Interval, rootToFourth : Music.Internal.Interval.Interval, rootToFifth : Music.Internal.Interval.Interval, rootToSixth : Music.Internal.Interval.Interval } -> ScaleType
Define a custom scale type with 6 degrees:
customHexatonic
{ rootToSecond = Interval.majorSecond
, rootToThird = Interval.majorThird
, rootToFourth = Interval.augmentedFourth
, rootToFifth = Interval.minorSixth
, rootToSixth = Interval.minorSeventh
}
== wholeTone
customHeptatonic : { rootToSecond : Music.Internal.Interval.Interval, rootToThird : Music.Internal.Interval.Interval, rootToFourth : Music.Internal.Interval.Interval, rootToFifth : Music.Internal.Interval.Interval, rootToSixth : Music.Internal.Interval.Interval, rootToSeventh : Music.Internal.Interval.Interval } -> ScaleType
Define a custom scale type with 7 degrees:
customHeptatonic
{ rootToSecond = Interval.majorSecond
, rootToThird = Interval.minorThird
, rootToFourth = Interval.perfectFourth
, rootToFifth = Interval.perfectFifth
, rootToSixth = Interval.majorSixth
, rootToSeventh = Interval.minorSeventh
}
== dorian
customOctatonic : { rootToSecond : Music.Internal.Interval.Interval, rootToThird : Music.Internal.Interval.Interval, rootToFourth : Music.Internal.Interval.Interval, rootToFifth : Music.Internal.Interval.Interval, rootToSixth : Music.Internal.Interval.Interval, rootToSeventh : Music.Internal.Interval.Interval, rootToEighth : Music.Internal.Interval.Interval } -> ScaleType
Define a custom scale type with 8 degrees:
customOctatonic
{ rootToSecond = Interval.majorSecond
, rootToThird = Interval.minorThird
, rootToFourth = Interval.perfectFourth
, rootToFifth = Interval.diminishedFifth
, rootToSixth = Interval.minorSixth
, rootToSeventh = Interval.majorSixth
, rootToEighth = Interval.majorSeventh
}
== diminishedWholeToneHalfTone