将 midi 弯音转换为 0 到 4 对数刻度
Posted
技术标签:
【中文标题】将 midi 弯音转换为 0 到 4 对数刻度【英文标题】:Transform midi pitch bend to 0 to 4 logarithmic scale 【发布时间】: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 的一半,所以这表明它正在输出线性? 【参考方案1】:我不确定你想要达到什么目标。但是对数有一条垂直渐近线。所以,你应该定义横坐标的左右边界。可能的公式之一:
y = 4 * ln( (x + 1) * (e - 1) / 16368)
【讨论】:
以上是关于将 midi 弯音转换为 0 到 4 对数刻度的主要内容,如果未能解决你的问题,请参考以下文章