我正在尝试库tone.js。我想将音频循环文件(1 bar 120 bpm)与使用默认乐器之一在tone.js 中生成的一系列音符同步。
这些是我尝试过的主要步骤:
这是代码:
const player = new Tone.Player("path/to/loop.mp3").toMaster() // 1 bar,
120 bpm audio loop
player.autostart = true
player.loop = true
player.sync() // sync player to Transport
const notes = ["C2", "C3"]
const synth = new Tone.Synth().toMaster()
synth.oscillator.set({type: "fatsawtooth"})
synth.envelope.set({attack: 0.05, decay: 0.2, sustain: 0.1, release: 0.1})
synth.volume.value = -8
const synthPart = new Sequence(
function(time, note) {
synth.triggerAttackRelease(note, "8n", time)
},
notes,
"8n"
)
synthPart.start()
Transport.start(1)
循环和序列同时开始播放,但时间有点偏离(不完全同步)。以上是同步音频和笔记的正确方法吗?或者我能做些什么来改善时机?