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

Re: [web-audio-api] (OscillatorTypeModification): Oscillator type modification (#136)

From: Olivier Thereaux <notifications@github.com>
Date: Wed, 11 Sep 2013 07:29:52 -0700
To: WebAudio/web-audio-api <web-audio-api@noreply.github.com>
Message-ID: <WebAudio/web-audio-api/issues/136/24244454@github.com>
> [Original comment](https://www.w3.org/Bugs/Public/show_bug.cgi?id=17367#6) by Marcus Geelnard (Opera) on W3C Bugzilla. Fri, 15 Jun 2012 23:03:06 GMT

(In reply to [comment #5](#issuecomment-24244440))
> I think it's important to support changing the oscillator type and to be able
> to set the wavetable after creation, because these are features of the
> oscillator that are important to control.  Even basic analog synthesizers allow
> this.

I agree that it's a powerful tool to be able to change the waveform type and wavetable over time. For instance, you can use it to simulate real string instruments, and of course for doing funky synth effects (such as Fairlight CMI style changing-harmonics-over-time synthesis, as mentioned by Ray on the list).

However, the problem right now is that the spec does not really say anything about timing accuracy.

I'm not opposing having the attributes modifiable - I'm just saying that IF they are modifiable, we need to specify the behavior in more detail, including upper and lower limits to how long it may take for an attribute change to take effect and possibly things such as transition method (e.g. cross-fade or not) and internal phase preservation (or not).

In other words, a Web developer must know what to expect, and similarly we must be able to write tests for testing this behavior.

An easy-way-out here would be to make the attributes read-only, which IMO would actually make the interface more logical, especially w.r.t the setWaveTable method & type attribute interaction. And I believe you could implement the mentioned examples anyway (just with a few more lines of code).

Reply to this email directly or view it on GitHub:
Received on Wednesday, 11 September 2013 14:35:45 UTC

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