我正在尝试使用和创建一个简单的加法合成Tone.JS
器WebAudioAPI
。
到目前为止,我已经建立了一个简单的合成器,它工作正常,我可以演奏任何我想要的音符。
我也可以自由更改参数ecc...
这是代码:
// synth declaration using Tone.JS
var synth = new Tone.Synth({
oscillator: {
type: 'fmsquare',
modulationType: 'sawtooth',
modulationIndex: 3,
harmonicity: 2.4
},
envelope: {
attack: 0.001,
decay: 0.1,
sustain: 5,
release: 0.1
}
}).toMaster()
//Possible added oscillator
var synthB = new Tone.Synth({
//Sample Data.......
}).toMaster()
// Selection of piano keyboard from my HTML file
notes = document.querySelectorAll(".hex");
// Play note function
notes.forEach(function(note) {
note.addEventListener("mouseover", function(event){
x = event.target.title;
synth.triggerAttackRelease(x, "8n");
//synthB.triggerAttackRelease(x, "8n");
});
});
我试图添加另一个Tone.Synth
,但我不知道如何“并行化”该过程。
查看文档,我发现了如何创建复音合成器,但它允许添加同一个合成器的多个实例以播放多个音符。
我想做的是用不同的合成器(每个都有它的波形)演奏相同的音符,获得一个加法合成器。
我试图简单地创建一个SynthB
然后调用synthB.triggerAttackRelease()
,它工作正常,但对我来说似乎并不“平行”。
有没有更好的方法?