Personal tools
You are here: Home documentation old attic old pure-data faq
Document Actions

old pure-data faq

by Not dedicated last modified 2007-05-06 06:59 PM

This is a member-managed FAQ wiki. If you have something to contribute to this page, log into pure-data.org and you will have edit access.

Question

* What is Pd?

* What is Pure Data Dot Org?

* What do I need to run Pd?

* Where can I download Pd and related software?

* How much does Pd cost?

* Where can I get Pd documentation?

* Can I run Pd on a Mac?

* Can I run Pd on Windows?

* Can I run Pd on GNU/Linux?

* Can I use Pd to run patches written in Max/MSP?

* Can I use Pd to run Max/MSP externals?

* Can I use Pd with plugins?

* What is the difference between Pd, Max/MSP, and jMax?

* Where can I find a list of all the native objects in pd?

* Where can i get get answers to all my questions?

* How do I un/subscribe from the mailing list?


Answer

* What is Pd?

"Pd" stands for "pure data". Pd is a real-time software system for live musical and multimedia performances. It is in active development by Miller Puckette , and perhaps others. The system is unfinished, but quite useable for sophisticated projects. It has been ported to GNU/Linux, !MacOS X, IRIX, BSD, and many flavors of Windows.

* What is Pure Data Dot Org?

