Specifications

71
CHAPTER 7
Pure Data essentials
This chapter will present some c ommonly used configurations for mixing, read-
ing and writing files, communication and sequencing. You may want to build up
a libr ary of abs tractions for things you do again and again, or to find existing
ones from the p d-extended distribution. All the same, it helps to understand
how these are built from pr imitive objects since you may wish to customise them
to your own needs.
SECTION 7.1
Channel strip
For most work you will us e Pd with multiple audio outlets and an exter nal
mixing desk. But you might find you want to develop s oftware which implements
its own mixing. All mixing desks cons ist of a few basic elements like gain
controls, buses, panners and mute or channel select buttons. Here we introduce
some basic concepts that can be plugged together to make complex mixers.
Signal switch
*~
dac~
noise~
fig 7.1:
Sig-
nal
switch
All we have to do to control the level of a signal is multiply it by a
number between 0.0 a nd 1.0. The simplest form of this is a signal switch
where we connect a toggle to one side of a
*~
and an audio s ignal to the
other (Fig. 7.1). The toggle outputs either 1 or 0, s o the signal is either
on or off. You will use this frequently to temp orarily block a signal.
Because the toggle changes value abruptly it usually produces a click,
so don’t use this simple signal switch when recording audio, fo r that you
must apply some smoothing as in the mute button below.
Simple level contr ol
*~
dac~
0.5
osc~ 40
fig 7.2:
Direct level
control
To create a level fader star t with a vertical slider and set its
properties to a lower value of 0.0 and upper value of 1.0. In
Fig. 7.2 the slider is connected to o ne inlet of
*~
and the signal to
the other, just like the signal switch above except the slider gives a
continuous change between 0.0 and 1.0. A number box displays the
current fader value, 0.5 for a halfway position here. A sine oscilla-
tor at 40Hz provides a test signal. It is o kay to mix messages and
audio signals on opposite sides of
*~
like this, but because the
slider g e nerates messages any updates will only happen on each