         
         switch info.tuningType {
         case TuningType.Equal:
-            tuning = self.equalByInfo(info)
+            tuning = equalByInfo(info)
         case TuningType.PureMajor:
-            tuning = self.pureMajorByInfo(info)
+            tuning = pureMajorByInfo(info)
         case TuningType.PureMinor:
-            tuning = self.pureMinorByInfo(info)
+            tuning = pureMinorByInfo(info)
 //        case TuningType.Pythagorean:
 //        case TuningType.UserDefined:
         default:

    }
    
    private class func pureMajorByInfo(info: TuningInfo) -> [SoundName: Float] {
        let centOffsetsPureMajor: [Float] = self.centOffsetsForPureMajor()
        let tuningPureMajorBase = self.pureBase(info, centOffsets: centOffsetsPureMajor)
        let tuning = self.wholePure(info, tuningPureBase: tuningPureMajorBase)
        return tuning
    }
    
    private class func pureMinorByInfo(info: TuningInfo) -> [SoundName: Float] {
        let centOffsetsPureMinor: [Float] = self.centOffsetsForPureMinor()
        let tuningPureMinorBase = self.pureBase(info, centOffsets: centOffsetsPureMinor)
        let tuning = self.wholePure(info, tuningPureBase: tuningPureMinorBase)
        return tuning
    }
    

    
    private class func pureBase(info: TuningInfo, centOffsets: [Float]) ->[SoundName: Float] {
        var tuning = [SoundName: Float]()
        let soundNames = arrangeSoundNamesForRootSound(info.rootSound)

        // Calculatte based on equal-tuning
        let tuningEqualBase = equalBase(info.pitch, transpositionNote: info.transpositionNote)
        
        for i in 0..<soundNames.count {
            let sound = soundNames[i]
