Commit 52dca0f9 authored by Miller Puckette's avatar Miller Puckette

set up git repository

parents
Detailed installations instructions are in the HTML documentation, which
you can find in doc/1.manual.
Quick compilation instructions for Linux or Mac OSX (assuming for Mac OSX that
you've got Tck/Tk installed):
Change to "src" subdirectory.
type "./configure", possibly adding flags as follows:
To enable ALSA 0.9x (the latest one), add "--enable-alsa".
To enable the older ALSA 0.5x, add "--enable-old-alsa".
To enable Ritsch's RME 9652 driver, add --enable-rme".
To put Pd in /usr/bin instead of /usr/local/bin, add "--prefix=/bin".
Type "make depend" and then "make"; or, if you prefer, as superuser
type "make install".
To run pd, either type the full pathname as in /home/me/pd/bin/pd, or else
if you've chosen "make install", just type "pd".
This software is copyrighted by Miller Puckette and others. The following
terms (the "Standard Improved BSD License") apply to all files associated with
the software unless explicitly disclaimed in individual files:
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
3. The name of the author may not be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
This is the README file for Pd, a free real-time computer music software
package resembling Max. You can get Pd for Linux, Windows, Mac OSX, or IRIX
from http://www.crca.ucsd.edu/~msp/software.html or ftp://felix.ucsd.edu.
Installation instructions are in the HTML DOCUMENTATION at:
http://www.crca.ucsd.edu/~msp/Pd_documentation/index.htm
If you download and unpack Pd, you will also find the html documentation
locally in the file, .../pd-whatever/doc/1.manual/index.htm. To unpack Pd:
LINUX (or freeBSD). Download Pd, which will be a ".tar.gz" file; to unpack it,
type "zcat [name].tar.gz | tar xf -" to a shell. This creates a directory with
a name like "pd-0.35". There are also RPMs available.
Microsoft Windows. Pd is distributed as a "zip" file. Unzip this,
creating a directory such as \pd.
IRIX. Download Pd, which will be a "tar.Z" file. You can unpack this by
typing "zcat [name].tar.Z | tar xf -" to a shell.
Macintosh. The web browser will automatically unpack the distributions
into a folder such as "pd-0.35" on your desktop.
If you have qustions about Pd, or if you wish to be notified of releases,
check the Pd mailing list: http://iem.mhsg.ac.at/mailinglists/pd-list/
Many extensions to Pd are available, notably for handling video and 3D
graphics; see the html documentation for pointers.
COPYRIGHT. Except as otherwise noted, all files in the Pd distribution are
Copyright (c) 1997-2001 Miller Puckette and others.
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "LICENSE.txt," included in the Pd distribution.
(Note that tcl/tk, expr, and some other files are copyrighted separately).
ACKNOWLEDGEMENTS. Thanks to Harry Castle, Krzysztof Czaja, Mark Danks,
Christian Feldbauer, Guenter Geiger, Kerry Hagan, Trevor Johnson, Fernando
Lopez-Lezcano, Adam Lindsay, Karl MacMillan, Thomas Musil, Toshinori Ohkouchi,
Winfried Ritsch, Vibeke Sorensen, Rand Steiger, Hans-Christoph Steiner,
Shahrokh Yadegari, David Zicarelli, Iohannes Zmoelnig, and probably many others
for contributions of code, documentation, ideas, and expertise. This work has
received generous support from the Intel Research Council.
PD_VERSION
A real-time graphical programming environment for live interactive
computer music, Pd works on SGI machines, Microsoft Windows,
Linux, and Max OSX.
Pd is copyrighted, but is free for you to use for any reasonable purpose.
See the file:
PD_BASEDIR/LICENSE.txt
Reference documentation for Pd lives in:
file:PD_BASEDIR/doc/1.manual/index.htm
or:
http://www.crca.ucsd.edu/~msp/Pd_documentation/index.htm
Much more documentation and other resources live on:
http://puredata.org
The Pd mailing list archive lives in:
http://iem.kug.ac.at/mailinglists/pd-list/
Many more useful links are listed in the HTML documentation, section 1.2.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<TITLE>Pd Documentation</TITLE>
<meta http-equiv="Content-Type" content="text/html">
<link rel="stylesheet" type="text/css" href="pdmanual.css" media="screen">
</HEAD>
<BODY>
<H1>Pd Documentation</H1>
<P>
This is the HTML documentation for Pd, a patchable environment for audio
analysis, synthesis, and processing,
with a rich set of multimedia capabilities. The latest version of this page
can be found at:
<a href="http://www.crca.ucsd.edu/~msp/software.html" name=s1>
http://www.crca.ucsd.edu/~msp/software.html</A> .
<OL>
<LI> <a href="x1.htm" name=s1>introduction </A>
<OL>
<LI> <a href="x1.htm#s1">guide to the documentation </A>
<LI> <a href="x1.htm#s2">other resources </A>
</OL>
<LI> <A href="x2.htm" name=s2>theory of operation </A>
<OL>
<LI> <A href="x2.htm#s1"> overview </A>
<OL>
<LI> <A href="x2.htm#s1.1"> main window, canvases, and printout </A>
<LI> <A href="x2.htm#s1.2"> object boxes </A>
<LI> <A href="x2.htm#s1.3"> message and GUI boxes </A>
<LI> <A href="x2.htm#s1.4"> patches and files </A>
</OL>
<LI> <A href="x2.htm#s2"> how to edit patches </A>
<OL>
<LI> <A href="x2.htm#s2.1"> edit and run mode </A>
<LI> <A href="x2.htm#s2.2"> creating boxes </A>
<LI> <A href="x2.htm#s2.3"> the selection </A>
<LI> <A href="x2.htm#s2.4"> deleting, cutting, and pasting </A>
<LI> <A href="x2.htm#s2.5"> changing the text </A>
<LI> <A href="x2.htm#s2.6"> connecting and disconnecting boxes </A>
<LI> <A href="x2.htm#s2.7"> properties and help </A>
</OL>
<LI> <A href="x2.htm#s3"> messages </A>
<OL>
<LI> <A href="x2.htm#s3.1"> anatomy of a message </A>
<LI> <A href="x2.htm#s3.2"> depth first message passing </A>
<LI> <A href="x2.htm#s3.3">
hot and cold inlets and right to left outlet order </A>
<LI> <A href="x2.htm#s3.3"> message boxes </A>
</OL>
<LI> <A href="x2.htm#s4"> audio signals </A>
<OL>
<LI> <A href="x2.htm#s4.1"> sample rate and format </A>
<LI> <A href="x2.htm#s4.2"> tilde objects and audio connections </A>
<LI> <A href="x2.htm#s4.3"> converting to and from messages </A>
<LI> <A href="x2.htm#s4.4"> switching and blocking </A>
<LI> <A href="x2.htm#s4.5"> nonlocal signal connections </A>
</OL>
<LI> <A href="x2.htm#s5"> scheduling </A>
<OL>
<LI> <A href="x2.htm#s5.1"> audio and messages </A>
<LI> <A href="x2.htm#s5.2"> computation load </A>
<LI> <A href="x2.htm#s5.3"> determinism </A>
</OL>
<LI> <A href="x2.htm#s6"> semantics </A>
<OL>
<LI> <A href="x2.htm#s6.1"> creation of objects </A>
<LI> <A href="x2.htm#s6.2"> persistence of data </A>
<LI> <A href="x2.htm#s6.3"> message passing </A>
<LI> <A href="x2.htm#s6.4"> inlets and lists </A>
<LI> <A href="x2.htm#s6.5"> dollar signs </A>
</OL>
<LI> <A href="x2.htm#s7"> subpatches </A>
<OL>
<LI> <A href="x2.htm#s7.1"> abstractions </A>
<LI> <A href="x2.htm#s7.2"> graph-on-parent subpatches </A>
</OL>
<LI> <A href="x2.htm#s8"> numeric arrays </A>
<LI> <A href="x2.htm#s9"> data structures </A>
<OL>
<LI> <A href="x2.htm#s9.1"> traversal </A>
<LI> <A href="x2.htm#s9.2"> accessing and changing data </A>
<LI> <A href="x2.htm#s9.3"> editing </A>
<LI> <A href="x2.htm#s9.4"> limitations </A>
</OL>
</OL>
<LI> <a href="x3.htm" name=s3> getting Pd to run </A>
<OL>
<LI> <a href="x3.htm#s1.0"> audio and MIDI </A>
<LI> <a href="x3.htm#s1.1">installing Pd in Microsoft Windows </A>
<LI> <a href="x3.htm#s1.2">installing Pd in Linux </A>
<LI> <a href="x3.htm#s1.3">installing Pd in MacOS X </A>
<LI> <a href="x3.htm#s1.4">installing Pd in IRIX (SGI) </A>
<LI> <a href="x3.htm#s4"> preferences and startup options </A>
<LI> <a href="x3.htm#s5"> how Pd searches for files </A>
</OL>
<LI> <a href="x4.htm" name=s4> writing Pd objects in C </A>
<LI> <a href="x5.htm" name=s5> current status </A>
<OL>
<LI> <a href="x5.htm#s1"> release notes </A>
<LI> <a href="x5.htm#s2"> known bugs </A>
<LI> <a href="x5.htm#s3"> differences from Max/MSP </A>
</OL>
</OL>
<!--
intro: what Pd is
guide to the documentation
other resources
Theory of operation
main window and canvases
messages
signals
loading, editing, and saving patches
subpatches
one-off and abstractions
blocking for signals
data
Making Pd work
how to get and install Pd
IRIX
NT
Linux
audio
testing it
the scheduler advance
IRIX
NT
Linux
GEM
getting it
running it
running Pd patches
command line options
opening & saving files
editing
file stuff
the path
abstractions
externs
the help feature
Writing Pd objects in C
release notes
features
bugs
-->
</BODY>
</HTML>
HTML {
background: #ffffff;
color: #000000;
font-family: Times, Times New Roman, serif;
font-size: 10pt;
}
BODY {
width: 6.5in;
margin-left: 0.5in
}
H1 {
font-size: 36pt;
text-align: center;
}
H2 {
font-size: 10pt;
text-align: center;
}
H3 {
font-size: 12pt;
text-align: left;
}
H4 {
font-size: 10pt;
text-align: left;
}
H5 {
font-size: 8pt;
text-align: left;
}
H6 {
font-size: 8pt;
text-align: left;
}
PRE {
font-size: 8pt;
text-align: left;
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<TITLE>Pd Documentation 1</TITLE>
<meta http-equiv="Content-Type" content="text/html">
<link rel="stylesheet" type="text/css" href="pdmanual.css" media="screen">
</HEAD>
<BODY>
<H2>Pd Documentation chapter 1: introduction</H2>
<P>
<A href="index.htm#s1"> back to table of contents </A>
<BR><BR>
</P>
<P>
This is the HTML documentation for the Pd computer program.
Pd is free and can be downloaded from the internet;
go to
<A href="http://www.crca.ucsd.edu/~msp/software.html">
http://www.crca.ucsd.edu/~msp/software.html</A>
to get it.
<H3> <A name=s1> 1.1. guide to the documentation </A> </H3>
<P> Pd's documentation consists of:
<UL>
<LI> this HTML manual
<LI> "reference" patches, one for each kind of object in Pd
<LI> "example" patches showing how to do things
<LI> sample C code
</UL>
<P>
This manual has five sections:
<OL>
<LI> this overview
<LI> <A href="x2.htm">
a theory of operations, explaining how Pd works </A>
<LI> <A href="x3.htm">
instructions on installing Pd and getting it to run </A>
<LI> <A href="x4.htm"> how to write C extensions to Pd </A>
<LI> <A href="x5.htm"> release notes and known bugs </A>
</OL>
<P> In order to consult the reference and example patches, you'll first have
to get Pd started as explained in this manual.
<P>
For a list of all the objects you can use in Pd, see the text file,
"0.INTRO.txt" in the directory, "../5.reference". To get help on any
Pd object you can right click on it; or you can browse the help patches
by choosing "Pure Documentation..." in the Pd help menu and looking in
5.reference.
<P>
The example patches are also available from the "Pure Documentation..." item
in Pd's
"help" menu. The example patches appear in subdirectories named
"2.control.examples", "3.audio.examples" and "4.fft.examples." Some additional
patches in "7.stuff" might also be helpful.
<P>
To get started writing your own C extensions, refer to chapter 4 of this manual.
<H3> <A name=s2> 1.2. other resources </A> </H3>
<P> There is a new Pd community web site,
<a href="http://www.pure-data.info/"> pure-data.info</a>, which aims to be the
central resource for Pd, from documentation and
downloads; to forums, member pages, a patch exchange.
<P> There is a growing number of Pd-related projects hosted at
<A HREF="http://pure-data.sf.net">SourceForge</A>. This is open to all Pd
developers, and all are encouraged to join; send an email to the pd-dev list
(see below).
<P>
Most of the interesting resources related to Pd show up on the Pd mailing list,
maintained by Iohannes Zmoelnig. To subscribe or browse the archives
visit:
<A href="http://iem.kug.ac.at/mailinglists/pd-list/">
http://iem.kug.ac.at/mailinglists/pd-list/</A>.
. This is the
best source of recent information regarding installation problems and bugs. It
is perfectly reasonable to post "newbie" questions on this list; alternatively
you can contact msp@ucsd.edu for help.
<P> Many extensions to Pd are announced on the mailing list. In particular,
for people interested in graphics, there is a A 3D graphics rendering package,
named GEM, based on OpenGL, written by Mark Danks, adapted to Linux by
Guenter Geiger, and now maintained by Iohannes Zmoelnig. GEM runs on
Windows and Linux and probably will run with some coaxing on IRIX. You can get
it from: <A href="http://iem.kug.ac.at/GEM">http://iem.kug.ac.at/GEM</A> .
<P> At least three video processing packages are available for Pd. The oldest
is Framestein, by Juha Vehvilainen. This runs on Windows only: <A
href="http://framestein.org"> http://framestein.org </A>.
<P> The newer <A> href="http://zwizwa.fartit.com/pd/pdp/overview.html"> PDP
<A> library, by Tom Schouten, and its extension <A
href="http://ydegoyon.free.fr/pidip.html"> PiDiP </A> by Yves Degoyon, run well
in linux and has been ported to Windows and MacOS. Video is extremely fast in
PDP, but is currently limited to 240x320 resolution.
<P> Mathieu Bouchard has written <A href=http://artengine.ca/gridflow/>
Gridflow </A>, which runs on linux and MacOSX. The mathematical operators are
more powerful than in PDP, and the design makes smarter use of cache behavior
in modern CPUs.
All this and much more is described in detail at the
<A href="http://puredata.info/community/projects/convention04/">
first Pd Convention </A>.
<P>
Here are some more Pd links (in the order I found them): <BR>
<a href="http://www.crca.ucsd.edu/~msp"> Miller Puckette's home page</a><br>
<a href="http://gige.epy.co.at/"> Guenter Geiger's home page</a><br>
<a href="http://www.danks.org/mark"> Mark Dank's home page</a><br>
<a href="http://wonk.epy.co.at">Pd page on Wonk (Klaus)</a><br>
<a href="http://iem.kug.ac.at/~zmoelnig/index.html">
Johannes M Zmoelnig</a><br>
<a href="http://iem.kug.ac.at/~math/pd/"> Norbert Math's Pd page</a> <br>
<a href="http://iem.kug.ac.at/pdwiki/">
Nicolas Lhommet's WikiWikiWeb page for Pd</a><br>
<a href="http://iem.kug.ac.at/pdb/"> Norbert's searchable list of all known
Pd objects</a><br>
<a href="http://suita.chopin.edu.pl/~czaja/miXed/externs/xeq.html">
Krzysztof Czaja's MIDI file support </a><br>
<a href="http://www.davesabine.com/media/puredata.asp?action=pddp">
David Sabine's Pd Documentation Project:
new, highly detailed help windows</a><br>
<a href="http://www-ccrma.stanford.edu/planetccrma/software/soundapps.html#pd">
Fernando Pablo Lopez's augmented Pd RPMs from Planet CCRMA</a><br>
<a href="http://suita.chopin.edu.pl/~czaja/miXed/externs/cyclone.html">
Cyclone - Krzysztof Czaja's Max compatibility library</a><br>
On-line book project:
<A HREF="http://www.crca.ucsd.edu/~msp/techniques.htm"
<I> Theory and Techniques of Electronic Music </I> <br>
</BODY>
</HTML>
This diff is collapsed.
This diff is collapsed.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<TITLE>Pd Documentation 4</TITLE>
<meta http-equiv="Content-Type" content="text/html">
<link rel="stylesheet" type="text/css" href="pdmanual.css" media="screen">
</HEAD>
<BODY>
<H2>Pd Documentation chapter 4: writing Pd objects in C</H2>
<P>
<A href="index.htm#s4"> back to table of contents </A>
<BR><BR>
</P>
<P>You can write your own objects that you and others can use in their Pd
applications. You can write them in C or (if you're smart and brave) in C++ or
FORTRAN.
<P> HOW EXTERNS ARE LOADED
<P> Whenever you type the name of an object
(into an "object" text box) that Pd doesn't yet know about, Pd looks for a
relocatable object file, named, for instance, "profile.pd_irix5". Pd looks
first in the directory containing the patch, then in directories in its
"path." Pd will then add whatever object is defined there to its "class list,"
which is the set of all Pd classes you can use. If all this works, Pd then
attempts again to create the object you asked for, this time perhaps
successfully. There is no difference between an object defined this way and an
object built into Pd.
<P> Once you load a new object into Pd, it's there for the duration of your Pd
session. If you load another Pd document which supplies a different version of
some Pd object, the object won't be updated. IF you're working on a new object
and decide to change it, you have to exit and re-enter Pd to get the change to
take.
<P> In the "externs" subdirectory of the documentation you
can find simple examples of "externs" with their source code and test patches;
there are many other on the web (see <a href="x1.htm#s2">section 1.2 </A>).
<P> Iohannes Zmoelnig has written an excellent guide to writing externs at
<A href="http://iem.kug.ac.at/pd/externals-HOWTO/">
http://iem.kug.ac.at/pd/externals-HOWTO/</A> .
<P> A paper by Theo Stojanov on the subject is at:
<A href="http://www.music.mcgill.ca/~theo/html/audio/pd_externs.pdf">
http://www.music.mcgill.ca/~theo/html/audio/pd_externs.pdf </A> .
<P> NT HINT: In NT, Pd is compiled using Visual C 6.0. If you have VC 5.x
your externs won't compile against Pd; you'll get an error about "disk full