W3C home > Mailing lists > Public > public-audio@w3.org > July to September 2012

Re: Thoughts and questions on the API from a modular synth point of view

From: Chris Wilson <cwilso@google.com>
Date: Wed, 18 Jul 2012 09:34:42 -0700
Message-ID: <CAJK2wqWmb1=QESru3-g-_-6qJovbhUmUDqgVPfdVWcdzZ4f_ZA@mail.gmail.com>
To: Peter van der Noord <peterdunord@gmail.com>
Cc: Raymond Toy <rtoy@google.com>, "public-audio@w3.org" <public-audio@w3.org>
On Tue, Jul 17, 2012 at 4:54 PM, Peter van der Noord

> Which demo apps are those?

The Web Audio Playground (http://webaudioplayground.appspot.com/) and the
Web Audio Vocoder (http://webaudiovocoder.appspot.com/).  Both of these
require Chrome 21+ (i.e. current Beta channel or better, or Canary).

> I will add a standard noteOn then to automatically start the oscillator,
> but may i add that i find it *very* strange for an oscillator to have that
> command?
> - An oscillator oscilates, that's what it was hired to do. To oscillate.
> Nothing more, nothing less. It doesnt stop, it just runs.
> - i could use an oscillator for very different purposes than to be a note.
> It could be an lfo controlling the filterfrequency, or i could drive it
> through a note-quantizer (that in its turn feeds frequencies to another
> oscillator) to make melodies out of it...yet i still have to say noteOn (a
> totally unrelated word in the context of these cases) before he does what i
> want.
> - If you do use an osc as a sound for notes, the oscillator has nothing to
> do with (or knows about) the note actually being started or stopped, that's
> what an envelope is for, or in this api probably a gainnode. That's the one
> you would want to tell to start or stop
> - if you still do want to use these commands to start or stop a note, the
> abruptness of starting/stopping an osc would result in very annoying
> clicks, so i'm wondering in what cases you would use these.
> With what reason were these methods added?

I'd rather that Chris (Rogers) respond to that when he gets back, as I
wasn't in the middle of that decision... but I would point out that using
oscillators for LFOs, et al, you would likely want very careful control
over when the waveform starts - in which case, having a separate noteOn
method is actually quite useful.

> Unrelated: thinking of it, a great (and very simple) option to add to the
> oscillator would be a sync method. Syncing an oscillator resets the
> waveform that's being played to the startposition, and it's amazing to hear
> the complex harmonic richness you can get by just being able to sync a
> waveform.

Wouldn't you actually want to set up a sync relationship between two
oscillators instead?  Having to deal with calling a sync method a thousand
times a second seems odd to me.  But Chris has probably thought of this.

> Which leads to me something i mentioned before: i wouldnt want a method to
> do oscillator-syncing, but an a-rate param reacting to a signal that goes
> from negative to positive (which is how analog modular synthesizers do
> syncing). If there was another type of parameter, let's say LogicParam, an
> oscillator could have one of those with the name "sync", and the
> description "resets the oscillator to the beginning of its waveform on
> GATE_ON". You could connect another oscillator (or whatever you'd like) to
> it and create very rich (and/or annoying) sounds.

An interesting idea, and more akin to what I was suggesting above.

Received on Wednesday, 18 July 2012 16:35:11 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:03:10 UTC