cage

cage_logo_web_h

Most bach modules are tools for low-level manipulation of lllls (performing operations such as rota- tions, substitutions or retrieval of single elements) or for more complex but conceptually basic operations such as constraint solving or rhythmic quantization. Differently from bach, cage modules in general perform higher-level tasks, with a compositional rather than strictly technical connotation (e.g. melodic material generation, or computation of symbolic frequency modulation). All basic mechanisms and principles are inherited by cage from bach, including the fact that communication between the different modules happens mostly by means of lllls.

Hence cage implements a number of ready-to-use modules, implementing a number of widely used CAC processes. This includes: pitch generation, generation and treatment of melodic profiles, symbolic processes inspired by electro-acoustic practices (such as ring or frequency modulation, frequency shifting, score filtering, score granulation…), harmonic and rhythmic interpolation, formalization of agogics, automata and L-systems, tools for musical set theory, higher-level score tools (such as score concatenation, splitting, slicing, mixing, partial tracking…), virtual fundamentals, SDIF file import, audio rendering.

cage also has a strong pedagogical connotation: all the modules of the library are abstractions, lending themselves to be easily analyzed and modified. It is not difficult, for the user wishing to learn how to treat musical data, to copy, edit or adjust the patches to his or her own needs. In this regards, all the tools in the library are intrinsically ‘open source’: although each implemented process is conceived for a typical, somehow standard usage, the advanced user will easily start from these abstractions and modify their behavior.

cage is a research project taking place within the center of electroacoustic music of 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 cage library is free software, released under GNU GPLv3.0 license. Its repository is here:
https://github.com/bachfamily/cage