ZenGarden
Copyright RjDj, 2009
By Martin Roth <[email protected]>
ZenGarden is a standalone library for running Pure Data patches.
It is beta quality software - expect bugs and don't expect everything to be
implemented.
https://github.com/mhroth/ZenGarden/
Mailing list:
http://groups.google.com/group/zengarden?pli=1
Requirements
------------
libsndfile
- OSX: port install libsndfile
- Debian GNU/Linux: apt-get install libsndfile1-dev
- Nintendo DS: *experimental* see below
java - for the java example - you need at least java5
- Debian: apt-get install sun-java6-jdk
python - for the python example
- ctypes (in Python 2.5 or greater)
- pygame - http://pygame.org/
Run
---
The following commands both optionally take the full path to a Pd patch as
their first argument:
* `./runme-java.sh`
* `./runme-python.sh`
Build
-----
Here is how to build the library, JNI, etc. from scratch.
cd src
make
You can build individual components like so:
# build the library as a shared object file
make libzengarden
# build the Java Native Interface as a shared object file
make libjnizengarden
# build the Java hosted example
make examplegarden
Build: Nintendo DS
------------------
To build for Nintendo DS you first need to build libsndfile for NDS:
* Download it from http://www.mega-nerd.com/libsndfile/#Download
* Run the following commands in the directory where you unpacked the libsndfile source:
export PATH=$PATH:$DEVKITARM/bin/
./configure --enable-shared=no --enable-static=yes --disable-largefile --disable-alsa --disable-sqlite --host=arm-eabi --disable-external-libs --disable-test-coverage
make
# you may experience some errors to do with tests, but the .a file should be built anyway
# now copy the libsndfile.a library into your ZenGarden development directory
cp src/.libs/libsndfile.a ../ZenGarden/src/
# finally, copy the sndfile.h header file to the ZenGarden development directory
cp src/sndfile.h ../ZenGarden/src/
Finally, to build a static library for the nintendo DS, invoke the following command:
OS=nds make libzengarden-static
This will create ../libs/nds/libzengarden.a and you can use this library to
statically link into your nintendo DS programs.
Advantages
----------
Why use ZenGarden?
* Clean code and API
* Portable and embeddable
* Embedded devices, synthesizers
* Mobile phones
* Inside other languages
* LADSPA, VST, etc.
* Compiling Pd as a library is non-trivial and requires modifications to Pd vanilla
* Less bloat
* No GUI
* No hardware specific audio driver code
Layout
------
src/
- Source code
src/me/
- Java JNI demo source
Xcode/
- Xcode project
pd-patches/
- Demo Pd patches
pd-patches/unittest/
- Pd patches for doing unit testing of ZenGarden