A Perl program that generates Csound score.
Fetching latest commit…
Cannot retrieve the latest commit at this time
Csgrouper *** What is it? Csgrouper is a music composition software at the intersection of polytonality, polymodality and serialism. It is a Perl program for Unix-like systems that generates Csound scores. It has been released for the first time in March 2012. *** Why Csgrouper? Many powerful sound shaping and sequencing programs exist nowadays but the western musical language in itself is almost completely worked up. The result is a repetition of well-known musical patterns in popular harmonies and a privilege for pure sound treatment in computer aided musical research. There is an opportunity to investigate in scaled musical forms that is the reason for Csgrouper. *** What does Csgrouper do? Within a strict serial context, there are two related ways to use Csgrouper. Alternate tunings: Csgrouper allows the composer to produce musical sequences using different divisions of the octave (from 2 up to 24 steps, versus 12 in the traditional equal-tempered system). These sequences are generated from permutation functions that work on pure frequencies (cf. note 1). You provide compatible Csound instruments that are then integrated into the score managed by Csgrouper. Some test instruments are provided in the package to get you started. Polymodality: Csgrouper can also select specific items in a sequence tonality to produce a mode. Classic modes are available as well as new ones. These basic tools together with an extensible set of serial sequence production functions (18 at present, without counting analysis functions) allow you to create a list of sequence definitions, each of which has its own number of intervals and optional mode, plus its own instrument, size, tempo, development rules, and so on. Sequences defined in this way can be grouped together into sections with various rythmic and harmonic properties defined by you, such as grouping several sequences into a rythmic canon, or an ensemble section using selected sub-sequences determined by inter-sequence note relations, or via a rythmic model (binary, ternary, mixed, ...). Finally, Csgrouper evaluates the proposed structure and prints the resulting Csound unified score. The resulting sound file can be played directly from the GUI or recorded to disk. The Csgrouper score, Csound scores, and instruments are all saved into a single Csgrouper .xml config file. In the realm of scaled music, i.e. music that can be played with classic-like instruments, Csgrouper can help to escape a culturally-restricted, deeply-explored context. The 7 voice/18 tone raw example and its subsequent manual modification illustrates this aspect well enough: Csgrouper outputs algorithmic composition taken as inspiration for a further work. Real music comes out of creatively filtering Csgrouper output, like sculpture of stone or wood (cf. note 2). Personally, I reprocess Csgrouper-Csound output in other, more convienient software, such as QuteCsound or Blue. *** Shortcomings Csgrouper could be improved in many ways. It has bugs. It's not easy to use. The serial functions (particularly the "train" functions) are difficult to understand and require prior analysis through provided subroutines (from the "Series" tab). The GUI could be better. The program can't be run properly without also looking at some output from the terminal. Additionnally Csgrouper is slow: expect it to take several dozen seconds to load a short piece of a few minutes and as much time again to evaluate it before it's ready for audio output. Csgrouper has no test suite (but the core of it, permutational functions, should be reliable enough: at least have they been used for several years in various contexts) . *** Goals I've shared this code via Github, and I'd very much like programmers interested by this project to help me to improve it. I'll be happy to see the project fork, become smarter, less redundant, have a better GUI and increase in quality to help musicians make music. email@example.com Notes: 1: Cf. Csgrouper/run/sndout/xpace-flute_raw-csg.csd : This raw Csgrouper score (and related audio output on the Csgrouper download page) is built on a a scale of 18 notes to the octave - 1/3 tones. The serial material used was chosen for its tonal properties which yield a harmonious aspect. 2: Csgrouper/doc/audio contains an "xpace-flute_raw-csg.mp3" and a quickly-sculpted version of the same project renamed "ballad.mp3" as well as the corresponding score files. As long as the successions of notes are not altered by the sculpting (but only the octaves and sound parameters), it can be claimed that the result has kept some degree of mathematical purity because the output of permutational functions is preserved. EOF