Computer-aided composition in Max

What bach brings

Music notation

bach brings music notation inside Max. You can generate, edit, script, modify and play your scores either with mouse and keyboard or through patching. Any Max audio module can be easily driven.

Reactive paradigm

bach is a true citizen of Max, perfectly incarnating its real-time paradigm. Interact with scores in a reactive way, as you would with sounds or images! From simple recording to complex processing, a new world of symbolic treatments is at the end of your fingertips.

A family of tools

bach is the head of a family of libraries which share their core philosophy and basic working principles. Each library in the growing bach family focuses on some particular aspects of reactive symbolic composition: cage and dada are already available.

Support us on Patreon

Developing and maintaining bach is a lot of work. We have decided to keep bach free and embrace a business model based on Patreon: how much do you consider bach is valuable for you? If the answer is 0$, or if you cannot afford to pay any price, that's totally fine - we completely understand. But if you can afford to pay us as little as a cup of coffee per month, that would really help. In addition to keeping bach accessible for everybody, you'll also have exclusive access to prereleases, video tutorials, and more.

Why using bach

Free

bach is licensed under the Creative Common BY-NC-SA 3.0 and is free for non-commercial use (contact us for commercial use).
We can afford to keep bach free thanks to the generous donations of our supporters on Patreon.

Cross platform

bach is cross platform. Whether you're running OSX or Windows, you can experience the full power of computer-aided composition.

Powerful data types

Even if you aren't a fan of music notation, bach might still help you by adding two new data types to the Max environment: rational numbers and lllls (Lisp-like linked lists). The latter can contain other lllls, a bit like a Lisp list. Unlike Max lists, bach lllls have no limit in size, an essential feature to deal with long collections of data.

Live notation

Create and display music on the fly for your performers, or for any other usage.

Where to start: "Real Time Stories" bach tutorialRelated projects here

Education

Build intuitive and interactive tools for music education. Tailor the amount of allowed interaction to your specific needs, have your students play with your patch and then automatically evaluate their results.

Augmented sequencers

Use bach.roll and bach.score as symbolic sequencers, triggering soundfiles or DSP processes; since each note carries flexible meta-information, organized in slots, you can control and customize any meaningful sequencing parameter.

Where to start: "Slot Machines" bach tutorialRelated projects here

Synthesis

Use bach.roll and bach.score to control synthesis modules inside Max; put any meaningful parameter (numbers, envelopes, instructions...) inside the note slots, and retrieve them at playtime.

Where to start: "The Gift of Synthesis" bach tutorialRelated projects here

Video and lighting

Sequence or generate video content in Jitter; use scores to control and automate any external Max-compatible device, such as DMX lighting scenarios or physical actuators.

Where to start: bach tutorialsRelated projects here

Constraint programming

Generate data by defining the properties they should match, without writing a single line of code.

Where to start: bach.constraints help fileRelated projects here

Analysis

Segment and analyze scores in real-time or off-line. Organize your scores in a database, and display it.

Where to start: dada.segment and dada.catart help filesRelated projects here

Metascores

Build scores where each note is a complex process in itself; display process information dynamically and render audio or symbolic result properly (both at playtime and off-line).

Where to start: cage.meta.engine help fileRelated projects here

The bach family

bach is the forefather of the family. It contains all the basic modules to deal with computer-aided composition in Max. It’s the first and library you should download, since all the other members of the family won’t even start working without bach.

cage contains ready-to-use modules to deal with many standard 20th- and 21th-century compositional techniques. It is library designed for musicians: you will only deal with musically meaningful parameters, without even worrying about lower-level implementation.
Because of this, cage is easier to deal with than bach; if visual programming with bach makes you nervous, you should definitely consider installing cage and give it a try.

dada is the newest member of the bach family: it contains non-standard graphical user interface for music generation and processing. dada is by design an open box: it is to bach what a laboratory is to a library. All of its components embrace a graphic, ludic, explorative approach to music; most of its components also refer to the worlds of plane geometry, physical modeling or recreational mathematics.

Projects

Comprovisador is a system designed by Pedro Louzeiro to enable mediated soloist-ensemble interaction using machine listening, algorithmic compositional procedures and dynamic notation, in a networked environment. In real-time, as a soloist […]

Since his first quartet Korrespondenz (1992), Peter Eötvös has been interested in the transcription of phonetic elements to music, in order to make instruments speak. For Sirens Cycle, Eötvös’s latest […]

Jonathan Bell’s piece Au Commencement was entirely composed (and delivered to the singers) with the help of the bach.roll space-time notation environment. The SmartVox project uses filmed sequences (mp4) of […]

Diego Dall’Osto’s “Three pieces. Catabasis I, II, III”, for violin and live audio-video electronics (2015), use bach and cage libraries both for computer assisted composition and for synthesis and performance […]

Seth Shafer’s Law of Fives (2015), for viola, bass clarinet, marimba, and computer, uses ​real-​time notation and requires the performers to sight-read music as it is algorithmically generated during the […]

bach includes the Kiss FFT library (distributed under BSD licence), the Mini-XML library (distributed under LGPLv2.0 license), the IRCAM SDIF library (distributed under LGPLv2.1 license), and the GPC library (free for non-commercial use).

The official bach font is "November for bach", created by Robert Piéchaud and automatically loaded at bach startup. "November for bach" is a light version of the famous November font. The full November font covers a wide range of music symbols, from Renaissance to the XXI century, and gives a unique, warm and lively look to your music scores. It is fully compatible with Finale, Sibelius and other notation softwares, and, in addition, is the first commercial music font fully compliant with SMUFL. You can purchase November from here.

cage is a research project by Andrea Agostini and Daniele Ghisi, carried out at the electroacoustic music center of the Haute Ecole de Musique de Genève, supported by the music and art division of the Haute Ecole Spécialisée de Suisse occidentale.

Feedback

For any issue that may be of public interest, our forum is the most appropriate context, since all users can benefit from everyone's experiences. Still, if you want to contact us privately, you can do it at feedback@bachproject.net. Please follow these rules to report bugs requests.
If you want to submit feature requests, please support us on Patreon.

Support us on Patreon

bach is free, but developing and maintaining it takes a lot of time and effort. If you find bach useful, please consider supporting us on Patreon.
In addition to helping us keeping bach free and up to date, you'll also get access to prereleases, exclusive video tutorials, and much more.
If you are already a patron, then we cannot thank you enough: it is thanks to people like you that bach can remain free for everybody.