/usr/share/puredata/doc/1.manual/x3.htm is in puredata-doc 0.47.1-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<TITLE>Pd Documentation 3</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 3: Getting Pd to run</H2>
<P>
<A href="index.htm#s3"> back to table of contents </A>
<BR><BR>
</P>
<P> The following are basic instructions on how to get Pd installed and running
on your machine. More details are maintined online on the
<A href=http://www.pure-data.info/>pure-data.info</A> site.
<P>Pd runs under Microsoft Windows, Linux, and MacOS (10.2 or later). How to
get Pd up and running depends on your operating system, but the overall strategy
is the same. You must first get and install it, and then untangle whatever
problems arise in handling audio and MIDI input and output, and finally get Pd
to meet its real-time obligations reliably.
<P> Installation instructions are platform-specfic; the following three
sections
will describe what to do for various operating systems you might have.
In case of trouble also consult the Pd mailing list archive on
<A href="http://iem.at/mailinglists/pd-list/">
http://iem.at/mailinglists/pd-list/</A>
, which often has late-breaking news about configuration problems and solutions.
The rest of this section describes how to get audio and MIDI to work.
<H3> <A name=s1.0> 3.1. Audio and MIDI </A> </H3>
<P>
To test audio and MIDI, start Pd and select "test Audio and MIDI" from the
"Media" menu. You should see a window like this:
<CENTER><P>
<IMG src="fig11.1.png" ALT="test tone patch">
</P></CENTER>
<P> First, try to get Pd to play a sine wave over your speakers. The "TEST
TONE" control at top left turns this on and off. Normally, all the output
channels are turned on so that when you turn the tone on (to a soft -40 dB or a
louder -20 dB) you should get output on the first eight of your output channels.
(If you have fewer than 8 output channnels open, the extra
channels aren't played; and if you have more, this particular patch won't
use them.)
<P> If there's anything wrong, the most likely outcome is that you will hear
nothing at all. This could be for any of at least three reasons: Pd might
have failed to open the audio device; the audio card's output volume might
be set to zero; or your audio system might not be set to amplify the computer
output.
<P> The number boxes labeled "AUDIO INPUT" show the levels of incoming
audio, in dB, with 100 being maximum. (Incoming signals may clip at
RMS levels below 100; for instance, a sinusoid clips at about 97 dB.)
Any DC present in the input (such as you get with cheap audio hardware)
will show up as level unless you turn on the "input hipass" toggle
at right; then the DC component is filtered out before metering.
<P> To test the quality of audio input and output, turn on "monitor"
(also at right) which causes the inputs to be played to the outputs at
unit gain. You should hear a faithful, non-distored copy of whatever is
sent through the patch.
<P> It is easy to get two copies of Pd running by accident; on most machines
only one at a time may be inputting and outputting sound. (Some copy of Pd
might have audio or MIDI devices open and prevent the copy you're trying to use
from getting access to them.) Having extra
copies of Pd around will also eat CPU cycles uselessly.
<P>
You may be interested in getting only audio output or audio input, or
you may need both to run simultaneously. By default, Pd will try to run
both, but if you don't need either input or output, you may find that Pd
runs more reliably, or at least more efficiently, with the unused direction
turned off. This may be specified in Pd's command line flags or using the
"audio settings" dialog panel.
<P>
Depending on your application you will have a more or less stringent latency
requirement. Ideally, when any input (audio, MIDI, keyboard, network) is
available, the outputs (in particular the audio output) should react instantly.
In real life, it is necessary to buffer the audio inputs and outputs, trying
always to keep some number of milliseconds ahead of real time to prepare for the
inevitable occasions where the CPU runs off to service some different task
from Pd. How small this latency can be chosen depends on your OS and your
audio driver.
<P> TIP: If Pd starts up but you get distortion or glitches in the audio
output, this could be either because the "audio I/O buffer" isn't big enough,
or else because the CPU load of the patch you're running is too great for the
machine you have, or else because the ADC and DAC are out of sync or even at
different sample rates. To test for the first possibility, try increasing the
audio latency in the command line or the "audio settings" dialog (but see also
under your OS below.) For the second, start up your favorite performance
monitor program; and for the third, try starting Pd up with ADCs disabled.
<P> In addition to the "test audio and MIDI" patch, the "Media" menu
contains items for controlling audio and MIDI settings. The first two
items, "Audio on" and "Audio off", open or close the audio devices and
start or stop Pd's audio computation.
<P> If there is a choice of
audio API to make, the Media menu will display them. (On Linux, they are
OSS, ALSA, and Portaudio; on Windows, you get MMIO and ASIO). On Mac the only
one is portaudio. More information
about the APIs appears in the sections below.
<P> Selecting an API (even if it's the one already in use), or, alternatively,
selecting "Audio Settings..." from Preferences, opens
a dialog panel like this:
<CENTER><P>
<IMG src="fig11.2.png" ALT="audio settings dialog">
</P></CENTER>
The exact choices you get depend on the operating system and API. The sample
rate controls both audio output and input. The audio throughput delay is
the nominal amount of time, in milliseconds, that a sound coming into the
audio input will be delayed if it is copied through Pd straight to the
output. Naturally you would like this to be as small as possible, but,
depending on OS, API, and even the specific choice of audio hardware, there
will be a limit to how small you can make this. You can typically get
10 msec on linux (and lower still if you use special tricks), 30 msec on Mac
OSX, and 60 msec on Windows (but note that there might be ways that a
patient Windows user can reduce this).
<P> Next you get a choice of input and output device. If you want to open
more than one, hit "use multiple devices" and you'll be allowed up to 4
in and 4 out. Each audio device is 2 channels by default, but you may
specify more if your hardware supports it.
Other parameters may be tweaked using the command line; see under
<A href=#s4> preferences and startup options </A>.
<H6> MIDI </H6>
<A> The "channel message" midi objects in Pd
such as notein or pgmout will take channels 1-16 to mean the first open MIDI
port, 17-32 the second one, and so on. The midiin, sysexin, midiout objects
give you a separate inlet to specify which of the open MIDI port numbers
you want.
<P> System exclusive MIDI message input and output are theoretically supported
but does not work uniformly across all operating systems..
<H3> <A name=s1.1> 3.2. Installing Pd in Microsoft Windows </A> </H3>
<P> Pd should work under any version of Windows since 95. You can download as
a self-extracting archive (a ".exe" file). Run this and select a destination
directory when prompted, such as "\pd" or "Program Files\pd".
<P> If for example you put Pd in "C:Program Files\pd", the executable program
will be "C:Program Files\pd\bin\pd". You can simply adjust your path to
include C:\pd\bin and then invoke "pd" in a command prompt window. You can also
make a shortcut to the executable program (left-click on it and drag to the
desktop, for example.)
<P> Pd requires "TCP/IP networking" to be turned on. This doesn't mean you
have to be on a real network, but simply that Pd actually consists of two
programs that make a "network link" (locally) to intercommunicate.
<H4> Audio in Microsoft Windows </H4>
<P>
Pd offers both the ASIO and MMIO APIs in Windows. Which of these works better
will depend on your audio hardware.
<P>
MIDI timing is very poor if you are using simultaneous audio input and output;
if you suppress either audio input or output things will improve somewhat under
NT; you can apparently get the jitter down to ~40 msec. On W95 performance is
simply terrible. W98, with either audio input or output suppressed, offers
fairly good MIDI timing (~5 msec jitter). The "first edition" used to crash
occasionally; this might be fixed in the "second edition".
<H4> ASIO </H4>
<P> As of version 0.35 Pd supports ASIO. Invoke Pd as "pd -asio" and, if
needed, specify "-sounddev" (etc.) flags to specify which device (see
"the Pd command line" below.) You can also specify a "-blocksize" different
from the default (256 samples) and "-audiobuf" in milliseconds. Pd will
round this down to a power of two buffers, each of "-blocksize" in sample
frames.
<P> TIP: Often your machine will allow you to use ASIO with built-in PC
audio hardware. Sometimes it is necessary to set a ridiculously high block size
for this to work (on my machine I have to set it to 4096 -- about 1/10 of a
second!)
<P> Using MMIO I've been able to get very low latencies (6 msec) using M-audio
PCI converters (Delta 44).
<H3> <A name=s1.2> 3.3. Installing Pd in Linux </A> </H3>
<P> What to do depends on which flavor of Linux you are running (e.g., Debian
or Red Hat). The instructions here should work for Pd 0.33 and up regardless of
your situation. (If not, you can read the Pd mailing list archives for
recent problems; if you have found a new problem you're welcome to post it
to the list.)
<P> Pd is available via the package systems for some linux distributions,
but not always in the most recent version possible. It's relatively easy to
compile your own copy of Pd and that is the approach described here.
<H4> Getting Pd as a .tar.gz </H4>
<P> Before you start, you might want to check that you have the resources Pd
needs. The main things you need are the C compiler, X windows (including
the X development package for Pd to link against), TK, and the ALSA "devel"
headers. It should be
enough to load "tcl-devel", "tk-devel", and "alsa-devel" packages using
yum or apt-get.
<P> There are two parallel compilation setups now available. The old one is
described here; as of 0.43 I still use that but I plan to discontinue this for
0.44 and start using only the new one (by Hans). The following description
applies to the old one. Look in the INSTALL.txt file to see how to use the
new one.
<P>
Download Pd, perhaps from
<a href="http://msp.ucsd.edu/software.html">
http://msp.ucsd.edu/software.html</A> ,
to file such as "pd-linux-033.tar.gz". Open a "shell"
window, cd to
the directory containing the file, and type the command,
<PRE>
tar xzf pd-linux-033.tar.gz
</PRE>
<P>which creates a directory named "pd". I do this from my home directory.
Next, compile it. "CD" to pd and read the INSTALL.txt, or else just cd
to "pd/src" and type
<P>
<BR> ./configure
<BR> make
</P>
<P> You can pass flags to "configure" to customize your compilation:
<PRE>
To enable debugging (and losing code optimization) add "--enable-debug".
To use Portaudio, add "--enable-portaudio".
To put Pd in /usr/bin instead of /usr/local/bin, add "--prefix=/bin".
</PRE>
Alsa and Jack support should auto-configure, but "--enable-alsa" od
"--enable-jack" will force their inclusion.
<P> After "make", just type "~/pd/bin/pd" to run pd.
<P> Alternatively, as superuser, you can run "make install" after "make depend"
and then anyone on your system can just type "pd" to run it.
<H4> Testing audio and MIDI. </H4>
<P>
Next try audio. We want to know whether audio output works, whether audio
input works, and whether they work simultaneously. First run "aumix" (or
any newer audio mixer app) to
check audio input and output gains and learn which input (mic; line;
etc.) is "recording".
Then test audio output by running
<PRE>
pd -noadc
</PRE>
<P>and selecting "test audio and MIDI" from the "Media" menu. You should see
a patch. Turn on the test tone and listen. Do the usual where's-the-signal
business.
<P>
Then quit Pd and test audio input via
<PRE>
pd -nodac
</PRE>
<P>Re-open the test patch and hit "meter"; look at the levels. 100 dB is a
hard clip; arrange gains so that the input signal tops out around 80 or 90,
but no higher.
<P> Now see if your audio driver can do full duplex by typing "pd" with no
flags. If you see error messages involving /dev/dsp or /dev/dsp2, you're
probably not able to run audio in and out at the same time. If on the other
hand there's no complaint, and if the audio test patch does what you want, you
might wish to experiment with the "-audiobuffer" flag to see what values of
audio latency your audio system can handle.
<H3> Audio hardware in Linux </H3>
<P>
Installing and testing audio and MIDI drivers in Linux can take
days or weeks. There apears to be no single place where you can get detailed
information on Linux audio.
<P>
There are two widely-used driver sets, called "OSS" and "ALSA". ALSA is
included in the standard Linux kernel since 2.4 or so. However, for some
audio cards you can find newer versions than are included in the kernel
releases. You can get ALSA from
<a href="http://www.alsa-project.org/">
http://www.alsa-project.org/</A> .
<P> ALSA is able to emulate OSS, so that you can usually run Pd using the
"OSS" driver settings even if it's actually ALSA that's running.
<P> By default, Pd uses ALSA. You can ask Pd to use ALSA's OSS emulation by
adding the "-oss" flag to the command line or fooling with the "media" menu
items.
<P> You can add ALSA devices by name on the Pd command line:
<PRE>
pd -alsaadd loupgarou
</PRE>
instructs Pd to offer the 'loupgarou' audio device in the Audio Settings panel.
<H4> Experiences with particular soudcards </H4>
<P>
Here are some of my own experiences with sound cards so far. See
also the Pd mailing list archives.
<H6> RME 9652 (Hammerfall) </H6>
<P> This is the best PCI sound card out there; it costs around $500 and has 3 ADAT
I/O ports and one SPDIF. There is a "baby hammerfall" also, which I think is
the "9632." DO NOT CONFUSE THE 9652/9632 WITH OTHER RME BOARDS WHICH MIGHT
NOT WORK WITH PD.
<P> The easiest way to use
Hammerfall boards in Pd is via ALSA and jack; but you can use ALSA alone:
<PRE>
pd -alsa -channels 26
</PRE>
works for me.
<H6> MIDIMAN </H6>
<P>Midiman sells PCI devices (delta 44, 66, 1010, and 1010LT)
with between 4 and 10 channels in and out, for
which there are ALSA drivers. These are also very good, and they are a
bit cheaper than Hammerfalls. The driver name is "ice1712".
<H6> USB sound devices</H6>
<P> Ed Kelly reports success with the Lexicon series of USB 1.0 devices (e.g.,
the Omega Studio; apparently 4 channels in and 4 out). Also known to work well
is the Edirol box (2 channels in and out).
<P> As of Sept. 2011, the only multi-channel USB device I've been able to use
with Pd is the Native Instruments Traktor Audio series. (I have the Audio
Traktor 10 which does indeed get 10 discrete channels in and out; the box is
designed for turntables and the I/O is all RCA. I haven't yet tested whether
the inputs are RIAA equalized or flat. To run this device you'll need to
compile and install an ALSA snapshot from at least September 2011. This won't
start showing up in Linux distros for at least some months.
<P> THe Alsa devel list is reporting progress on the M-audio Ultra series,
which goes up to 6 in and out (analog) with 2 more as SP/DIF. Things work
OK for input or output separately but "full duplex" (in and out simultaneously)
has sync problems.
<H3> <A name="s1.3"> 3.4. Installing Pd in Macintosh OSX </A> </H3>
<P>Pd version 0.35 and up support Macintosh OSX. You need the OSX Jaguar
distribution (10.2) or later. Recent versions of Pd require 10.4 or up.
<P> To install Pd you can always download the sources and compile them
yourself, or (easier) just download the Mac binary from the download page:
<A href="http://msp.ucsd.edu/software.html">
http://msp.ucsd.edu/software.html</A>.
This is in the form of a compressed Tar archive; just click on it and the Max
will extract the Pd application. Open this and you should be running.
<P> You might get various warnings about Pd trying to open an internet port.
This is normal although some system administrators will prevent you from
doing this (in which case you can't run Pd on that machine).
<P> The package by Hans-Christoph Steiner, on
<A href="http://at.or.at/hans/pd/installers.html">
http://at.or.at/hans/pd/installers.html</A>,
has many updates and extensions
which are not included in the original Pd distribution. Download this and
follow the (simple) instructions found there.
</P>
<H4> To install on OSX from source: </H4>
<P>
Whether you've downloaded the source or the "package" you can
always compile Pd for yourself, whether to make your own improvements, or
possibly so that you can get the newest version before it shows up compiled for
Mac OS X.
<P> To be able to compile Pd, you must have Tcl/Tk installed in the standard
places. I think this is true for all reasoably recent releases of OSX.
<P> Then, just as for linux, just unload pd-whatever.tar.gz into a directory
such as ~/pd-0.36-0, cd to pd-0.36-0/src, type "./configure"
and "make". Then type ~/pd-0.36-0/bin/pd to a shell and enjoy!
<P> If you wish you can put a line such as,
<pre>
alias pd ~/pd/bin/pd
</pre>
<P>in the file, ~/.tcshrc, so that you can later just type "pd" to a shell.
(The
shell only reads the ~/.tcshrc file on startup, so this won't take effect in
any existing shells unless you specially type
<pre>
source ~/.tcshrc
</pre>
<P>to them.)
<P> Follow the general directions above for testing audio and/or MIDI
as needed.
<P> To get MIDI working, you have to do the Mac OSX magic to get a USB
MIDI interface installed. I've seen this done with Midisport devices and
I think you just download the OSX driver and follow directions.
<H3> <A name=s4> 3.6. Preferences and startup options </A> </H3>
<P> Pd's behavior may be customized to instruct it where to find files, which
audio devices to open, what font size to use, and so on. Most of
these may also be changed using the various dialogs you can open from Pd's
menus. Others take effect only when Pd starts up; some of these appear
on the ``startup" dialog and some of them, too cranky to put in a GUI, must
be typed as <I> command line arguments </I>.
<P> In addition to the Audio and MIDI settings (see
<A href="#s1.0"> Audio and MIDI </A>), you can customize font size (from the
``edit" menu), directories to search for files (see
<A href="#s5"> How Pd searches for files </A>), and additional startup
parameters described below.
<P> All of these settings may be saved automatically between Pd sessions.
It is also possible to specify settings directly via the <I> command
line </I>. (A third mechanism, using configuration files, is deprecated and
isn't described here.) The Pd command line is described in the next
section. Command line settings, if given, each override the corresponding
setting that was saved from Pd.
<P> The startup settings (i.e., those that take effect only when Pd is started)
are controlled using the ``startup..." dialog from the File menu. The
dialog appears as follows:
<CENTER><P>
<IMG src="fig11.3.png" ALT="startup dialog">
</P></CENTER>
The slots at top each specify a binary ``library" for Pd to load on startup.
These may be for Gem, pdp, zexy, iemlib, cyclone, and so on. Typically, a
single binary object (an ``extern") is left for Pd to load automatically;
startup library loading is appropriate for collections of many objects
specified by a single binary library.
<P> The ``defeat real-time scheduling" contol, if enabled, makes Pd run without
its usual effort to become a real-time process (whatever this means in the
operating system you are using.) In Unix, Pd must usually be setuid to allow
real-time scheduling at all.
<P> The ``startup flags" allow you to add to Pd's command line on startup. This
is specified as described below, except that the initial word, ``pd", is
understood. For example, putting ``-rt" in this field sets real-time
scheduling; ``-sleepgrain 1" sets the sleep grain to 1 (see under MIDI below),
and typing "-rt -sleepgrain 1" does both.
<P> You may save the current settings for future Pd sessions with the
``save all settings" button; this saves not only the path but all other
settings as well.
<H6> Command line arguments </A> </H3>
<P>Pd may be run as a "command line" program from your "terminal emulator,"
"shell," or "MSDOS prompt." In Windows, if Pd is started using a "shortcut"
it is also run from a command line which you can edit using the ``properties"
dialog for the shortcut. In any operating system, Pd can be called from a
script (called a <I> batch file </I> on Windows or a <I> shell script </I>
on OSX or unix). The command line is just a line of text, which should be
of the form:
<PRE>
pd [options] [patches to open]
</PRE>
<P>although you may have to specify a path (such as "~/pd/bin/pd" or
"C:\program files\pd\bin\pd") so your command interpreter can find
Pd. Possible options include:
<PRE>
audio configuration flags:
-r <n> -- specify sample rate
-audioindev ... -- sound in device list; e.g., "2,1" for second and first
-audiooutdev ... -- sound out device list, same as above
-audiodev ... -- specify both -audioindev and -audiooutdev together
-inchannels ... -- number of audio in channels (by device, like "2" or "16,8")
-outchannels ... -- number of audio out channels (by device)
-channels ... -- specify both input and output channels
-audiobuf <n> -- specify size of audio I/O buffer in msec
-blocksize <n> -- specify audio I/O block size in sample frames
-sleepgrain <n> -- specify number of milliseconds to sleep when idle
-nodac -- suppress audio output
-noadc -- suppress audio input
-noaudio -- suppress audio input and output (-nosound is synonym)
-listdev -- list audio and MIDI devices
(linux specific audio:)
-oss -- use ALSA audio drivers
-alsa -- use ALSA audio drivers
-pa -- use portaudio (experimental version 19)
-alsadev <n> -- obsolete: use -audiodev
-32bit -- (probably obsolete) -- use 32 bit OSS extension
-alsaadd <dev> -- add a device to the ALSA device list
(Windows specific audio:)
-mmio -- use MMIO drivers and API
-asio -- use ASIO drivers and API
MIDI configuration flags:
-midiindev ... -- midi in device list; e.g., "1,3" for first and third
-midioutdev ... -- midi out device list, same format
-mididev ... -- specify -midioutdev and -midiindev together
-nomidiin -- suppress MIDI input
-nomidiout -- suppress MIDI output
-nomidi -- suppress MIDI input and output
-alsamidi -- use ALSA midi API
general flags:
-path <path> -- add to file search path
-nostdpath -- don't search standard ("extra") directory
-stdpath -- search standard directory (true by default)
-helppath <path> -- add to help search path
-open <file> -- open file(s) on startup
-lib <file> -- load object library(s)
-font <n> -- specify default font size in points
-verbose -- extra printout on startup and when searching for files
-version -- don't run Pd; just print out which version it is
-d <n> -- specify debug level
-noloadbang -- suppress all loadbangs
-stderr -- send printout to standard error instead of GUI
-nogui -- suppress starting the GUI
-guiport <n> -- connect to pre-existing GUI over port 'n'
-guicmd "cmd..." -- substitute another GUI program (e.g., rsh)
-send "msg..." -- send a message at startup (after patches are loaded)
-rt or -realtime -- use real-time priority (needs root privilege)
-nrt -- don't use real-time priority
-nosleep -- never relinquish CPU (only for multiprocessors!)
</PRE>
<P>Here are some details on some of the audio, MIDI, and scheduler options (but
see also the next section on file management.)
<H4> multiple devices. </H4>
<P> You can specify multiple MIDI input and output devices. For example,
"pd -midiindev 3 -midioutdev 4,2" asks for the third MIDI input device and the
fourth and second MIDI output device.
<P> Audio device selection is similar, except that you can also specify
channels by device: "-audioindev 1,3 -inchannels 2,8" will try to open device 1
(2 channels) and device 3 (8 channels.)
<H4> sample rate. </H4>
<P>The sample rate controls Pd's logical sample rate which need not be that of
the audio input and output devices. If Pd's sample rate is wrong, time will
flow at the wrong rate and synthetic sounds will be transposed. If the output
and input devices are running at different rates, Pd will constantly drop frames
to re-sync them, which will sound bad. You can disable input or output if this
is a problem.
<H4> audio buffer size and block size </H4>
<P>You can specify an audio buffer size in milliseconds, typically between 10 and
300, depending on how responsive your OS and drivers are. If this is set too
low there will be audio I/O errors ("data late"). The higher the value is,
on the other hand, the more throughput delay you will hear from the audio
and/or control inputs (MIDI, GUI) and the audio coming out.
<P> You can also specify the audio block size in sample frames. This is 64 by
default (except for MMIO for which it's 256), and may be 64, 128, or 256.
<H4> MIDI and sleepgrain</H4>
<P> In Linux, if you
ask for "pd -midioutdev 1" for instance, you get /dev/midi0 or /dev/midi00
(or even /dev/midi). "-midioutdev 45" would be /dev/midi44. In NT, device
number 0 is the "MIDI mapper", which is the default MIDI device you selected
from the control panel; counting from one, the device numbers are card
numbers as listed by "pd -listdev."
<P> The "sleepgrain" controls how long (in milliseconds) Pd sleeps between
periods of computation. This is normally the audio buffer divided by 4, but
no less than 0.1 and no more than 5. On most OSes, ingoing and outgoing MIDI
is quantized to this value, so if you care about MIDI timing, reduce this to 1
or less.
<H3> <A name="s5"> 3.7. How Pd searches for files </A> </H3>
<P>Pd has a search path feature; you specify the path on the command line
using the "-path" option. Paths may contain any number of files. If you
specify several files in a single "-path" option they're separated by colons
in unix or semicolons in NT.
<P> You can see and edit the path while Pd is running using the "path..."
item in the "File" menu:
<CENTER><P>
<IMG src="fig11.4.png" ALT="startup dialog">
</P></CENTER>
<P> The path must be correctly set before you load
a patch or it may fail to find abstractions, etc., that are needed to
construct the patch. When Pd searches for an abstraction or an
"extern" it uses the path to try to find the necessary file. The "read"
messages to qlists and arrays (aka tables) do this too.
<P> If ``use standard extensions" is enabled, the usual ``extras" directory
is also searched. This contains standard external objects like ``expr" and
``fiddle", and perhaps much more depending on the distribution of Pd
you're using.
<P> You may save the current settings for future Pd sessions with the
``save all settings" button; this saves not only the path but all other
settings as well.
<P> Path entries may be relative to the patch directory; for instance,
if your path has an item, "../sound", and your patch is in "my stuff/all mine",
then Pd will look in "my stuff/sound". Spaces should be OK in the path to
the patch, but not in the path entry (../sound) itself. This is useful if
you have a patch and supporting files (even a supporting snapshot of pd)
that you want to distribute or carry around together.
<P> Regardless of path, Pd should look first in the directory containing
the patch before searching down the path. Pd does not automatically look
in the <I> current directory </I> however; to enable that, include ``." in
the path. The ``extra" directory, if enabled, is searched last.
<P> Filenames in Pd are always separated by (unix-style) forward slashes, even
if you're on Windows (which uses backslashes). This is so that patches can be
ported more easily between operating systems. On the other hand, if you
specify a filename on the command line (as in "pd -path c:\pdlib") the file
separator should agree with the operating system. <BR>
<P> If a filename specified in a patch has any "/" characters in it, the "path"
is not used; thus, "../sounds/sample1.wav" causes Pd only to look relative to
the directory containing the patch. You may also invoke externs that way.
<P> As of version 0.35, there may be spaces in the path to Pd itself; also,
the "openpanel" and "savepanel" objects can handle spaces. Spaces in the
path should work as of version 0.38.
</BODY>
</HTML>
|