The athenaCL system is an open-source, object-oriented composition tool written in Python. The system can be scripted and embedded, and includes integrated instrument libraries, post-tonal and microtonal pitch modeling tools, multiple-format graphical outputs, and musical output in Csound, MIDI, audio file, XML, and text formats.
Musical parts are deployed as Textures, layered surface-defining objects containing numerous independent ParameterObjects to control pitch, tempo, rhythm, amplitude, panning, and instrument (Csound) parameters. The system includes an integrated library of Csound instruments, and supports output for external Csound instruments, MIDI, and a variety of alternative formats.
Over sixty specialized Generator, Rhythm, and Filter ParameterObjects provide tools for stochastic, chaotic, cellular automata based, markov based, wave-form, fractional noise (1/f), genetic, Xenakis sieve, linear and exponential break-point segments, masks, and various other algorithmic models. ParameterObjects can be embedded in other ParameterObjects to provide powerful dynamic and masked value generation.
Textures can be combined and edited, and tuned with algorithmic Temperament objects. Texture Clones allow the filtering and processing of Texture events, performing transformations not possible with parameter generation alone.
The analytic and algorithmic systems use Path objects to organize and share pitch groups. Paths provide simultaneous representations of ordered content groups in set-class, pitch-class space, and pitch space. Paths may contain numerous PathVoices (voice leadings) and may be analyzed with both set-class similarity measures and voice leading rankings. As a reference utility, pitch groups can be searched, analyzed, and compared with a wide variety of tools.