【发布时间】:2015-12-30 23:17:25
【问题描述】:
我想我可以使用playbackRate 来拉伸样本,但是如何设置音高?我试图在不使用任何库的情况下实现这一目标。
我在规范中发现了一些关于多普勒音高效应的内容,但除此之外,我找不到任何与我的目标真正相关的内容。只是一个简单的音高转换,这甚至可能吗?如果是那怎么办?
编辑:难道playbackRate 也改变了音高,但浏览器应用了某种修正?我认为可能是这种情况。如果是这样的话,我必须禁用它。
【问题讨论】:
我想我可以使用playbackRate 来拉伸样本,但是如何设置音高?我试图在不使用任何库的情况下实现这一目标。
我在规范中发现了一些关于多普勒音高效应的内容,但除此之外,我找不到任何与我的目标真正相关的内容。只是一个简单的音高转换,这甚至可能吗?如果是那怎么办?
编辑:难道playbackRate 也改变了音高,但浏览器应用了某种修正?我认为可能是这种情况。如果是这样的话,我必须禁用它。
【问题讨论】:
样本没有“简单”的音调变化。有很多方法可以在不改变播放速率的情况下改变音高——颗粒再合成、相移声码——但这些方法都不是微不足道的,也没有一种方法被嵌入到 Web Audio API 中。 (顺便说一下,Doppler 正在被删除,因为它非常老套。)playbackRate 是样本通过的速率 - 这将影响“速度”和明显的音高(音高样本)。
我在Input Effects demo 中实现了音高转换(颗粒再合成)效果——使用了jungle.js 库——但这并不是一件容易的事。 HTML 的 <audio> 元素会进行拉伸,但没有指定算法,这让它有很多解释。
【讨论】: