Skip to main content
Top

2021 | OriginalPaper | Chapter

Programming in Style with bach

Authors : Andrea Agostini, Daniele Ghisi, Jean-Louis Giavitto

Published in: Perception, Representations, Image, Sound, Music

Publisher: Springer International Publishing

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

Abstract

Several programming systems for computer music are based upon the data-flow family of programming paradigms. In the first part of this article, we shall introduce the general features and lexicon of data-flow programming, and review some specific instances of it with reference to computer music applications. We shall then move the discussion to Max’s very peculiar take on data-flow, and evaluate its motivation and shortcomings. Subsequently, we shall show how the bach library can support different programming styles within Max, improving the expression, the readability and the maintenance of complex algorithms. In particular, the latest version of bach has introduced bell, a small textual programming language embedded in Max and specifically designed to facilitate programming tasks related to manipulation of symbolic musical material.

Dont have a licence yet? Then find out more about our products and how to get one now:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Footnotes
1
In the usual Max terminology, actors correspond to boxes (object or message) and input and output ports correspond respectively to inlets and outlets.
 
2
We shall talk diffusely about Max in the later chapters, and only introduce it as an example here for readers already familiar with it.
 
3
If an actor has multiple output ports, it can be divided into as many actors as outputs, each taking the same inputs and having only one output.
 
5
bach.roll and bach.score differ in that the former represents time proportionally, whereas the latter implements a traditional representation of time, with tempi, metri, measures and relative temporal units such as quarter notes, tuplets and so on.
 
6
The website of bach showcases some interesting works that have been developed with the library, mostly by people unrelated to its developers.
 
7
The dada library contains interactive two-dimensional interfaces for real-time symbolic generation and dataset exploration, embracing a graphic, ludic, explorative approach to music composition.
 
8
Slots are containers of arbitrary data attached to notes and chords.
 
