Gibber.lib.js & p5.gibber.js

I’ve had requests from a couple of faculty members at different universities to bring the audio portion of Gibber into its own library so that it could be used outside of http://gibber.mat.ucsb.edu. I had always intended Gibberish to fill this role, but Gibberish is fairly low-level and doesn’t come with a number of Gibber’s features that make it easy to get started making music:

  • Basic music theory
  • Synth presets
  • Simple sequencing

I think those three elements in Gibber really do speed up the process of making music, as opposed to making DSP graphs. With that in mind, I’ve gone ahead and created Gibber.lib.js, which can be used inside of any web page. It can also be used inside of node.js thanks to the excellent web-audio-api module by Sébastien Piquemal.

While I was at it, I performed some very (very) slight modifications to make Gibber.lib.js play nice with p5.js, the newly released port of Processing to JavaScript. Although there already is a p5.sound.js library, I’d argue that, like Gibberish, it’s too low-level for music making; it lacks the elements I listed previously: theory, synth presets, and easy sequencing. However, it’s better for sound effects and whatnot as it uses buffer-processing with browser-native audio nodes, while Gibber performs per-sample processing using JavaScript and is thus less efficient (although arguably more flexible).

Please try out p5.gibber.js and Gibber.lib.js and let me know what you think!