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 use bach

Free and open source

bach is free and open source: it is licensed under the GPLv3 license, and hence you are free to use it in any GPLv3 project (contact us for commercial use).
We can afford to keep bach free thanks to the generous donations of our supporters on Patreon. If you find bach useful, please consider becoming a patron.

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.
See more features

Some numbers about bach

0
Libraries currently in the bach family
0
Externals in the bach library only
0
Abstractions in the bach library only
0
Years of development

What you can do with bach

Composition

Compose your music using bach: write, generate or modify your scores intuitively and interactively. [wheretostart tag="composition"]cage tutorials; "Through The Looking Glass" and "The Minimal Way" bach tutorials[/wheretostart]

Live notation

Create and display music on the fly for your performers, or for any other usage. [wheretostart tag="live-notation"]"Real Time Stories" bach tutorial[/wheretostart]

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. [wheretostart tag="education"]bach tutorials, "preventedit" attribute[/wheretostart]

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. [wheretostart tag="augmented-sequencers"]"Slot Machines" bach tutorial[/wheretostart]

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. [wheretostart tag="synthesis"]"The Gift of Synthesis" bach tutorial[/wheretostart]

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. [wheretostart tag="multimedia"]bach tutorials[/wheretostart]

Constraint programming

Generate data by defining the properties they should match, without writing a single line of code. [wheretostart tag="constraint-programming"]bach.constraints help file[/wheretostart]

Analysis

Segment and analyze scores in real-time or off-line. Organize your scores in a database, and display it. [wheretostart tag="analysis"]dada.segment and dada.catart help files[/wheretostart]

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). [wheretostart tag="metascores"]cage.meta.engine help file[/wheretostart]

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.

More about cage

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.

More about dada

ears deals with off-line algorithmic audio and contains a large set of modules to operate on buffers, including treatments, analysis and synthesis.

More about ears

Projects

From The Machine: Volume 1

From The Machine, Volume 1 is a the first in a series of albums from composers Joseph Branciforte & Kenneth Kirschner that explores the application of software-based compositional techniques — […]

Comprovisador

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 […]

MOZ’Lib

MOZ’Lib is a set of pedagogical tools developed by composer Julien Vincenot, designed to explore musical writing, creation and computer programming. It constitutes an easy introduction to the vast domain […]

bach with Antescofo

Jonathan Bell uses bach.score as a tool for representing a melody which the computer tracks or follows, as well as for storing and displaying the actions to be made when […]

Sirens Cycle

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 […]

The SmartVox Project

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 […]

my mother used to say

my mother used to say (2016) is a 10 minutes piece in three movements for fans and electromagnetic fields, by Amos Cappuccio. Here are Amos Cappuccio’s words about his work: […]

Three pieces. Catabasis I, II, III

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 […]

picture2score

Takuya Shimizu has developed tools to make orchestral scores from pictures by using bach in combination with Jitter. Within bach, one can individually set the color of each notehead in […]

Instant Ensemble

Nikola Kołodziejczyk’s Instant Ensemble is a response to predictable and repeatable music tours. Sheet music for each concert of the seven-piece band is created live literally in front of the […]

An Experiment with Time

Daniele Ghisi’s An Experiment with Time (2015), is both a 3-screens multimedia installation and a live piece for ensemble, video and electronics. This work inspired by the eponym book by […]

Laws of Fives

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 […]

mymelody tsukurukun

mymelody tsukurukun is Takuya Shumizu’s tool to generate melodies by indicating a degree of complexity. Users input a time series of complexity (each value being between 0 and 1000), and […]

Orchids

bach, cage and dada are throroughly used in Ircam’s Orchids project, as interface tools for the automatic orchestration engine. More information here.

See all projects

Credits

bach_logo_web_h

bach is an independent project by composers Andrea Agostini and Daniele Ghisi.

It is supported by our wonderful community on Patreon. Click on a the message [; bach donors] in Max in order to have a list of all our patrons. It used to be also supporters by individual donations on Paypal; our top supporters (100+€) have been: Dimitri Fergadis, Pete Kellock.

The authors wish to thank: Sara Adhitya, Carlos Agon, Davide Bordogna, DaFact,  Arshia Cont, Eric Daubresse, Gianluca Delfino, Phil Gaskill, Eric Grunin, Emmanuel Jourdan, Mika Kuuskankare, Serge Lemouton, Jean Lochard, Mikhail Malt, Andrew Pask, Andrea Rota, Andrea Sarto, and all the people at IRCAM who have supported and encouraged the work, although not an internal IRCAM project.

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

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_logo_web_h

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.

 

dada_logo_web_h

dada is part of Daniele Ghisi's PhD project, supported by UPMC, CNRS, IRCAM (STMS Lab) and Sorbonne.

 

ears_logo_web_h

ears is a project by Daniele Ghisi with contributions from Andrea Agostini.