Re: oscillators and the Web Audio API

I have been planning to do this for a while now, as I have made a pretty
flexible oscillator algorithm for audiolib.js, allowing for FM, combined
waves (synchronized multi-oscillator) and not to mention PWM for any wave
shape (allows for pretty cool sounds). I also have a JS noise module with
white, pink and brown/red noise.

However, as I've complained before, Web Audio API, for now, isn't very
extensible from JS. I've made suggestions earlier that you should be able
to make custom AudioParam instances, making JS extensions to the graph
first class citizens. Otherwise, it doesn't make much sense to make these
elements as separate modules, but just do all the synthesis in JS, because
you can't get access to all the automation benefits, etc., anyway.

So, I'd like to discuss that issue further before making such modules. Of
course, it would be fairly trivial to port most of my algorithms to C, and
have them as native modules for greater performance benefits, but I don't
think I have enough time to do that right now. :/

Chris, has there been any progress on the AudioParam being made accessible
to JS extensions?

Jussi

On Tue, Feb 7, 2012 at 4:19 AM, Phil Burk <philburk@mobileer.com> wrote:

> I have begun doing some experiments with the Web Audio API described here:
>
> <https://dvcs.w3.org/hg/audio/**raw-file/tip/webaudio/**specification.html<https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html>
> >
>
> In general, I really like the API. It will be great to have a flexible
> set of synthesis modules available from JavaScript.  I was impressed
> with the inclusion of FFT support, convolution, occlusion, etc. I was
> also very happy to see that timestamps are supported. That is so crucial.
>
> I am now trying to do some "Hello World" type examples and have hit a
> few snags. Perhaps someone could help me.
>
> My first test was to generate a tone using an oscillator.
>
>   <http://www.softsynth.com/**webaudio/tone.php<http://www.softsynth.com/webaudio/tone.php>
> >
>
> But I could not find the oscillator class. I could use a looping buffer
> but that would be difficult to use for FM or multi-octave sweeps. It is
> also difficult to control aliasing with a looped wavetable, even with
> multi-point interpolation.
>
> Luckily I was able to use a JavaScriptNode to implement a simple sine
> oscillator. It would be nice to have an AudioOscillator class with sine,
> sawtooth, square, pulse and impulse. The oscillator should accept
> frequency values that can go negative for extreme modulation.
>
> An AudioNoise class would also be very useful with white noise, pink
> noise and red noise generation. Stochastic synthesis is very handy for
> wind, explosions, percussive sounds, etc.
>
> Thanks,
> Phil Burk
>
>

Received on Tuesday, 7 February 2012 08:21:08 UTC