The Computer Music Project Software
PortMidi
Information about PortMidi
O2
Information and Code for O2
Aura
Aura is not available for general distribution, but you can read
about Aura here. Send mail to Roger
Dannenberg to get a copy of work in progress.
Nyquist
Nyquist is a sound synthesis and composition language offering a Lisp syntax as
well as an imperative language syntax (SAL) and a powerful
integrated development environment..
Nyquist is an elegant and powerful system based on functional programming.
Documentation
Audio Alignment Software in C++
See PortMedia project at SourceForge. This is newer, faster, better than the Matlab code below ...
Audio Alignment Software in Matlab
This is research software available as is for computing the alignment
between two audio performances of the same music. If you have a CD recording and a MIDI version of the same song, then you can synthesize the MIDI file, e.g. using TiMidity++ and perform an alignment. The result will tell you the correspondence from audio to MIDI, which is effectively a full polyphonic transcription of the audio.
The Matlab code is here, including this short description. You can read more about audio alignment in these papers.
Allegro - MIDI File IO and Score Representation
If you want to read a standard MIDI file into a C++ data structure that lets
access notes and other data, merge or select channels and tracks, change the
tempo track, and write the data as text or back to a standard MIDI file, this
software might help. Allegro is the name of this library, and also the name
of the text-based score language that is supported by the library. You can
get everything SourceForge at
portmedia project. Look for the subdirectory portsmf to get the allegro library. There is also a wiki at PortMedia Wiki for PortSMF / Allegro.
CMU MIDI Toolkit
NOTE: The CMU Midi toolkit is considered obsolete. The code is
available here as an historical footnote, but does not run well on any current platforms.
The CMU Midi Toolkit (CMT) is a collection of software for
writing interactive
MIDI software in C. CMT includes a number of handy utilities allong with
an application "shell" that provides timing, scheduling, and MIDI interfaces
that are portable across DOS, Mac, SGI, and Amiga platforms.
CMT is distributed by the CMU School of Computer Science. Correspondence
should be addressed to Roger Dannenberg, School of Computer Science, Carnegie
Mellon University, Pittsburgh, PA 15213 USA.
CMT runs on the following systems:
Macintosh (requires Apple MIDI Manager),
DOS (requires MPU-401 compatible MIDI interface), and
Amiga (requires Commodore CAMD drivers),
using the following compilers: Think C v5, Borland C++ v3, Turbo C++ for
DOS v3, Microsoft C v7, Quick C v2.5, Lattice C v5 (Amiga), and Aztec C
v5 (Amiga). (Amiga code is retained in the release but is no longer supported.)
Documentation
Executables
Source
Maintained by:
rbd@cs.cmu.edu