Flocking: A Framework for Declarative Music-Making on the Web

Flocking 1 is a framework for audio synthesis and music composition written in JavaScript. It takes a unique approach to solving several of the common architectural problems faced by computer music environments, emphasizing a declarative style that is closely aligned with the principles of the web. Flocking’s goal is to enable the growth of an ecosystem of tools that can easily parse and understand the logic and semantics of digital instruments by representing the basic building blocks of synthesis declaratively. This is particularly useful for supporting generative composition (where programs generate new instruments and scores algorithmically), graphical tools (for programmers and nonprogrammers alike to collaborate), and new modes of social programming that allow musicians to easily adapt, extend, and rework existing instruments without having to “fork” their code. Flocking provides a robust, optimized, and well-tested architecture that explicitly supports extensibility and longterm growth. Flocking runs in nearly any modern JavaScript environment, including desktop and mobile browsers (Chrome, Firefox, and Safari), as well as on embedded devices with Node.js.