A non-band-limited gaussian function oscillator UGen. Output ranges from
minVal
to 1. It implements the formula:
f(x) = exp((x - phase).squared / (-2 * width.squared))
where x
is to vary in the range -1 to 1 over the period dur
. minVal
is
the initial value at -1. E.g. for default parameters, it is exp(-50)
or
roughly zero.
===Examples===
// dur and width can be modulated at audio rate
play {
val dur = SinOsc.ar(MouseX.kr(2, 1000, 1) * Seq(1.0, 1.1)).linLin(-1, 1, 0.0006, 0.01)
val width = SinOsc.ar(Seq(0.5, 0.55)).linLin(-1, 1, 0.01, 0.3)
LFGauss.ar(dur, width) * 0.2
}
// several frequencies and widths combined
play {
val x = MouseX.kr(1, 0.07, 1)
val y = MouseY.kr(1, 3)
val mod = LFGauss.ar(x, (-1 to -6 by -1).map(i => y.pow(i)))
val carr = SinOsc.ar((0 to 5).map(i => 200 * 1.3.pow(i)))
Mix(carr * mod) * 0.1
}
// test spectrum
play {
val son = LeakDC.ar(LFGauss.ar(0.005, 0.2))
BPF.ar(son * 3, MouseX.kr(60, 2000, 1), 0.05)
}
- Companion
- class
Type members
Value members
Concrete methods
- Value Params
- doneAction
evaluated after cycle completes
- dur
duration in seconds of a full -1 <= x <= 1 cycle, or the reciprocal of the frequency
- loop
if greater than zero, the UGen oscillates. Otherwise it calls
doneAction
after one cycle.- phase
phase offset
- width
relative width of the bell. Best to keep below 0.25 when used as envelope.
- Value Params
- doneAction
evaluated after cycle completes
- dur
duration in seconds of a full -1 <= x <= 1 cycle, or the reciprocal of the frequency
- loop
if greater than zero, the UGen oscillates. Otherwise it calls
doneAction
after one cycle.- phase
phase offset
- width
relative width of the bell. Best to keep below 0.25 when used as envelope.