         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...
        }

                return AUValue(self.volume.gain)
            }
            if param == self.filterControl {
                let val = self.filter.cutoffFrequency.normalized(from: self.filterRange, taper: self.filterTaper)
                return AUValue(val)
            }
            // if param == other values here...
            return 0
