Тон. js - Странная аритмия - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь реализовать простой метроном в Angular 9 с тоном. js, но кажется, что во время исполнения происходит какая-то аритмия ... Не знаю, упустил ли я что-то в реализации.

Вот мой код:

    playMetronome(): void {
        Tone.Transport.bpm.value = 120;

        Tone.Transport.scheduleRepeat(() => {
          const player = new Tone.Player("./../../assets/sounds/tick.mp3").toMaster();
          player.autostart = true;
        }, "4n");

        Tone.Transport.start();
    }

Кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 08 июня 2020

Вы должны использовать параметр «время» механизма передачи тонов, иначе синхронизация будет нестабильной. Например:

// instantiate the player
const play1 = new Tone.Player(<url>).toDestination();
// schedule the events
Tone.Transport.schedule(time => play1.start(time), 0);
Tone.Transport.schedule(time => play1.start(time), '0:2');
// set tempo
Tone.Transport.bpm.value = 220;
// set loop & repeat
Tone.Transport.loopEnd = '1m';
Tone.Transport.loop = true;
// start transport
Tone.Transport.start();

Найдите здесь пример stackblitz: https://stackblitz.com/edit/angular-metronome-mki

...