WebAudio API:改变样本的音高(例如 mp3)
WebAudio API: Change pitch of samples (for example mp3)
我想我可以使用 playbackRate
拉伸样本,但我该如何设置音高?我试图在不使用任何库的情况下实现这一目标。
我在规范中发现了一些关于多普勒俯仰效应的内容,但除此之外我找不到任何与我的 objective 真正相关的内容。只是一个简单的变调,这可能吗?如果是那么怎么办?
Edit: 会不会是 playbackRate
也改变了音调,但浏览器应用了某种修正?我认为可能是这种情况。如果是这种情况并且可能的话,我必须禁用它。
样本没有 "simple" 音高变化。有很多方法可以在不改变播放速率的情况下改变音高——颗粒再合成、相移声码——但其中 none 是微不足道的,并且 none 被烘焙到网络音频中 API. (顺便说一句,多普勒被移除了,因为它很老套。)playbackRate 实际上是样本 运行 通过的速率 - 这将影响 "speed" 和表观音高(音调的样本)。
我在 Input Effects demo 中使用 jungle.js 库实现了变调(颗粒再合成)效果,但这不是一件小事。 HTML 的 <audio>
元素进行了拉伸,但没有指定算法,这使得它有很多解释。
我想我可以使用 playbackRate
拉伸样本,但我该如何设置音高?我试图在不使用任何库的情况下实现这一目标。
我在规范中发现了一些关于多普勒俯仰效应的内容,但除此之外我找不到任何与我的 objective 真正相关的内容。只是一个简单的变调,这可能吗?如果是那么怎么办?
Edit: 会不会是 playbackRate
也改变了音调,但浏览器应用了某种修正?我认为可能是这种情况。如果是这种情况并且可能的话,我必须禁用它。
样本没有 "simple" 音高变化。有很多方法可以在不改变播放速率的情况下改变音高——颗粒再合成、相移声码——但其中 none 是微不足道的,并且 none 被烘焙到网络音频中 API. (顺便说一句,多普勒被移除了,因为它很老套。)playbackRate 实际上是样本 运行 通过的速率 - 这将影响 "speed" 和表观音高(音调的样本)。
我在 Input Effects demo 中使用 jungle.js 库实现了变调(颗粒再合成)效果,但这不是一件小事。 HTML 的 <audio>
元素进行了拉伸,但没有指定算法,这使得它有很多解释。