     case .phrygian: return "Phrygian"
     case .lydian: return "Lydian"
     case .locrian: return "Locrian"
-    case .dimHhalf: return "Dim half"
-    case .dimWhole: return "Dim whole"
+    case .dimHalf: return "Half Diminished"
+    case .dimWhole: return "Whole Diminished"
     case .whole: return "Whole"
     case .augmented: return "Augmented"
     case .chromatic: return "Chromatic"

  }
}

// MARK: Tempo

/// Defines the tempo of the music with beats per second and time signature.
public struct Tempo {


// MARK: - ScaleType

/// Represents scale by the intervals between note sequences.
public enum ScaleType {
  /// Major scale.
  case major
  /// Minor scale.
  case minor
  /// Harmonic minor scale.
  case harmonicMinor
  /// Melodic minor scale.
  case melodicMinor
  /// Pentatonic major scale.
  case pentatonicMajor
  /// Pentatonic minor scale.
  case pentatonicMinor
  /// Pentatonic blues scale.
  case pentatonicBlues
  /// Pentatonic neutral scale.
  case pentatonicNeutral
  /// Ionian scale.
  case ionian
  /// Aeolian scale.
  case aeolian
  /// Dorian scale.
  case dorian
  /// Mixolydian scale.
  case mixolydian
  /// Phrygian scale.
  case phrygian
  /// Lydian scale.
  case lydian
  /// Locrian scale.
  case locrian
  /// Half diminished scale.
  case dimHalf
  /// Whole diminished scale.
  case dimWhole
  /// Whole scale.
  case whole
  /// Augmented scale.
  case augmented
  /// Chromatic scale.
  case chromatic
  /// Roumanian minor scale.
  case roumanianMinor
  /// Spanish gypsy scale.
  case spanishGypsy
  /// Blues scale.
  case blues
  /// Diatonic scale.
  case diatonic
  /// Dobule harmonic scale.
  case doubleHarmonic
  /// Eight tone spanish scale.
  case eightToneSpanish
  /// Enigmatic scale.
  case enigmatic
  /// Leading whole tone scale.
  case leadingWholeTone
  /// Lydian augmented scale.
  case lydianAugmented
  /// Neopolitan major scale.
  case neopolitanMajor
  /// Neopolitan minor scale.
  case neopolitanMinor
  /// Pelog scale.
  case pelog
  /// Prometheus scale.
  case prometheus
  /// Prometheus neopolitan scale.
  case prometheusNeopolitan
  /// Six tone symmetrical scale.
  case sixToneSymmetrical
  /// Super locrian scale.
  case superLocrian
  /// Lydian minor scale.
  case lydianMinor
  /// Lydian diminished scale.
  case lydianDiminished
  /// Nine tone scale.
  case nineToneScale
  /// Auxiliary diminished scale.
  case auxiliaryDiminished
  /// Auxiliary augmaneted scale.
  case auxiliaryAugmented
  /// Auxiliary diminished blues scale.
  case auxiliaryDimBlues
  /// Major locrian scale.
  case majorLocrian
  /// Overtone scale.
  case overtone
  /// Diminished whole tone scale.
  case diminishedWholeTone
  /// Pure minor scale.
  case pureMinor
  /// Dominant seventh scale.
  case dominant7th
  /// Custom scale with given interval set.
  case custom(intervals: [Interval])

  /// Intervals of the scale.
