Hi all,
(Sorry for crossposting.)
This should be interesting for all who want to extend their Pd with programs written in languages other than C/C++. I have created Pd plugin interfaces for these two languages:
- Q, a functional programming language based on term rewriting (my own creation; see http://q-lang.sf.net). Q is a modern-style functional programming language in which functions are defined by equations. It also has an extensive collection of modules for doing graphics and multimedia. My Pd/Q external allows you to execute Q functions in order to do complicated control stuff in Pd, and it also provides a way to access Q's multimedia interfaces inside Pd. This is available as a source tarball (pd-qext-0.1.tar.gz); RPMs for Linux systems are also available.
- Faust, Yann Orlarey's functional DSP programming language (http://faudiostream.sf.net). Faust's programming model combines two approaches: functional programming and block diagram composition. You can think of Faust as a structured block diagram language with a textual syntax. The resulting C++ code is heavily optimized and can compete in speed with handwritten C code. My Faust architecture file allows Faust programs to be translated to Pd externals using the Faust compiler. This makes it very easy to create new audio externals for Pd, and a bunch of examples are readily available. I have also written a Q script which generates complete Pd patches with graph-on-parent GUIs from Faust programs. This stuff can be found in the faust2pd-1.0.tar.gz package.
You can find all the good stuff, including documentation and a lot of examples on the Q website at: http://q-lang.sourceforge.net/examples.html#Multimedia (see the bottom of this page). The Faust interface will also soon be available as a part of the mainstream Faust distribution.
Yann and me will show Faust, Q and their Pd and SuperCollider interfaces at the International Computer Music Conference (ICMC) next week in New Orleans, so if you have an opportunity to come we hope to meet you there. (The presentation is on the very last day of the conference, Sat Nov 11th, 3:30 p.m., see http://www.icmc2006.org.)
For more information please see http://faudiostream.sf.net and http://q-lang.sf.net.
Enjoy. :) Albert