Я хотел бы выполнить sh две вещи одновременно:
1) изменить скорость воспроизведения звукового файла на 1/2 скорости
2) понизить высоту на пятую
Наконец, вместо использования отдельной кнопки для воспроизведения результата, я хотел бы подключить это к аудиотэгу и использовать кнопка воспроизведения там.
Ниже приведен самый близкий к этому момент, когда я использовал Tone. js. Я действительно борюсь с документацией, но я понимаю, что Tone.Transport.bpm.value = 60; изменяет удары в минуту со 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>