Jar*_*lla 14 javascript audio playback web-audio-api
是否可以使用Web Audio API更改音频的速度(以加载的MP3文件的形式)而不改变音高?
我知道AudioBufferSourceNode上的playbackRate属性,但这也改变了音高.我也知道了playback<audio>和<video>元素的playbackRate属性,但我需要使用Web Audio API.
我是Web Audio API的新手.有什么我能做的吗?
有一种方法可以做到这一点 - 它称为粒度合成(链接指向pd理论链接,但理论是通用的).粒度合成的想法是以原始速度对声音进行采样,但是以与每个采样点不同的速度进行播放,但是具有不改变音高的优点.
这些Github Web Audio Granular Synthesizer链接可以帮助你(第一个更好)[ http://www.github.com/urtzurd/html-audio/ "Web-Audio-Granular-synthesis"] [ http:// zya .github.io/granular / "Github上的另一个链接"] 2
如果没有使用WebAudio取得任何成功,还有另一种选择; 将mp3带入Audacity并以此方式更改速度,然后使用新文件!;)
相信我,我理解你的痛苦,我花了好几周试图用pd扩展做同样的事情.走近我的头发.我的教授向我介绍了粒度合成的概念!
祝好运!
当前版本的 WebAudio 本身并不(容易)支持这一点,但可以使用Tone.js:
let semitones = 3;
let source = new Tone.Player(AudioBuffer);
let shift = new Tone.PitchShift(semitones);
source.connect(shift);
shift.toMaster();
source.start();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4586 次 |
| 最近记录: |