我希望能同时完成两件事情:
1) 将音频文件的播放速度改为1/2倍速
2) 将音高降低五度
最后,我希望将其与一个音频标签连接起来,并在那里使用播放按钮,而不是使用单独的按钮来播放结果。
以下是我使用Tone.js迄今为止最接近的结果。我真的很难理解文档,但我知道Tone.Transport.bpm.value = 60;可以将bpm从120更改为60,Tone.PitchShift可以转换歌曲。我只是不知道如何将两者结合起来“堆叠”效果。
以下是我遵循的一些链接: 如何使用JavaScript改变音高?
1) 将音频文件的播放速度改为1/2倍速
2) 将音高降低五度
最后,我希望将其与一个音频标签连接起来,并在那里使用播放按钮,而不是使用单独的按钮来播放结果。
以下是我使用Tone.js迄今为止最接近的结果。我真的很难理解文档,但我知道Tone.Transport.bpm.value = 60;可以将bpm从120更改为60,Tone.PitchShift可以转换歌曲。我只是不知道如何将两者结合起来“堆叠”效果。
以下是我遵循的一些链接: 如何使用JavaScript改变音高?
https://tonejs.github.io/docs/r12/PitchShift
https://tonejs.github.io/docs/13.8.25/Transport
提前感谢您的帮助!
<audio id="myAudio" controls preload="none">
<source src="my_tune.m4a" type="audio/mp4" >
</audio>
<script src="https://unpkg.com/tone@next/build/Tone.js"></script>
<script>
Tone.Transport.bpm.value = 60; // setting the bpm like this is not working. where to put this?
var player = new Tone.Player("my_tune.m4a").sync().start(0);
// is it possible to use audio tag instead of creating this player?
var pitchShift = new Tone.PitchShift({
pitch: -5 // this is working and lowers pitch by a fifth
}).toMaster();
player.connect(pitchShift);
window.play = function() {
Tone.Transport.start();
}
<script>
<button onclick="setPlaySpeed()" type="button">separate button</button><br>