Как изменить высоту звука с помощью JavaScript? - PullRequest
0 голосов
/ 21 декабря 2018

Допустим, у вас есть звуковая переменная с именем audio, в которой хранится звук.

Я знаю, как изменить скорость, например:

audio.playBackRate = 2; 

Но я не знаю, как изменить высоту.

Есть ли атрибут audio.pitch или я должен создать его сам?

Я хочу сделать что-то вроде этого:

var audio = new Audio();
audio.src = "sound_effect.wav";
audio.pitch = 2 //doubling the pitch but there is no pitch attribute
audio.play();

1 Ответ

0 голосов
/ 22 декабря 2018

Я думаю, вам нужно использовать библиотеку для применения смещения высоты тона к вашему аудиосигналу.Вы можете использовать Tone.js PitchShift .Смотрите этот JSFiddle пользователя GitHub Jexim для рабочего примера.Я скопировал наиболее важные части из этой скрипки ниже:

Javascript:

var player = new Tone.Player("http://example.com/my-audiofile.mp3").sync().start(0);

var pitchShift = new Tone.PitchShift({
    pitch: -5
}).toMaster();

player.connect(pitchShift);

Tone.Buffer.on('load', () => {
    alert('Ready for play');
});

window.play = function() {
    Tone.Transport.start();
}

HTML :

<script src="https://unpkg.com/tone@next/build/Tone.js"></script>
<button onclick="play()">Play</button>
...