Specifications

2.3 Message data and GUI boxes 13
Holding SHIFT while s ele cting allows multiple separate objects to be added to
the buffer.
CTRL+A Select all objects on canvas.
CTRL+D Duplicate the selection.
CTRL+C Copy the selection.
CTRL+V Paste the selection.
CTRL+X Cut the selection.
SHIFT Select multiple objects.
Duplicating a group of objects will also duplicate any connections between them.
You may modify an object once created and wired up without having it discon-
nect s o long as the new one is compatible the existing inlets and outlets, for
example replacing
+
with
-
. Clicking on the object text will allow you
to retype the name and, if valid, the old object is deleted and its replacement
remains connected as before.
Patch files
Pd files are regular text files in which patches are stored. Their names always
end with a .pd file extension. Each consists of a netlist which is a collection of
object definitions and connections between them. The file format is terse and
difficult to understand, which is why we use the GUI for editing. Often there
is a one to one corr espondence between a patch, a single canvas, and a file, but
you can work using multiple files if you like becaus e all canvases opened by the
same instance of Pd can communicate via global variables or through
send
and
receive
objects. Patch files shouldn’t really be modified in a text editor unless
you are an expert Pure Data user, though a plaintext forma t is useful because
you can do things like search for and replace all occurrences of an object. To
save the current canvas into a file select FileSave fro m the menu or use the
keyboard shortcut CTRL+s. If you have not s aved the file previously a dialogue
panel will open to let you choose a loc ation and file name. This would be a good
time to create a folder for your Pd patches somewhere convenient. Loading a
patch, a s you would expect, is achieved with FileOpen or CTRL+o.
SECTION 2.3
Message data and GUI boxes
We will briefly tour the basic data types that Pd uses along with GUI objects
that can display or generate that data for us . The message data itself should
not be confused with the objects that can be used to display or input it, so
we distinguish mess ages from boxes. A message is an event, or a piece of
data that gets sent between two objects. It is invisible as it travels down the
wires, unless we print it or view it in some other way like with the number boxes
above. A message can be very short, only one number or character, or very long,
perhaps holding an entire musical scor e or synthesiser par a meter set. They can
be floating point numbers, lists, symbols, or pointers which are references to
other types like datastructures. Messages happen in logical t ime, which means