Beads library - call for feedback and contributions

This is a call to sound and music-minded Processing developers to make a contribution to the Beads audio and music library... anything that can be used by other people for the good of the world.

Beads is a rich audio library with lots of capabilities for synthesis, generative sequencing and analysis. It also has lots of gaps, missing features and improvements that can be made. It has been a pet project of mine for several years, with valuable contributions from a number of collaborators. Once in a while I like to spam the lists to see who is using Beads, and if they'd like to contribute any of the code that they have written to the Beads library. You may already have some code sitting on your machine that is screaming to be free! You may have a Beads-related project that you're dying to realise. Failing that, it would also be interesting just to hear about what you are using Beads for and what you like/dislike about it (though this is not a call for feature-requests, there are plenty of those below!).

Anything you send will be considered for inclusion in the Beads library, or for inclusion on the website. Have your name added to the list of contributors!

Here are some valuable contributions that could be made to the library:

  • Demos and examples - show off your creative work with Beads. Contribute tutorials and examples that help people learn and share best practice.

  • Extra layers - If you work regularly with Beads, what code do you reuse the most? Can it make a reusable library that would reduce development overheads for others, or simplify using Beads in any way.

  • Beads libraries - effects UGens, data classes, wave types. New sequencing tools. Better granular and additive synthesis tools, wavelets, phase vocoders. Build a set of higher-level tools such as FM synths.

More advanced projects:

  • Beads analysis - produce high-level convenience classes for common analysis tasks, develop methods similar to Ableton Live for producing static analysis of audio files, that can be used for beat-synch, dynamic time warping, etc.

  • Implement loop crossfade in SamplePlayer - long promised missing feature.

  • Beads build - there are some things that would make the Beads source-code project easier to manage. Improved build scripts, merge all jar dependencies into the output jar, creating a Maven repository.

  • Beads platform-specific distributions - create versions of Beads for Android, MaxMSP, VST, and perhaps even GWT/WebAudio (this should technically be possible as GWT allows cross compilation from Java to JavaScript. Audio support unknown). Create better tools (e.g., GUIs, config files) for adaptive configuration of Beads AudioContext and AudioIO on different platforms. Better integration with IO contexts such as Jack, coreaudio, Windows and Linux environments, and other drivers (e.g., via PortAudio, RTAudio).

  • Beads core - new convenience classes for repetitive tasks, switch entire library to double precision, make use of Java 8 lambda expressions, profile and optimise the audio scheduler, better manage the GC, improved Sample loading, Sample streaming, comprehensive integration of OSC to control audio graph structures, audio network and network synch libraries.

  • Beads tooling - make use of annotations, make an Eclipse or IntelliJ plugin for improved creative coding with Beads, or even maybe a standalone development environment, show Beads in action with Clojure, Groovy, etc. Make dedicated Beads project build tools. (Also I have some other code around that has Beads running on the Pi and listening for network messages).


Ollie Bown Senior Lecturer, UNSW Art & Design Sydney, Australia

PS: Beads also has a discussion list. See Beads homepage for details

Sign In or Register to comment.