**QUICK-REF** - **CsoundManual**
- **Top of this section** - Previous
- Contents - Index
- Next

##
buzz, gbuzz, poscil

ar **poscil** kamp, kcps, kfrac[, iphs]
ar **buzz** xamp, xcps, knh, ifn[, iphs]
ar **gbuzz** xamp, xcps, knh, klh, kr, ifn[, iphs]

####
__DESCRIPTION__

Output is a set of harmonically related cosine partials.
####
__INITIALIZATION__

*ifn* - table number of a stored function containing (for **buzz**)
a sine wave, or (for **gbuzz**) a cosine wave. In either case a large
table of at least 8192 points is recommended.
*iphs* (optional) - initial phase of the fundamental frequency,
expressed as a fraction of a cycle (0 to 1). A negative value will cause
phase initialization to be skipped. The default value is zero

####
__PERFORMANCE__

*kfrac* - fractional width of the pulse part of a cycle.** poscil**
is a k-rate varying pulse-width audio oscillator, with on/off levels set
to provide a zero-average DC offset. Although pulse-width oscillation is
an unnatural signal (it does not occur in natural instruments), it is a
popular source in synthesizers.
The buzz units generate an additive set of harmonically related cosine
partials of fundamental frequency *xcps*, and whose amplitudes are
scaled so their summation peak equals *xamp*. The selection and strength
of partials is determined by the following control parameters:

*knh* - total number of harmonics requested. Must be positive.

*klh* - lowest harmonic present. Can be positive, zero or negative.
In **gbuzz** the set of partials can begin at any partial number and
proceeds upwards; if *klh* is negative, all partials below zero will
reflect as positive partials without phase change (since cosine is an even
function), and will add constructively to any positive partials in the
set.

*kr* - specifies the multiplier in the series of amplitude coefficients.
This is a power series: if the *klh*th partial has a strength coefficient
of A, the (*klh* + n)th partial will have a coefficient of A * (*kr*
** n), i.e. strength values trace an exponential curve. *kr* may be
positive, zero or negative, and is not restricted to integers.

**buzz** and **gbuzz **are useful as complex sound sources in
subtractive synthesis. **buzz** is a special case of the more general
**gbuzz** in which *klh* = *kr*= 1; it thus produces a set
of knh equal-strength harmonic partials, beginning with the fundamental.
(This is a band-limited pulse train; if the partials extend to the Nyquist,
i.e. *knh* = int (sr / 2 / fundamental freq.), the result is a real
pulse train of amplitude *xamp*.) Although both *knh* and *klh*
may be varied during performance, their internal values are necessarily
integer and may cause "pops" due to discontinuities in the output; *kr,*
however, can be varied during performance to good effect. Both **buzz**
and **gbuzz** can be amplitude- and/or frequency-modulated by either
control or audio signals.

N.B. These two units have their analogs in **GEN11**,
in which the same set of cosines can be stored in a function table for
sampling by an oscillator. Although computationally more efficient, the
stored pulse train has a fixed spectral content, not a time-varying one
as above.

**QUICK-REF** - **CsoundManual**
- **Top of this section** - Previous
- Contents - Index
- Next

*HTML Csound Manual - ©
Jean Piché & Peter J. Nix, 1994-97*