Pure Data Dot Org is a "highly content-managed" source of information for the Pd user community. It is running on [Plone | http://www.plone.org] It is run by a number of volunteers and hosted at [ IEM | http://iem.at ] in Graz, Austria.

* What do I need to run Pd?

Pd will compile and run on any machine capable of running GNU/Linux, !MacOS X, IRIX, BSD or Windows NT. If you want to do simple MIDI processing, any old 486 will probably be sufficient. If you want to do real time audio synthesis or other fancy multimedia, you will need a big fast computer. The bigger and faster, the better.

To do MIDI and audio you will need appropriate MIDI and audio hardware, as well as the appropriate driver software for your operating system to utilize that hardware. Some Pd extensions may need or be enhanced by other special hardware. For example, the GEM library needs a good GL library and the 3D hardware to make it worthwhile. Since Pd is primarily for real-time performance, you will probably also be interested in using special input devices. Joysticks, 3D mice, and MIDI controllers of all kinds can make your Pd experience much more rewarding.

Be forewarned that Pd is still in development. To use Pd at this stage you will need some patience and a sense of adventure.

* Where can I download Pd and related software?

There are many places Pd and related software can be obtained. Check the downloads section of this web site for a somewhat comprehensive list.

* How much does Pd cost?

Pd is free software. The specific license under which the Pd source code is released is similar to the BSD license. What this means is Pd is available free of charge. You are also free to modify and share the source code so long as you do not deny others these same freedoms.

Happily, you will find most (if not all) of the software associated with Pd is similarly liberated, mostly being released under the GNU GPL.

* Where can I get Pd documentation?

You can browse the Pd documentation online at on "Miller Puckette's site"|http://crca.ucsd.edu/~msp or "this site"|/docs. However, the best documentation can only be viewed by running Pd. Click on the "Pure Documentation" menu item on the "Help" menu when you run Pd.

* Can I run Pd on a Mac?

Pd has not been ported to !MacOS 9 and never will be. Pd will, however, compile and run on a !MacOS X.

* Can I run Pd on Windows?

Yes. Pd runs on any win32 platform, including Windows NT, Windows 2000, Windows 98, Windows 95, and Windows ME. ASIO drivers are supported.

* Can I run Pd on Linux?

Yes. Pd works very well on any reasonably modern version of Linux. OSS and ALSA drivers are fully supported. For best results, patch your kernel for low latency operation.

* Can I use Pd to run patches written in Max/MSP?

The short answer is no. If you have the guts, you can try it. Save the Max patch as a .pat file. Rename it to end in .pd, then try to load it into Pd. In this way we got the metro help page from Max to run in Pd. Although the syntax of the .pd and .pat files is extremely similar, a lot of the objects in Max (aka "externals") have different names in Pd.

Krzysztof Czaja's cyclone project is aimed specifically at Max compatibility.

* Can I use Pd to run Max/MSP externals?

Max/MSP externals run only on Macs running Max/MSP. However, if you have the source code, it is notoriously easy to port a Max/MSP external into a Pd object.

* Can I use Pd with plugins?

Yes. Pd works well with LADSPA and VST plugins (not DirectX plugins, however). You'll need to download and install a separate plugin~ object. Also, it is impossible to use Pd as a plugin itself, at this time.

* What is the difference between Pd, MAX/MSP, and jMax?

Pd is ultimately a redesign of an earlier system that is still in commercial development: MAX/MSP. In fact, the real time audio synthesis portions of MAX/MSP incubated in the Pd project. Pd also has a younger, prettier sister: jMax. All of these projects were masterminded by Miller Puckette and others at IRCAM in France.

There is an abstract for a paper describing the differences available on the the web.

* Where can I find a list of all the native objects in pd?

There isn't a definitive list but you might also check /doc/5.reference/0.INTRO.txt in the documentation that comes with pd.

While you are there, get the directory listing of the /doc/5.reference/ folder and look for objects not already mentioned in 0.INTRO.txt

* Where can i get get answers to all my questions?

If you use pure data you should definitely subscribe to the [PD mailing lists:/community/lists] . If you post a question on the list, it will most likely be answered or at least discussed.

* How do I un/subscribe from the mailing list?

See http://www.pure-data.org/community/lists

--------------------------------------

Category: Main -> Troubleshooting

Question

* How do I get more accurate timing from metro?

* When I run Pd, the "Network is unreachable"?

Answer * How do I get more accurate timing from metro?

If you run pd -noaudio, you will find that the timer error becomes much less, but of course then Pd will not generate audio. There is a discussion on lowering latency in the release notes for version 0.33 that may be helpful. Try reducing the block size, the sleep grain, or try running in stream mode.

* When I run Pd, the "Network is unreachable"?

If you see the error message "connecting stream socket: Network is unreachable" when you start Pd, it means your machine cannot make a network connection to itself. You must configure your loopback network device. In many Linux distributions, you can do this by answering "yes" when the system configuration tools ask if the machine will be "network" (even if it won't).

Category: Main -> How To

Question

* How do I make a local variable?

* How do I make a local array?

* How do I accumulate (or sum) audio outlets of several modules without so many connections?

* How do I write my own Pd externals (or "objects")?

* How do I get better quality audio out of my computer?

* How can I lower latency?

* How do I record and playback from hard disk?

* Can I send data to Pd from other aplication using MIDI? or is it only possible with OSC?

* How do i compile a PD-patch to run as a stand-alone application?

Answer

* How do I make a local variable?

All variable names in Pd are global. There is only one name space for all patches.

One way to hack around this is to use $0 in variable names. For example, "$0-foo". $0 expands to a unique value for each subpatch and abstraction. If you need to share a variable name between two subpatches, but no others, you could pass a "group identifier" into each of those subpatches, and then use $n in variable names where n is the argument number of the group identifier. For example, "$1-foo". Variable names with $n in them work well with send and receive, but it is difficult (if not impossible) to get them into qlists. This solution is discussed in the documentation.

* How do I make a local array?

Use the table object to create arrays with names that begin with $0.

* How do I accumulate (or sum) audio outlets of several modules without so many connections?

Use throw~ and catch~. See the help patches for those objects.

* How do I write my own Pd externals (or "objects")?

There is some documentation for writing new Pd objects in a paper by Theo Stojanov. Also, the API for Max/MSP and Pd is almost identical, so if you find documentation on writing MSP externals, it may be of use.

The usual GNU development environment can be used for writing new Pd objects on Linux or IRIX systems. It is unclear which is the preferred commercial developement environment for win32 systems. Some success has been reported using cygwin.

* How do I get better quality audio out of my computer?

Be sure the Pd audio processing thread is treated specially by the Operating System. On GNU/Linux, do this by running pd with the -rt command line option.

If you are using Linux and the OSS driver, you might try adjusting the size and number of audio fragments Pd uses to talk to the driver. Do this with the -frags <n> and -fragsize <n> command line arguments.

If you are using Linux, you might also have a look at the Linux Audio Quality HOWTO.

* How can I lower latency?

Latency is a measure of how long it takes for a system to react. In Pd, we are primarily concerned with the time it takes for audio, MIDI, or other input to cause audio output. This is "audio latency". For reference, the audio latency between your speakers and your ears is approximately 1 ms per foot.

Under Windows, use the ASIO driver. You're out of luck otherwise.

Under Linux, with a recent version of the stable kernel (2.4.x), special low latency patches, some hard drive tuning, and ALSA drivers, average audio latencies is 1.5 ms. If you really load your system, a maximum audio latency of 3 ms can be reached. Pathological bad cases have been known to cause 8 ms latencies
this seems like the upper bound. More information on low latency under Linux can be found at Benno's site on the subject.

* How do I record and playback from hard disk?

The [sfwrite~] object in the zexy library works quite well for this. There is also [writesf~] and [sfwrite13~].

* Can I send data to Pd from other aplication using MIDI? or is it only possible with OSC?

Yes, you can send MIDI from another application to Pd. The actual method for doing this varies from platform to platform. On win32 platforms, you will need a special "loopback" program. On GNU/Linux platforms, you need to use the ALSA virmidi drivers and configure them correctly.

You are also not restricted to OSC in that you can use netsend and netreceive to move data between other applications and Pd, or multiple sessions of Pd on different nodes of a LAN.

Also, if you use the [netreceive] object, you can send messages to Pd through a network socket from any program.

* How do i compile a PD-patch to run as a stand-alone application?

This is currently not possible. PD patch files are always clear text and need
the PD program to run.

new user question -- impatient to start

Posted by kristin at 2003-09-23 01:36 AM

i am a user, not at the programming level, trying to download PD onto my machine and launch it for the first time. until now i almost never boot in OSX. i know it's probably somewhere in FAQ but i was wondering if someone could just tell me if i need to be a unix programmer to be able to use PD (saw some documentation about porting command lines and so on, and it freaked me out) have a few years of experience with max/msp but want to try this out now. do i just download PD, are the externals in there? is there a separate package for DSP like the MSP portion of MAX? contradicting what most of you probably think now, i can read. just a quick nudge -- or shove -- in the right direction? thank you? kris miltner k

Getting Pd + Externals

Posted by Hans-Christoph Steiner at 2003-09-26 03:05 PM

If you download Pd from Miller Puckette's site, you don't get any of the externals. But if you download one of the Pd distros, like my beta installer here: http://www.pure-data.org/Members/hans, then you'll have some or most of the externals, depending on the distro.

You don't need to be unix programmer to use Pd. It is getting easier and easier, but it is still very much under development, so there are number of bugs that you have to get used to. Also, its newer than Max, so it has less polish. But the bottom line is that with Pd you can do basically anything you can do with Max.

Pd lists

Posted by Hans-Christoph Steiner at 2003-09-26 03:06 PM

I forgot to mention: the best way to get Pd help is to use the list and list archive:

http://iem.kug.ac.at/mailinglists/pd-list/

signal processing is included in Pd

Posted by Frank Barknecht at 2003-10-21 02:28 PM

Pd's signal processing is an integral part of Pd and not an addon like MSP in Max. In fact, I think* but might be wrong here, that Max/MSP was so closely modeled after Pd, that the MSP might also stand for "Miller S. Puckette", the Pd author.

graphics tablet

Posted by adrian de cleir at 2003-10-03 02:51 PM

ok Ive only barely gotten through the first few bits of the tutorials, so I dont know if this question will make much sense as I'm still not sure of how Pd works, but anyway does anyone know if it possible to use a graphics tablet with pd, I need to know this for a project ill be carrying out, thanks adrian

graphics tablets in Pd

Posted by Hans-Christoph Steiner at 2003-10-07 06:00 PM

I am developing a library for supporting HID devices like joysticks, tablets, etc. Its been on hiatus for a while, but its about time I got back to it. Its is based on libSDL, so it should work on GNU/Linux, Windows, and MacOS X, or really anything that libSDL supports.

For more info, look here: http://www.pure-data.org/Members/hans/


Powered by IEM Powered by Plone Section 508 WCAG Valid XHTML Valid CSS Usable in any browser