对于大多数情况下的音量控制,如果旋钮值以指数或对数变化而不是线性变化会更好。 AudioKit AnalogSynthX-Example 类的 Knob.swift 中将值缩放到任何类型曲线的最佳位置在哪里?
我想到了
func setPercentagesWithTouchPoint(_ touchPoint: CGPoint) {
// Knobs assume up or right is increasing, and down or left is decreasing
let horizontalChange = Double(touchPoint.x - lastX) * knobSensitivity
value += horizontalChange * (maximum - minimum)
let verticalChange = Double(touchPoint.y - lastY) * knobSensitivity
value -= verticalChange * (maximum - minimum)
lastX = touchPoint.x
lastY = touchPoint.y
// TODO: map to exponential/log/any curve if -> knobType is .exp
// ...
delegate?.updateKnobValue(value, tag: self.tag)
}
但也许有人已经发明了这个轮子?谢谢!
最佳答案
谢谢你的提问。 Analog Synth X 存储库中的截止旋钮以对数方式缩放。您可以看一个简单的示例。
此外,AudioKit ROM Player 存储库中还有新的旋钮。这些改进的旋钮控件具有可调节的锥度曲线缩放和范围设置:
关于ios - AudioKit:如何使 AnalogSynthX-Example 的旋钮呈指数而不是线性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49561858/