Possible Mentors
Chris McCormick
Description
**LibPD: Pd's Engine as a Library**
Several people have expressed interested in embedding Pd's audio engine inside their application, often a game, and Pd has already been implemented in at least one commercial game (Spore) and one commercial application (RjDj). At the moment, using Pd's engine as a library is kind of annoying. There is no default makefile target to build it like that and you have to tweak and mess about with things quite a lot.
For this summer of code task we'd like to see it become easy to compile and distribute Pd's engine as a standalone library, to enable it to be embedded inside other programs.
The result should be:
-
Modifications to the makefile to provide a libpd.so target (cross platform).
-
Example code for linking Pd into your own projects.
-
Support the different options for the scheduler integration and multi-threading vs. multi-process (see mailing list threads below)
Articles about Pd in games:
-
Gamasutra article on using Pd: http://www.gamasutra.com/resource_guide/20030528/paul_01.shtml
-
Pd in spore post: http://lists.puredata.info/pipermail/pd-list/2007-11/056324.html
Some useful links to start:
-
http://pure-data.svn.sourceforge.net/viewvc/pure-data/trunk/pd/src/ : Pd's source code
-
The following threads: http://lists.puredata.info/pipermail/pd-list/2007-12/057951.html , http://lists.puredata.info/pipermail/pd-list/2008-02/059463.html
-
Chris McCormick's post in this thread includes a makefile example: http://lists.puredata.info/pipermail/pd-list/2008-02/059572.html
-
Good messages from Miller Puckette in the same thread: http://lists.puredata.info/pipermail/pd-list/2008-02/059540.html http://lists.puredata.info/pipermail/pd-list/2008-02/059612.html
-
And one more thread where Miller discusses this more and gives example code: http://lists.puredata.info/pipermail/pd-list/2008-12/066755.html
Required Skills
-
C programming
-
Some knowledge or interest in learning about the basics of Pd's core, scheduler etc.
-
Some knowledge of build systems (makefiles, autoconf) on Linux, Windows and OS-X