Specifications

6.4 Time dep endent signal shaping 65
expr~ $v2* (sin(6.283 * $v1)) + (1 - $v2) * ( (sin(5 *
6.283 * $v1)))
graph1 graph2
phasor~ 646
tabsend~ graph2
tabsend~ graph1
phasor~ 646
sin~
*~
swap 1
-
*~
*~ 5
sin~
tabsend~ graph3
graph3
fig 6.16: Using an expression to create an audio signal function
SECTION 6.4
Time dependent signal shaping
So far we have considered ways to change the amplitude of a signal as a
function of one or more o ther variables. These are all instantaneous changes
which depend only on the current value of the input s ample. If we want a signal
to change its behaviour based on its pre vious features then we need to use time
shaping.
Delay
1 0 1, 0 15 1
*~
delwrite~ d1 100
pd grapha
A
pd grapha
B
delread~ d1 10
vline~
fig 6.17: Delay
To shift a signal in time we use a delay. Delays are
at the heart of many important procedures like re-
verb, filters and chorusing. Unlike most other Pd
operations, delays are used as two separate objects.
The first is a write unit that works like
send~
but
sends the signa l to an invisible area o f memory. The
second object is for reading from the s ame memory
area after a certain time. So you always use
delwrite~
and
delread~
as pairs. The first argument to
delwrite~
is a unique name for the delay and the second is the
maximum memory (as time in milliseconds) to al-
locate. On it’s own a delay just produces a perfect
copy of an input signal a fixed number of millisec-
onds later. Here we see a 0.5ms pulse created by
taking the square of a fast line from one to zero. The second g raph shows the
same waveform as the first but it happens 10ms later.