packages feed

hsc3-0.2: Help/UGen/Buffer/osc.help.lhs

osc rate bufnum freq phase

Linear interpolating wavetable lookup oscillator with frequency and
phase modulation inputs.

This oscillator requires a buffer to be filled with a wavetable
format signal.  This preprocesses the Signal into a form which can
be used efficiently by the Oscillator.  The buffer size must be a
power of 2.

This can be acheived by creating a Buffer object and sending it one
of the "b_gen" messages ( sine1, sine2, sine3 ) with the wavetable
flag set to true.

Note about wavetables: OscN requires the b_gen sine1 wavetable flag
to be OFF.  Osc requires the b_gen sine1 wavetable flag to be ON.

> withSC3 (\fd -> do { async fd (b_alloc 10 512 1)
>                    ; send fd (b_gen 10 "sine1" [1 + 2 + 4, 1, 1/2, 1/3, 1/4, 1/5]) })

> audition (out 0 (osc AR 10 220 0 * 0.1))

Modulate freq

> let f = xLine KR 2000 200 1 DoNothing
> in audition (out 0 (osc AR 10 f 0 * 0.1))

Modulate freq

> let f = osc AR 10 (xLine KR 1 1000 9 RemoveSynth) 0 * 200 + 800
> in audition (out 0 (osc AR 10 f 0 * 0.1))

Modulate phase

> let p = osc AR 10 (xLine KR 20 8000 10 RemoveSynth) 0 * 2 * pi
> in audition (out 0 (osc AR 10 800 p * 0.1))

Change the buffer while its playing

> audition (out 0 (osc AR 10 220 0 * 0.1))

> do { r <- getStdRandom (randomR (0.0,1.0))
>    ; withSC3 (\fd -> send fd (b_gen 10 "sine1" [1 + 2 + 4, 1, r, 1/4])) }