ccaudio2 is a simple, highly portable, stand-alone, C++-based framework for manipulation of audio data. Its goal is to be a C++ framework that is as useful as "audiofile" or "sndfile" is for C programming, and to cover various generic and useful manipulations of audio data as well as audio file access. A stand-alone audio processing command line tool is also provided to demonstrate library functionality. ccaudio2 compiles under Mac OS X, POSIX systems, and Win32 systems.
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.
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.
The Snack sound extension adds commands for sound play/record and sound visualization, e.g. waveforms and spectrograms. It supports in- memory sound objects, file based audio, streaming audio, WAV, AU, AIFF, and MP3 file formats, synchronous and asynchronous playback. The visualization canvas item types update in real-time and can output postscript. New commands and file formats can be added using the Snack C-API.
SDLucid is a C++ wrapper library for the SDL media library. It aims to not only be a wrapper, but to also offer a cleaner interface than the original SDL, as well as increased functionality. This additional functionality includes fonts, PNG loading, graphical primitives, built-in mixing, mod playing, and MP3 decoding. SDLucid follows naming conventions, approximating those of the Standard Template Library.
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).
Lush is a Lisp dialect with extensions for object-oriented and array-oriented programming. It is intended as a programming environment for prototyping numerically intensive applications. Unlike alternatives like Python or SciLab, Lush is designed for easy integration of existing C/C++/Fortran codes.