Ecasound is a software package designed for multitrack audio processing. It can be used for simple tasks like audio playback, recording, and format conversions, as well as for multitrack effect processing, mixing, recording and signal recycling. It supports a wide range of audio inputs, outputs, and effect algorithms. Effects and audio objects can be combined in various ways, and their parameters can be controlled by operator objects like oscillators and MIDI-CCs. A versatile console-mode user interface is included in the package.
jMusic provides a library of classes for generating and manipulating music, and is a solid framework for computer assisted composition in Java. jMusic supports composers by providing a music data structure based upon note/sound events, and methods for working with that musical data. jMusic can read and write MIDI files, audio files, and its own .jm files. jMusic is designed to be extendible, encouraging you to build upon the functionality of jMusic by programming in Java to create your own music composition tools.
Mup produces very high quality PostScript printed music or a MIDI file from a text input file. It can handle almost any kind of music, instrumental or vocal, including tablature, shaped notes, guitar grids, alternate tunings, user-defined symbols, and much more. Mup has been under active development since 1992.
Sfront compiles MPEG 4 Structured Audio (MP4-SA) programs into efficient C programs that generate audio when executed. MP4-SA is a standard for normative algorithmic sound, which combines an audio signal processing language (SAOL) with score languages (MIDI and SASL). Under Mac OS X and Linux, sfront supports real-time, low-latency audio input/output and MIDI input. Under Mac OS X, sfront supports the creation of AudioUnit plug-ins. The documentation includes a book about SAOL programming.
jMax is a visual programming environment for building interactive real-time musical and multimedia applications by allowing the user to interactively design dataflow circuits. The basic data types that can go through are integers, symbols, lists, etc. It is an event-driven system and has been used for MIDI processing. A second part of the system (DSP) allows a continuous signal to flow through a circuit, which is most useful for PCM sound (ie. microphone, sound files, etc.). The system is extensible by using shared libraries, you may add data processor types, data types, GUI elements, device types, and more. Data processors may also be designed as circuits and reused.
Swami is an instrument patch file editor using SoundFont files that allows you to create and distribute instruments from audio samples used for composing music. It uses FluidSynth, a software synthesizer, which has real time effect control, support for modulators, and routable audio via JACK. This project supersedes the Smurf SoundFont Editor, and is an entire object-oriented rewrite of it. The supporting libraries are GUI-independant and can be used in your own programs for doing SoundFont manipulation.
Q-Midi is a MIDI interface module which allows you to write MIDI applications in the Q programming language. It runs on top of Grame's MidiShare package. Most basic MidiShare functionality is available, including timing functions for realtime programming and MIDI file access. A sample MIDI player application is included (which requires Tcl/Tk).