262
Views
6
CrossRef citations to date
0
Altmetric
Article for Special Issue Interactive Composition

Extending bach: A Family of Libraries for Real-time Computer-assisted Composition in Max

&
Pages 34-53 | Received 14 Dec 2015, Accepted 02 Sep 2016, Published online: 21 Nov 2016
 

Abstract

The bach library is a package for Max meant to bring symbolic music representation and computer-aided composition in a real-time environment (Agostini & Ghisi, 2013, 2015). In this article, we introduce a more ambitious project: situating the bach library inside a wider family of tools dealing with real-time computer-aided composition in Max, which we call the ‘bach family’. We give an overview of its core member (bach) and of its second member (cage: a high-level library of ready-made modules). We introduce its third member (dada: a library of non-standard user interfaces, currently under development), and discuss future perspectives and ideas.

Acknowledgements

The cage library has been developed within the center of electroacoustic music of the the Haute École de Musique in Geneva, supported by the music and arts domain of the scene of the Haute École Specialisée of Western Switzerland; the dada library is part of Daniele Ghisi’s PhD project, carried out at the STMS Lab (UPMC, Ircam, CNRS) in Paris.

Notes

Daniele Ghisi, STMS Lab (IRCAM, CNRS, UPMC), 1, Place Igor Stravinsky, Paris, 75004, France. E-mail: [email protected].

1 In all the official Max documentation, the term abstraction refers to a named patcher saved to disk, and reusable as a subpatcher. We are using the word here with this exact meaning.

3 It should be made clear that the ‘lambda’ name is not used literally in this context, but as a mere allusion; concepts such as anonymous functions or lambda calculus would be completely extraneous to the overarching programming philosophy and paradigm of Max.

4 For an instance of a deeply different approach to the treatment of symbolic musical data, focusing on the intertwinement among the score parameters rather than their orthogonality, see the Strasheela system (Anders, Anagnostopoulou, & Alcorn, Citation2005).

9 This does not mean that the number of modules in bach is by now fixed (almost every recent release of bach has included some new modules, and this trend is likely to continue), but that the scope of bach will not change: handling symbolic data for traditional music representation, display and editing.

11 As stated in sec. 4.2, two-dimensional cellular automata are also handled in cage (see also Bigo, Ghisi, Spicher, & Andreatta, Citation2015); however, the dada.life object improves this approach, since it makes it more customisable (as far as both the visual aspect and the rules are concerned) and faster (cage.life is an abstraction, consistently with the design of the whole cage project, and is hence intrinsically slower, whereas dada.life can also implement rules via a snippet of C code, compiled on the fly).

12 Although it is true that bach.roll can easily represent audio samples and automations through file names and functions attached to notes as slot data, it is by no means a real audio sequencer, because it would be difficult, if not impossible, to add a waveform representation to notes, and because at playtime all the temporal information attached to each note is output at once.

Reprints and Corporate Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

To request a reprint or corporate permissions for this article, please click on the relevant link below:

Academic Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

Obtain permissions instantly via Rightslink by clicking on the button below:

If you are unable to obtain permissions via Rightslink, please complete and submit this Permissions form. For more information, please visit our Permissions help page.