ScaleType

public struct ScaleType: Equatable

Represents scale by the intervals between note sequences.

  • Major scale.

    Declaration

    Swift

    public static let major = ScaleType(intervals: ScaleType.ionian.intervals, description: "Major")
  • Minor scale.

    Declaration

    Swift

    public static let minor = ScaleType(intervals: ScaleType.aeolian.intervals, description: "Minor")
  • Harmonic minor scale.

    Declaration

    Swift

    public static let harmonicMinor = ScaleType(intervals: [.P1, .M2, .m3, .P4, .P5, .m6, .M7], description: "Harmonic Minor")
  • Melodic minor scale.

    Declaration

    Swift

    public static let melodicMinor = ScaleType(intervals: [.P1, .M2, .m3, .P4, .P5, .M6, .m7], description: "Melodic Minor")
  • Pentatonic major scale.

    Declaration

    Swift

    public static let pentatonicMajor = ScaleType(intervals: [.P1, .M2, .M3, .P5, .M6], description: "Pentatonic Major")
  • Pentatonic minor scale.

    Declaration

    Swift

    public static let pentatonicMinor = ScaleType(intervals: [.P1, .m3, .P4, .P5, .m7], description: "Pentatonic Minor")
  • Pentatonic blues scale.

    Declaration

    Swift

    public static let pentatonicBlues = ScaleType(intervals: [.P1, .m3, .P4, .d5, .P5, .m7], description: "Pentatonic Blues")
  • Pentatonic neutral scale.

    Declaration

    Swift

    public static let pentatonicNeutral = ScaleType(intervals: [.P1, .M2, .P4, .P5, .m7], description: "Pentatonic Neutral")
  • Ionian scale.

    Declaration

    Swift

    public static let ionian = ScaleType(intervals: [.P1, .M2, .M3, .P4, .P5, .M6, .M7], description: "Ionian")
  • Aeolian scale.

    Declaration

    Swift

    public static let aeolian = ScaleType(intervals: [.P1, .M2, .m3, .P4, .P5, .m6, .m7], description: "Aeolian")
  • Dorian scale.

    Declaration

    Swift

    public static let dorian = ScaleType(intervals: [.P1, .M2, .m3, .P4, .P5, .M6, .m7], description: "Dorian")
  • Mixolydian scale.

    Declaration

    Swift

    public static let mixolydian = ScaleType(intervals: [.P1, .M2, .M3, .P4, .P5, .M6, .m7], description: "Mixolydian")
  • Phrygian scale.

    Declaration

    Swift

    public static let phrygian = ScaleType(intervals: [.P1, .m2, .m3, .P4, .P5, .m6, .m7], description: "Phrygian")
  • Lydian scale.

    Declaration

    Swift

    public static let lydian = ScaleType(intervals: [.P1, .M2, .M3, .d5, .P5, .M6, .M7], description: "Lydian")
  • Locrian scale.

    Declaration

    Swift

    public static let locrian = ScaleType(intervals: [.P1, .m2, .m3, .P4, .d5, .m6, .m7], description: "Locrian")
  • Half diminished scale.

    Declaration

    Swift

    public static let dimHalf = ScaleType(intervals: [.P1, .m2, .m3, .M3, .d5, .P5, .M6, .m7], description: "Half Diminished")
  • Whole diminished scale.

    Declaration

    Swift

    public static let dimWhole = ScaleType(intervals: [.P1, .M2, .m3, .P4, .d5, .m6, .M6, .M7], description: "Whole Diminished")
  • Whole scale.

    Declaration

    Swift

    public static let whole = ScaleType(intervals: [.P1, .M2, .M3, .d5, .m6, .m7], description: "Whole")
  • Augmented scale.

    Declaration

    Swift

    public static let augmented = ScaleType(intervals: [.m3, .M3, .P5, .m6, .M7], description: "Augmented")
  • Chromatic scale.

    Declaration

    Swift

    public static let chromatic = ScaleType(intervals: [.P1, .m2, .M2, .m3, .M3, .P4, .d5, .P5, .m6, .M6, .m7, .M7], description: "Chromatic")
  • Roumanian minor scale.

    Declaration

    Swift

    public static let romanianMinor = ScaleType(intervals: [.P1, .M2, .m3, .d5, .P5, .M6, .m7], description: "Romanian Minor")
  • Spanish gypsy scale.

    Declaration

    Swift

    public static let spanishGypsy = ScaleType(intervals: [.P1, .m2, .M3, .P4, .P5, .m6, .m7], description: "Spanish Gypsy")
  • Blues scale.

    Declaration

    Swift

    public static let blues = ScaleType(intervals: [.P1, .m3, .P4, .d5, .P5, .m7], description: "Blues")
  • Diatonic scale.

    Declaration

    Swift

    public static let diatonic = ScaleType(intervals: [.P1, .M2, .M3, .P5, .M6], description: "Diatonic")
  • Dobule harmonic scale.

    Declaration

    Swift

    public static let doubleHarmonic = ScaleType(intervals: [.P1, .m2, .M3, .P4, .P5, .m6, .M7], description: "Double Harmonic")
  • Eight tone spanish scale.

    Declaration

    Swift

    public static let eightToneSpanish = ScaleType(intervals: [.P1, .m2, .m3, .M3, .P4, .d5, .m6, .m7], description: "Eight Tone Spanish")
  • Enigmatic scale.

    Declaration

    Swift

    public static let enigmatic = ScaleType(intervals: [.P1, .m2, .M3, .d5, .m6, .m7, .M7], description: "Enigmatic")
  • Leading whole tone scale.

    Declaration

    Swift

    public static let leadingWholeTone = ScaleType(intervals: [.P1, .M2, .M3, .d5, .m6, .M6, .m7], description: "Leading Whole Tone")
  • Lydian augmented scale.

    Declaration

    Swift

    public static let lydianAugmented = ScaleType(intervals: [.P1, .M2, .M3, .d5, .m6, .M6, .M7], description: "Lydian Augmented")
  • Neopolitan major scale.

    Declaration

    Swift

    public static let neopolitanMajor = ScaleType(intervals: [.P1, .m2, .m3, .P4, .P5, .M6, .M7], description: "Neopolitan Major")
  • Neopolitan minor scale.

    Declaration

    Swift

    public static let neopolitanMinor = ScaleType(intervals: [.P1, .m2, .m3, .P4, .P5, .m6, .m7], description: "Neopolitan Minor")
  • Pelog scale.

    Declaration

    Swift

    public static let pelog = ScaleType(intervals: [.P1, .m2, .m3, .d5, .m7, .M7], description: "Pelog")
  • Prometheus scale.

    Declaration

    Swift

    public static let prometheus = ScaleType(intervals: [.P1, .M2, .M3, .d5, .M6, .m7], description: "Prometheus")
  • Prometheus neopolitan scale.

    Declaration

    Swift

    public static let prometheusNeopolitan = ScaleType(intervals: [.P1, .m2, .M3, .d5, .M6, .m7], description: "Prometheus Neopolitan")
  • Six tone symmetrical scale.

    Declaration

    Swift

    public static let sixToneSymmetrical = ScaleType(intervals: [.P1, .m2, .M3, .P4, .m6, .M6], description: "Six Tone Symmetrical")
  • Super locrian scale.

    Declaration

    Swift

    public static let superLocrian = ScaleType(intervals: [.P1, .m2, .m3, .M3, .d5, .m6, .m7], description: "Super Locrian")
  • Lydian minor scale.

    Declaration

    Swift

    public static let lydianMinor = ScaleType(intervals: [.P1, .M2, .M3, .d5, .P5, .m6, .m7], description: "Lydian Minor")
  • Lydian diminished scale.

    Declaration

    Swift

    public static let lydianDiminished = ScaleType(intervals: [.P1, .M2, .m3, .d5, .P5, .m6, .m7], description: "Lydian Diminished")
  • Nine tone scale.

    Declaration

    Swift

    public static let nineToneScale = ScaleType(intervals: [.P1, .M2, .m3, .M3, .d5, .P5, .m6, .M6, .M7], description: "Nine Tone Scale")
  • Auxiliary diminished scale.

    Declaration

    Swift

    public static let auxiliaryDiminished = ScaleType(intervals: [.P1, .M2, .m3, .P4, .d5, .m6, .M6, .M7], description: "Auxiliary Diminished")
  • Auxiliary augmaneted scale.

    Declaration

    Swift

    public static let auxiliaryAugmented = ScaleType(intervals: [.P1, .M2, .M3, .d5, .m6, .m7], description: "Auxiliary Augmented")
  • Auxiliary diminished blues scale.

    Declaration

    Swift

    public static let auxiliaryDimBlues = ScaleType(intervals: [.P1, .m2, .m3, .M3, .d5, .P5, .M6, .m7], description: "Auxiliary Diminished Blues")
  • Major locrian scale.

    Declaration

    Swift

    public static let majorLocrian = ScaleType(intervals: [.P1, .M2, .M3, .P4, .d5, .m6, .m7], description: "Major Locrian")
  • Overtone scale.

    Declaration

    Swift

    public static let overtone = ScaleType(intervals: [.P1, .M2, .M3, .d5, .P5, .M6, .m7], description: "Overtone")
  • Diminished whole tone scale.

    Declaration

    Swift

    public static let diminishedWholeTone = ScaleType(intervals: [.P1, .m2, .m3, .M3, .d5, .m6, .m7], description: "Diminished Whole Tone")
  • Pure minor scale.

    Declaration

    Swift

    public static let pureMinor = ScaleType(intervals: [.P1, .M2, .m3, .P4, .P5, .m6, .m7], description: "Pure Minor")
  • Dominant seventh scale.

    Declaration

    Swift

    public static let dominant7th = ScaleType(intervals: [.P1, .M2, .M3, .P4, .P5, .M6, .m7], description: "Dominant 7th")
  • Intervals of the scale.

    Declaration

    Swift

    public let intervals: [Interval]
  • Description of the scale.

    Declaration

    Swift

    public let description: String
  • Initilize the scale with series of its intervals.

    Declaration

    Swift

    public init(intervals: [Interval], description: String = "")

    Parameters

    intervals

    Intervals of the scale.

    description

    Description of the scale.

  • all

    An array of all ScaleType values.

    Declaration

    Swift

    public static var all: [ScaleType]
  • Checks the equability between two ScaleTypes by their intervals.

    Declaration

    Swift

    public static func == (left: ScaleType, right: ScaleType) -> Bool

    Parameters

    left

    Left handside of the equation.

    right

    Right handside of the equation.

    Return Value

    Returns Bool value of equation of two given scale types.

  • Decodes struct with a decoder.

    Throws

    Tries to initlize struct with a decoder.

    Declaration

    Swift

    public init(from decoder: Decoder) throws

    Parameters

    decoder

    Decodes encoded struct.

  • Encodes struct with an ecoder.

    Throws

    Tries to encode struct.

    Declaration

    Swift

    public func encode(to encoder: Encoder) throws

    Parameters

    encoder

    Encodes struct.