我正在尝试使用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
,但是我不知道如何“ 并行化”该过程。
看着documentation,我发现了如何创建一个复音合成器,但是它允许添加同一合成器的多个实例以演奏多个音符。
我想做的是用 DIFFERENT 合成器(每个带有其波形)演奏同一音符以获得加法合成器。
我试图简单地创建一个SynthB
然后调用synthB.triggerAttackRelease()
,它可以正常工作,但对我来说似乎不是“平行”。
有没有更好的方法?