/libpd

Pure Data embeddable audio synthesis library

Primary LanguageCOtherNOASSERTION

libpd

Pure Data as an embeddable audio synthesis library

Copyright (c) Peter Brinkmann & the libpd team 2010-2015

Documentation

See our website and book at http://libpd.cc

For documentation of libpd, see the wiki: https://github.com/libpd/libpd/wiki

If you are using Processing, iOS, or Android, see our companion repositories:

Repository Layout

pure-data

The folder containing the sources of Pd Vanilla and standard externals. This is a git submodule of Miller Puckette's official Pd git repository:

git://git.code.sf.net/p/pure-data/pure-data 

If you're cloning this repo, make sure to checkout the submodule:

git submodule init
git submodule update

libpd_wrapper

This folder contains the source files that make up the core of libpd.

Android.mk, Makefile, libpd.xcodeproj, libpd_win.sln

Build support for various platforms. Feel free to improve the build system in any way you see fit.

Currently the main Makefile builds a dynamic lib on Windows (in MinGW), Linux, & Mac OSX and has the following targets:

  • libpd: (default) builds if no target is specified, builds the libpd.so/dylib/dll
  • cpplib: builds libpd with the cpp wrapper
  • csharplib: builds libpdcsharp.dll (tested on Windows only)
  • javalib: builds libpdnative and the jni wrapper
  • clean: removes the object files
  • clobber: removes the linked library files
  • install: installs libpd C library (+ C++ if built) and headers, set location with prefix= (default: /usr/local)
  • uninstall: removes libpd C library and headers, set location with prefix= (default: /usr/local)

Makefile options allow for conditional compilation of libpd util and pd extra externals sources into libpd as well as other options:

  • UTIL=true, compiles libpd_wrapper/util ringbuffer and print concatenator
  • EXTRA=true, compiles pure-data/extra externals which are then inited in libpd_init()
  • DEBUG=true, compiles libpd with -Wall & no optimizations

For example, to build libpd with both util and extra:

make UTIL=true EXTRA=true

java, csharp, objc, cpp, python

Glue for using libpd with Java, C#, Objective C, C++ and Python. Feel free to improve or add support for other languages such as Lua.

samples

Contains small sample programs and tests in the various supported langauges.

Java Builds

Ready-made binaries for Java are available at libpd-java-build: https://github.com/wivlaro/libpd-java-build/blob/master/libpd.jar (may not be up to date)

CocoaPods

If you are using XCode to build iOS apps, you can use CocoaPods to add libpd to your project.