Strasheela is a highly expressive constraint-based music composition system. Users declaratively state a music theory and the computer generates music which complies with this theory. A theory is formulated as a constraint satisfaction problem (CSP) by a set of rules (constraints) applied to a music representation in which some aspects are expressed by variables (unknowns). Music constraint programming is style-independent and is well-suited for highly complex theories (e.g. a fully-fledged theory of harmony). Results can be output into various formats including MIDI, Lilypond, and Csound.
CLAM is a multiplatform software framework for research and application development for the Audio and Music domains. It offers a conceptual model for building systems as well as tools for the analysis, synthesis, and transformation of audio signals using high level representation (notes, spectral peaks, etc.). It also provides multiplatform system abstraction and tools for audio and MIDI file handling, device handling, GUI and XML support, and more. It has proper Linux audio architecture integration (Ladspa, Alsa, OSC, Jack, VST, etc.) and rapid graphical prototyping both for the processing core and the user interface (Qt designer integration).
JACK is a low-latency audio server. It can connect a number of different applications to an audio device, as well as allowing them to share audio between themselves. Its clients can run in their own processes (i.e., as normal applications), or can they can run within the JACK server (as a "plugin"). JACK is different from other audio server efforts in that it has been designed from the ground up to be suitable for professional audio work. This means that it focuses on two key areas: synchronous execution of all clients, and low latency operation.
FrAid (Fr[actal] Aid) is a programming language that is appropriate for mathematical computations, visualization, batch processing, and more. It features both a standalone application that provides a programming environment for the language and a system for integrating the language with Java. The Java interface allows mathematical equations and formulas to be used with Java code, making it easier to process numerical computations, symbolic computations, imaging, CAD, and more.