Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
ZenGarden is a stand-alone library for running Pure Data patches.
C++ Java Pure Data C Python Objective-C Shell
tree: 2457471277

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
Xcode
examples
libs
pd-patches
scripts
src
test
.gitignore
COPYING
COPYING.LESSER
OBJECTS.txt
README
jni
junit-4.8.2.jar
pyExampleGarden.py
runme-java.sh
runme-python.sh
runme-test.sh

README

ZenGarden
Copyright RjDj, 2009
By Martin Roth <mhroth@rjdj.me>

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

Something went wrong with that request. Please try again.