- From: Ray Bellis <ray@bellis.me.uk>
- Date: Tue, 06 Nov 2012 11:42:46 -0500
- To: public-audio@w3.org
On a little project I have going on just now (more of that in a week or
two) I was trying to create a filter whose frequency AudioParam was
controlled by an envelope generator, where the EG itself was a GainNode:
vcfenv.connect(vcfgain);
vcfgain.connect(filter1.frequency);
I wasn't getting anywhere getting this working, and finally realised
that it was because my GainNode had no input, and hence was producing no
output.
So first, the feature request - I think we need a SourceNode whose sole
job is to produce a _constant_ output.
It seems inefficient to use an a-rate BufferSourceNode or an Oscillator
just to be able to use a GainNode as a modulating source for another node.
In the absence of such a node, I used this code:
function unitySourceNode(ctx) {
var array = new Float32Array(1024);
for (var i = 0, n = array.length; i < n; ++i) {
array[i] = 1;
}
var buffer = ctx.createBuffer(1, array.length, ctx.sampleRate);
buffer.getChannelData(0).set(array);
var node = ctx.createBufferSource();
node.buffer = buffer;
node.loop = true;
return node;
};
This works on Chrome 25.0.1317.0 canary but doesn't work on Chrome 22 -
the node's "playBackState" appears stuck in "scheduled" even though I
called "node.noteOn(0)".
Does anyone have an equivalent that works on Chrome 22?
cheers,
Ray
Received on Tuesday, 6 November 2012 16:43:16 UTC