Skip to content

rvega/ZenGarden

 
 

Repository files navigation

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

About

ZenGarden is a stand-alone library for running Pure Data patches.

Resources

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 89.1%
  • Pure Data 5.6%
  • Java 3.6%
  • C 1.2%
  • Other 0.5%