     case UserDefined
 }
 
+// FIXME: enum doesn't work as we need "A1", "B2" as well.
 typealias SoundName = String
 let SoundBaseA  = "A"
 let SoundBaseBb = "B♭"

    */
    private class func generateWholePure(tuningPureBase: [SoundName: Float]) -> [SoundName: Float] {
        var tuning = [SoundName: Float]()
        for octave in 1...Static.kMaxOctaveSuffix {
            let tuningForCurrentOctave = self.generateForOctave(octave, tuningBase: tuningPureBase)
            for (soundName, Frequency) in tuningForCurrentOctave {
                tuning[soundName] = Frequency

    tuningType:        TuningType.Equal,
    rootSound:         SoundBaseC,
    transpositionNote: SoundBaseC,
    octaveRange:       OctaveRange(start:1, end: 2)
  )
let tuning: [SoundName:Float] = Tuning.generateByInfo(info)
for sound in tuning.keys {
