Ich baue einen einfachen Synthesizer mit WebMIDI-Steuerelement. Der Verstärkungsknoten hat keinen Einfluss auf den Oszillator, er hat die gesamte Zeit die volle Lautstärke. Auch wenn ich Akkorde spiele, sind die Frequenzen korrekt, aber es gibt einen wobbelnden und kreischenden Effekt. Die Probleme treten beim Spielen mit meinem MIDI-Controller und beim Starten und Stoppen des Synthesizers mit der Konsole auf.Mehrere Oszillatoren kreischen, Verstärkung hat keine Auswirkungen in WebAudio
Hier ist mein Synthesizer Code:
var synth = {
voices: {},
start: function (note, vol) {
this.voices[note] = {
gain: audio.createGain(),
osc: audio.createOscillator()
}
this.voices[note].gain.connect(audio.destination);
this.voices[note].osc.frequency.value = noteToFreq(note);
this.voices[note].osc.connect(this.voices[note].gain);
this.voices[note].osc.start(0);
this.voices[note].gain.gain.setTargetAtTime(vol, audio.currentTime, 0.5);
},
stop: function (note) {
this.voices[note].gain.gain.setTargetAtTime(0, audio.currentTime, 2);
this.voices[note].osc.stop(audio.currentTime + 2);
}
}