The Advanced Linux Sound Architecture is composed of several parts. The first is a fully modularized sound driver which supports module autoloading, devfs, isapnp autoconfiguration, and gives complete access to analog audio, digital audio, control, mixer, synthesizer, DSP, MIDI, and timer components of audio hardware. It also includes a fully-featured kernel-level sequencer, a full compatibility layer for OSS/Free applications, an object-oriented C library which covers and enhances the ALSA kernel driver functionality for applications (client/server, plugins, PCM sharing/multiplexing, PCM metering, etc.), an interactive configuration program for the driver, and some simple utilities for basic management.
Beast is a powerful music composition and modular synthesis application. It offers multiple input methods like multitrack, piano roll, and pattern editing and supports skins. On the technical side, it has a wide range of abilities like sequencing, unlimited undo/redo history, real-time synthesis with multiprocessor support, full duplex 32-bit audio rendering, precise timing down to sample granularity, on demand loading of partial wave files, on the fly decoding of various sample formats, aliasing free oscillators, and full Scheme scripting support.
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.
KeyKit is a multi-tasking interpreted programming language (inspired by awk) designed exclusively for realtime and algorithmic MIDI manipulation. KeyKit's GUI provides several dozen tools for algorithmic music experimentation, including a multi-track sequencer and drum pattern editor. The GUI and all tools are completely written in the KeyKit language itself. This allows users to add new tools and operations to the existing tools, even while the system is running. Complete C source code and precompiled executables for Windows and Linux are provided.
Melys is a MIDI sequencer application for ALSA. It records, plays back, and saves to a MIDI file or to an XML-based format. There is a track view where you can arrange parts using drag-and-drop and a piano-roll view where the same can be done with notes. There is also a graphical tempo view where the tempo of the song can be changed. Multiple files can be open at once, and notes can be dragged between them. It is written in C and uses the GNOME/Gtk+ widget sets.
MidiMountain is a sequencer to edit standard MIDI files. Its easy-to-use interface should help beginners to edit and create MIDI songs (sequences), and it is designed to edit every definition known to standard MIDI files and the MIDI transfer protocol, from easy piano roll editing to changing binary system exclusive messages.