     switch self {
     case .major: return "Major"
     case .minor: return "Minor"
-    case .harmonicMinor: return "Harmonic minor"
+    case .harmonicMinor: return "Harmonic Minor"
+    case .melodicMinor: return "Melodic Minor"
+    case .pentatonicMajor: return "Pentatonic Major"
+    case .pentatonicMinor: return "Pentatonic Minor"
+    case .pentatonicBlues: return "Pentatonic Blues"
+    case .pentatonicNeutral: return "Pentatonic Neutral"
+    case .ionian: return "Ionian"
+    case .aeolian: return "Aeolian"
     case .dorian: return "Dorian"
+    case .mixolydian: return "Mixolydian"
     case .phrygian: return "Phrygian"
     case .lydian: return "Lydian"
-    case .mixolydian: return "Mixolydian"
     case .locrian: return "Locrian"
+    case .dimHhalf: return "Dim half"
+    case .dimWhole: return "Dim whole"
+    case .whole: return "Whole"
+    case .augmented: return "Augmented"
+    case .chromatic: return "Chromatic"
+    case .roumanianMinor: return "Roumanian Minor"
+    case .spanishGypsy: return "Spanish Gypsy"
+    case .blues: return "Blues"
+    case .diatonic: return "Diatonic"
+    case .doubleHarmonic: return "Double Harmonic"
+    case .eightToneSpanish: return "Eight Tone Spanish"
+    case .enigmatic: return "Enigmatic"
+    case .leadingWholeTone: return "Leading Whole Tone"
+    case .lydianAugmented: return "Lydian Augmented"
+    case .neopolitanMajor: return "Neopolitan Major"
+    case .neopolitanMinor: return "Neopolitan Minor"
+    case .pelog: return "Pelog"
+    case .prometheus: return "Prometheus"
+    case .prometheusNeopolitan: return "Prometheus Neopolitan"
+    case .sixToneSymmetrical: return "Six Tone Symmetrical"
+    case .superLocrian: return "Super Locrian"
+    case .lydianMinor: return "Lydian Minor"
+    case .lydianDiminished: return "Lydian Diminished"
+    case .nineToneScale: return "Nine Tone Scale"
+    case .auxiliaryDiminished: return "Auxiliary Diminished"
+    case .auxiliaryAugmented: return "Auxiliary Augmented"
+    case .auxiliaryDimBlues: return "Auxiliary Dim Blues"
+    case .majorLocrian: return "Major Locrian"
+    case .overtone: return "Overtone"
+    case .diminishedWholeTone: return "Diminished Whole Tone"
+    case .pureMinor: return "Pure Minor"
+    case .dominant7th: return "Dominant 7th"
     case .custom: return "Custom scale"
     }
   }

  case major
  case minor
  case harmonicMinor
  case dorian
  case phrygian
  case lydian
  case mixolydian
  case locrian
  case custom(intervals: [Interval])

  /// Intervals of the scale.

  /// An array of all `ScaleType` values.
  public static var all: [ScaleType] {
    return [
      .major,
      .minor,
      .harmonicMinor,
      .melodicMinor,
      .pentatonicMajor,
      .pentatonicMinor,
      .pentatonicBlues,
      .pentatonicNeutral,
      .ionian,
      .aeolian,
      .dorian,
      .mixolydian,
      .phrygian,
      .lydian,
      .locrian,
      .dimHhalf,
      .dimWhole,
      .whole,
      .augmented,
      .chromatic,
      .roumanianMinor,
      .spanishGypsy,
      .blues,
      .diatonic,
      .doubleHarmonic,
      .eightToneSpanish,
      .enigmatic,
      .leadingWholeTone,
      .lydianAugmented,
      .neopolitanMajor,
      .neopolitanMinor,
      .pelog,
      .prometheus,
      .prometheusNeopolitan,
      .sixToneSymmetrical,
      .superLocrian,
      .lydianMinor,
      .lydianDiminished,
      .nineToneScale,
      .auxiliaryDiminished,
      .auxiliaryAugmented,
      .auxiliaryDimBlues,
      .majorLocrian,
      .overtone,
      .diminishedWholeTone,
      .pureMinor,
      .dominant7th,
    ]
  }
}