Literature
1.
go back to reference Agon, C.: OpenMusic: un language visuel pour la composition musicale assistée par ordinateur. Ph.D. thesis, University of Paris 6 (1998) Agon, C.: OpenMusic: un language visuel pour la composition musicale assistée par ordinateur. Ph.D. thesis, University of Paris 6 (1998)
2.
go back to reference Agostini, A., Daubresse, E., Ghisi, D.: Cage: a high-level library for real-time computer-aided composition. In: Proceedings of the International Computer Music Conference, Athens, Greece (2014) Agostini, A., Daubresse, E., Ghisi, D.: Cage: a high-level library for real-time computer-aided composition. In: Proceedings of the International Computer Music Conference, Athens, Greece (2014)
3.
go back to reference Agostini, A., Giavitto, J.: Bell, a textual language for the bach library. In: Proceedings of the International Computer Music Conference (to appear), New York, USA (2019) Agostini, A., Giavitto, J.: Bell, a textual language for the bach library. In: Proceedings of the International Computer Music Conference (to appear), New York, USA (2019)
5.
go back to reference Bresson, J., Giavitto, J.L.: A reactive extension of the openmusic visual programming language. J. Visual Languages Comput. 25(4), 363–375 (2014)CrossRef Bresson, J., Giavitto, J.L.: A reactive extension of the openmusic visual programming language. J. Visual Languages Comput. 25(4), 363–375 (2014)CrossRef
6.
go back to reference Cipriani, A., Giri, M.: Musica Elettronica e Sound Design. ConTempoNet (2013) Cipriani, A., Giri, M.: Musica Elettronica e Sound Design. ConTempoNet (2013)
7.
go back to reference Colasanto, F.: Max/MSP: Guía de Programación para Artistas. CMMAS (2010) Colasanto, F.: Max/MSP: Guía de Programación para Artistas. CMMAS (2010)
8.
go back to reference Conway, M.E.: Design of a separable transition-diagram compiler. Commun. ACM 6(7), 396–408 (1963)CrossRef Conway, M.E.: Design of a separable transition-diagram compiler. Commun. ACM 6(7), 396–408 (1963)CrossRef
9.
go back to reference Desain, P., et al.: Putting max in perspective. Comput. Music J. 17(2), 3–11 (1992) Desain, P., et al.: Putting max in perspective. Comput. Music J. 17(2), 3–11 (1992)
10.
go back to reference Didkovsky, N., Hajdu, G.: Maxscore: music notation in Max/MSP. In: Proceedings of the International Computer Music Conference (2008) Didkovsky, N., Hajdu, G.: Maxscore: music notation in Max/MSP. In: Proceedings of the International Computer Music Conference (2008)
12.
go back to reference Ghisi, D., Agostini, A.: Extending bach: a family of libraries for real-time computer-assisted composition in max. J. New Music Res. 46(1), 34–53 (2017)CrossRef Ghisi, D., Agostini, A.: Extending bach: a family of libraries for real-time computer-assisted composition in max. J. New Music Res. 46(1), 34–53 (2017)CrossRef
13.
go back to reference Halbwachs, N., Caspi, P., Raymond, P., Pilaud, D.: The synchronous data flow programming language LUSTRE. Proc. IEEE 79(9), 1305–1320 (1991)CrossRef Halbwachs, N., Caspi, P., Raymond, P., Pilaud, D.: The synchronous data flow programming language LUSTRE. Proc. IEEE 79(9), 1305–1320 (1991)CrossRef
14.
go back to reference Kahn, G.: The semantics of a simple language for parallel programming. In: proceedings of IFIP Congress 1974, North Holland, pp. 471–475 (1974) Kahn, G.: The semantics of a simple language for parallel programming. In: proceedings of IFIP Congress 1974, North Holland, pp. 471–475 (1974)
15.
go back to reference Laurson, M., Kuuskankare, M.: PWGL: a novel visual language based on common Lisp, CLOS and OpenGL. In: Proceedings of International Computer Music Conference, Gothenburg, Sweden, pp. 142–145 (2002) Laurson, M., Kuuskankare, M.: PWGL: a novel visual language based on common Lisp, CLOS and OpenGL. In: Proceedings of International Computer Music Conference, Gothenburg, Sweden, pp. 142–145 (2002)
16.
go back to reference Mosses, P.D.: Handbook of theoretical computer science, vol. 2, chap. Denotational Semantics, pp. 575–631. Elsevier Science (1990) Mosses, P.D.: Handbook of theoretical computer science, vol. 2, chap. Denotational Semantics, pp. 575–631. Elsevier Science (1990)
17.
go back to reference Norilo, V., Rautatiekatu, P.: Introducing kronos-a novel approach to signal processing languages. In: Proceedings of the Linux Audio Conference, pp. 9–16. Maynooth: NUIM (2011) Norilo, V., Rautatiekatu, P.: Introducing kronos-a novel approach to signal processing languages. In: Proceedings of the Linux Audio Conference, pp. 9–16. Maynooth: NUIM (2011)
18.
go back to reference Orlarey, Y., Fober, D., Letz, S.: Syntactical and semantical aspects of Faust. Soft. Comput. 8(9), 623–632 (2004)CrossRef Orlarey, Y., Fober, D., Letz, S.: Syntactical and semantical aspects of Faust. Soft. Comput. 8(9), 623–632 (2004)CrossRef
19.
go back to reference Orlarey, Y., Fober, D., Letz, S.: Faust: an efficient functional approach to DSP programming. New Comput. Pradigms Comput. Music 290, 14 (2009) Orlarey, Y., Fober, D., Letz, S.: Faust: an efficient functional approach to DSP programming. New Comput. Pradigms Comput. Music 290, 14 (2009)
20.
go back to reference Orlarey, Y., Fober, D., Letz, S.: Parallelization of audio applications with Faust. In: Proceedings of the 6th Sound and Music Computing Conference, Porto, PT, pp. 99–112 (2009) Orlarey, Y., Fober, D., Letz, S.: Parallelization of audio applications with Faust. In: Proceedings of the 6th Sound and Music Computing Conference, Porto, PT, pp. 99–112 (2009)
21.
22.
go back to reference Puckette, M.: A divide between ‘compositional’ and ‘performative’ aspects of Pd. In: Proceedings of the First International Pd Convention. Graz, Austria (2004) Puckette, M.: A divide between ‘compositional’ and ‘performative’ aspects of Pd. In: Proceedings of the First International Pd Convention. Graz, Austria (2004)
23.
go back to reference Scholl, S.: Musik – Raum – Technik. Zur Entwicklung und Anwendung der graphischen Programmierumgebung “Max”, chap. Karlheinz Essls RTC-lib, pp. 102–107. Transcript Verlag (2014) Scholl, S.: Musik – Raum – Technik. Zur Entwicklung und Anwendung der graphischen Programmierumgebung “Max”, chap. Karlheinz Essls RTC-lib, pp. 102–107. Transcript Verlag (2014)
25.
go back to reference Wang, G., Cook, P.R., Salazar, S.: Chuck: a strongly timed computer music language. Comput. Music J. 39(4), 10–29 (2015)CrossRef Wang, G., Cook, P.R., Salazar, S.: Chuck: a strongly timed computer music language. Comput. Music J. 39(4), 10–29 (2015)CrossRef
26.
go back to reference Winkler, T.: Composing Interactive Music. The MIT Press, Cambridge (1998) Winkler, T.: Composing Interactive Music. The MIT Press, Cambridge (1998)
Metadata
Title
Programming in Style with bach
Authors
Andrea Agostini
Daniele Ghisi
Jean-Louis Giavitto
Copyright Year
2021
DOI
https://doi.org/10.1007/978-3-030-70210-6_18