         tuningTable(fromFrequencies: equalTempermentFrequencies)
     }
 
-    // create the tuning using the input frequencies
+    /// Create the tuning using the input frequencies
     public func tuningTable(fromFrequencies inputFrequencies: [Frequency]) {
         if inputFrequencies.isEmpty {
             AKLog("No input frequencies")

    private var content = [Frequency](repeating: 1.0, count: midiNoteCount)
    private var frequencies = [Frequency]()

    // default is 12ET
    public override init() {
        super.init()
        twelveToneEqualTemperament()
    }

    // getter
    public func frequency(forNoteNumber noteNumber: MIDINoteNumber) -> Frequency {
        return content[Int(noteNumber)]
    }
    // setter
    public func setFrequency(_ frequency: Frequency, at noteNumber: MIDINoteNumber) {
        content[Int(noteNumber)] = frequency
    }

    // Default tuning table is 12ET.
    // Note this is [nearly] equivalent to 440.0*exp2((noteNumber - 69.0)/12.0))
    public func twelveToneEqualTemperament() {
        var equalTempermentFrequencies = [Frequency](repeatElement(1.0, count: 12))
        for i in 0 ... 11 {

        return trimmedString
    }

    /// Get frequencies from a Scala string
    open func frequencies(fromScalaString rawStr: String?) -> [Frequency]? {
        guard let inputStr = rawStr else {
            return nil
