phasorbnk
Produce an arbitrary number of normalized moving phase values, accessible by an index.
Syntax
Initialization
icnt -- maximum number of phasors to be used.
iphs -- initial phase, expressed as a fraction of a cycle (0 to 1). A negative value skips initialization. If iphs>1, each phasor starts at a random phase.
When a negative initial phase skips initialization during a bank resize, retained phasors keep their phase. Newly added phasors start at zero. Reducing the bank count makes the removed indices unavailable, even if their storage remains allocated.
Performance
kndx -- index of the phasor to use, starting at zero.
For each independent phasor, an internal phase is successively accumulated in accordance with the kcps or xcps frequency to produce a moving phase value, normalized to lie in the range 0 <= phs < 1. Each individual phasor is accessed by index kndx.
This phasor bank can be used inside a k-rate loop to generate multiple independent voices, or together with the adsynt opcode to change parameters in the tables used by adsynt.
Each k-rate call outputs the selected phase, then advances it by kcps / kr. Calling the same index again in a loop advances that phase again. At audio rate, each sample outputs the selected phase, then advances it by xcps / sr. Other phasors keep their phase until selected.
Examples
Here is an example of the phasorbnk opcode. It uses the file phasorbnk.csd.
Generate multiple voices with independent partials. This example is better with adsynt. See also the example under adsynt, for k-rate use of phasorbnk.
See also
Credits
Author: Peter Neubäcker
Munich, Germany
August 1999
New in Csound version 3.58