         parameterTree.implementorStringFromValueCallback = { param, value in
             if let floatValue = value?.pointee {
                 if param == self.volumeControl {
-                    return String(format: "%.3f", floatValue)
+                    return String(format: "%.2f", floatValue)
                 }
                 if param == self.filterControl {
-                    return String(format: "%.3f HZ", floatValue)
+                    let denorm = Double(floatValue).denormalized(to: self.filterRange, taper: self.filterTaper)
+                    return String(format: "%.3f Hz", AUValue(denorm))
                 }
                 // if param == other values here...
             }

            let value = Double(floatValue)
            if param == self.volumeControl {
                self.volume.gain = value
                print("volume set to \(value)")
            }
            if param == self.filterControl {
                self.filter.cutoffFrequency = value
                print("filter set to \(value)")
            }
            // if param == other values here...
        }

        createParameterSetters()
        createParameterGetters()
        createParameterDisplays()
        setDefaultAuValues()
    }

    func setDefaultAuValues() {
        volumeControl.value = 0.666
        filterControl.value = 1.0
    }

    private func createParameterSetters() {
