ios - AudioKit:如何使 AnalogSynthX-Example 的旋钮呈指数而不是线性?

标签 ios swift audiokit

对于大多数情况下的音量控制,如果旋钮值以指数或对数变化而不是线性变化会更好。 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 存储库中还有新的旋钮。这些改进的旋钮控件具有可调节的锥度曲线缩放和范围设置:

https://github.com/AudioKit/ROMPlayer

关于ios - AudioKit:如何使 AnalogSynthX-Example 的旋钮呈指数而不是线性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49561858/

相关文章:

ios - 在整个应用生命周期中的 Firebase 观察者

ios - 是否可以将 float 组传递给 iOS SceneKit 顶点着色器修改器?

ios - 获取设备音量 - 问题

audiokit - AKMIDICallbackInstrument - 未调用回调

iOS 6.1 XCode 4.6 - imageNamed 永远不会返回@2x 版本

ios - 使用容器 View 时,Delegate 为 nil

ios - iOS 模拟器的 GPX 文件

ios - 在 iOS 中跟踪 WKWebView 线程

c++ - 使用 C++ 并作为框架编译的 Cocoapods 规范

ios - 分配 : *** error for object 0x1746ea3fe: Invalid pointer