Pure Data (Pd) is a programming language for digital audio and more. Written by Miller Puckette in the 1990s and under active development ever since, Pd has established itself as one of the leading open-source packages for computer music, and it remains largely interoperable with its commercial cousin, Max/MSP. A Pd program, called a patch, is a graphical representation of the flow of audio signals and control messages in a piece of music that Pd will execute in real time; changes to a patch take effect immediately.
Its interactive and visual nature accounts for much of the appeal of Pd. Pd has been popular in computer music circles since its appearance in 1996, and recent years have seen its adoption in commercial projects, most notably the computer game Spore by Electronic Arts and Inception the App by Reality Jockey Ltd., which made the London Times list of top 500 iPhone apps.
Inception the App is based on libpd, a thin layer on top of Pd that turns Pd into an embeddable audio library. Since the appearance of libpd in July 2010, a growing numberof developers have been using libpd in their projects. Other noteworthy examples include Sonaur for Android, NodeBeat for Android and iOS, and Pugs Luv Beats for iOS.
This book is about libpd as an audio engine for mobile apps. We will focus on musical apps that require sophisticated audio processing capabilities, but libpd also has potentialas an audio engine for games. As processors become more powerful, games may reduce their use of canned samples and synthesize music and sound effects instead. Procedural audio in games has much creative and expressive potential, and libpd is an excellent platform for it.
This book is primarily aimed at developers who want to equip their mobile apps with audio capabilities that go beyond the mere triggering of samples, as well as composersand sound designers who want to deploy their work on mobile devices. If you are managing a project with multiple developers, the discussion of the delineation of the interface between audio components and the rest of the app will help you structure roles and responsibilities in your team.