我正在使用 ToneJS 的网站上创建多个切换按钮。基本上,我希望不同的按钮播放不同的曲目。
我已经像这样创建了两个相同的按钮。
按钮 1:
function togglePlay() {
const status = Tone.Transport.state; // Is either 'started', 'stopped' or 'paused'
const element = document.getElementById("play-stop-toggle");
if (status == "started") {
element.innerText = "PLAY";
Tone.Transport.stop()
} else {
element.innerText = "STOP";
Tone.Transport.start()
}
document.querySelector('#status').textContent = status;
}
按钮 2:
function togglePlay2() {
const status = Tone.Transport.state; // Is either 'started', 'stopped' or 'paused'
const element = document.getElementById("play-stop-toggle2");
if (status == "started") {
element.innerText = "PLAY";
Tone.Transport.stop()
} else {
element.innerText = "STOP";
Tone.Transport.start()
}
document.querySelector('#status').textContent = status;
}
目前他们正在播放相同的循环,因为以下代码是全局定义的:
var filter = new Tone.Filter({
type: 'lowpass',
Q: 12
}).toMaster()
var synth = new Tone.MembraneSynth().toMaster()
//create a loop
var loop = new Tone.Loop(function(time){
synth.triggerAttackRelease("A1", "8n", time)
}, "2n")
//play the loop between 0-2m on the transport
loop.start(0)
// loop.start(0).stop('2m')
我将如何将 、 和 嵌套在其中filter
,synth
以便loop
我function togglePlay()
可以根据切换的按钮定义不同的声音?