angular - Tone.js-怪异的心律失常

标签 angular audio tone.js

我正在尝试使用tone.js在Angular 9中实现一个简单的节拍器,但是在执行过程中似乎正在发生某种类型的心律失常...
我不知道我是否在实现中遗漏了一些东西。

这是我的代码:

    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();
    }

有人能帮我吗?

最佳答案

您应该使用“音调传输”机制的“时间”参数,否则时序将不稳定。例如。:

// 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

关于angular - Tone.js-怪异的心律失常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62046737/

相关文章:

javascript - 听不到 Tone.js 音频过滤器的声音

javascript - 节拍器播放时数音符

html - 如何在 Angular 7 中使用 ngFor 单击关闭按钮时单独隐藏 div

angular - 异常 : Uncaught (in promise): TypeError: Cannot read property 'touched' of null

javascript - 为什么数组原型(prototype)函数不能像 foreach 那样在其他数组函数中工作?

python - 声音设备上的多个输入

c# - 使用FMOD查找以Hz为单位的频率

iphone - 静音内置 iPhone 麦克风

用于保留尖括号的 HTML 标记

javascript - 如何将 Web Audio API 连接到 Tone.js?