【问题标题】:Transform midi pitch bend to 0 to 4 logarithmic scale将 midi 弯音转换为 0 到 4 对数刻度
【发布时间】:2019-12-05 10:05:47
【问题描述】:

我有 midi 弯音消息,需要从 0 到 16368 之间的线性刻度转换为 0.0 到 4.0 之间的对数刻度。

我知道,当弯音为 12432 时,该值需要为 1.0,而在 16368 时,它应该为 4.0

如何快速编写函数以在这两种比例之间进行转换?

【问题讨论】:

  • 弯音范围是 0 到 16383,因为它是用 14 位编码的。但它应该被解释为一个有符号整数,值 = 8192 表示零弯曲。为什么你的最大值是 16368?
  • 这可能与 AudioKit 的类型转换有关,我会调查一下,但这与我的问题本身无关
  • MIDI 弯音值已经在对数刻度上,所以这个问题没有多大意义。标题也说 0 到 1,但 16368 应该变成 4?
  • 我更新了我的标题。你是什​​么意思弯音值在对数刻度上?当我将推子向上滑动一半时,输出大约是 16368 的一半,所以这表明它正在输出线性?

标签: swift math midi


【解决方案1】:

我不确定你想要达到什么目标。但是对数有一条垂直渐近线。所以,你应该定义横坐标的左右边界。可能的公式之一:

y = 4 * ln( (x + 1) * (e - 1) / 16368)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 2022-10-30
    • 1970-01-01
    相关资源
    最近更新 更多