Tone.JS - аддитивный синтезатор
Я пытаюсь создать простой аддитивный синтезатор, используя 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()
Это работает нормально, но это не кажется "параллельным" для меня.
Есть ли лучшие подходы?