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:

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