Как вы компенсируете усиление, прикрепленное к генератору, используя JavaScript Web Audio? - PullRequest
0 голосов
/ 07 мая 2020

Я делаю звук вау с помощью JavaScript Web Audio. У меня он в основном работает, когда я могу анимировать базовую частоту полосового фильтра извне Web Audiuo (например, с помощью ползунка), но я хочу подключить усиление, контролируемое другим генератором, к частоте. В основном это работает, но коэффициент усиления колеблется в районе 0. Я пробовал отстроить генератор квакушки. В принципе, я думаю, что мне нужно усиление от осциллятора / усиления вау, которое дает значение, которое будет увеличиваться и уменьшаться относительно частоты основного тона - например, 220 - а не 0. Я был на этом несколько дней - вздох - спасибо за аванс.

const audioContext = new (window.AudioContext||webkitAudioContext);
const oscillator = audioContext.createOscillator();
oscillator.frequency.value = 220;
oscillator.type = "square";

const filter = audioContext.createBiquadFilter();
filter.type = "bandpass"
filter.frequency.value = oscillator.frequency.value;
filter.Q.value = 5; // or whatever

const gain = audioContext.createGain();
gain.gain.value = .2;

oscillator.connect(filter);
filter.connect(gain);
gain.connect(audioContext.destination);
// plus start at bottom

// WAH
wah = audioContext.createOscillator();
wahGain = audioContext.createGain();
wahGain.gain.value = 1000;
wah.frequency.value = .1; // LFO
wah.type = "sine";

// wah.detune.value = 3300; // A2 220? tried many values - not sure...

wah.connect(wahGain);
wahGain.connect(filter.frequency); // this is level - height position of bandpass
wah.start(0);

oscillator.start(0); // main oscillator 
...