Patch C03.zipper.noise.pd (Figure 3.13 part b) demonstrates the effect of converting a slowly-updated control stream to an audio signal. This introduces a new object:
:
a ramp generator with control output. Like
,
takes pairs of numbers as (target, time) pairs and ramps to the target in the
given amount of time; however, unlike
, the output is
a numeric control stream, appearing, by default, at 20 msec time intervals.
In the example you can compare the sound of the rising and falling amplitude
controlled by the output with one controlled by the audio
signal generated by
.
The output of is converted to an audio signal at the input of
the
object. The conversion is implied here by connecting a
numeric control stream into a signal inlet. In Pd, implicit conversions from
numeric control streams to audio streams is done in the fast-as-possible mode
shown in Figure 3.4 part (a). The
output becomes a
staircase signal with 50 steps per second. The result is commonly called
``zipper noise".
Whereas we were able to demonstrate the limitations of the
object for generating audio signals were clear even at such long time periods
as 300 msec, the signal variant,
, does not yield audible
problems until the time periods involved become much shorter.
Patch C04.control.to.signal.pd (Figure 3.13 part c) demonstrates the effect of
using
to generate a 250 Hz. triangle wave. Here the
effects shown in Figure 3.5 come into play. Since
always aligns line segments to block boundaries, the
exact durations of line segments vary, and in this case the variation (on
the order of a millisecond) of the segments is a significant fraction of their
length.
A more precise object (and a more expensive one, in terms of computation time) is provided for these situations:
:
exact line segment generator. This third member of the ``line" family not
only outputs an audio signal, but aligns the endpoints of the signal to
the desired time points, accurate to a fraction of a sample. (The accuracy
is limited only by the floating-point numerical format used by Pd.) Further,
many line segments may be specified withing a single audio block;
can generate waveforms at periods down to two samples
(beyond which you will just get foldover instead).
The
object can also be used for converting numeric
control streams to audio streams in the nearest-sample and two-point-interpolation
modes as shown in Figure 3.4 parts (b) and
(c). To get nearest-sample conversion, simply give
a
ramp time of zero. For linear interpolation, give it a ramp time of
one sample (0.0227 msec if the sample rate is 44100 Hz.)