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

Den 2012-07-18 21:13:36 skrev Chris Wilson <cwilso@google.com>:

> On Wed, Jul 18, 2012 at 10:45 AM, Peter van der Noord  
> <peterdunord@gmail.com
>> wrote:
>
>> 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.
>>
>> You are right, but the naming is weird since an oscillator itself has
>> nothing to do with notes that can be turned on or off. I'd call them
>> start() and stop().
>>
>
> That's already filed as an issue:
> https://www.w3.org/Bugs/Public/show_bug.cgi?id=17344.
>
>> 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.
>>
>> It's not that odd. Resetting an osc when used as lfo is often done with
>> the beat, for example to create temposynced filtersweeps (just listen to
>> any dubstep song to hear that effect). While that reset indeed isnt  
>> called
>> thousands times per second, it's an often used (easy and cheap, cpu  
>> wise)
>> soundsynthesis technique to create strange harmonics as well (two oscs  
>> at
>> audible but different frequencies, one of them syncing the other). A  
>> lot of
>> analog and digital oscillators have a sync input for this purpose.
>>
>> http://en.wikipedia.org/wiki/Oscillator_sync
>>
>
> That's what I was saying - I think you want a gating/trigger input type,
> and a separate thing (not just a generic "input") to connect to.  I'm
> definitely supportive of having sync on oscillators, although you CAN
> implement this today (with noteOns).

Couldn't a sync be implemented as an a-rate AudioParam? Every positive  
zero-crossing of the param would reset the phase of the oscillator.

/Marcus

-- 
Marcus Geelnard
Core Graphics Developer
Opera Software ASA

Received on Thursday, 19 July 2012 06:49:13 UTC