Improv Library 2.0

The Improv Library contains C++ classes which primarily control the logical flow of MIDI communication. The library is accessed by including any necessary headerfiles from the include directory . Typically you would include one of the improv interfaces found in the include/improv directory . A program using the library should then be linked to the pre-compiled library file in the lib directory , although you can view the source code for the library in the src directory. Example programs which use the improv library are given in the examples directory.

The set of classes for the Improv library are mostly from the sigControl set of classes which are used to control MIDI input/output as well as other os-specific I/O and timing.

The library for improv programs consists of the classes listed below with brief descriptions. Click on the name of the class in the table below for detailed information about the class.

Supporting classes:

MIDI communication classes:

Event control classes

The Event control classes are used to play events in the future using the EventBuffer class. An EventBuffer object stores events inside of itself, and the user polls the EventBuffer object periodically to see if it is time to play any of the stored events.
Event Virtual base class for all events which are used in the EventBuffer class. There are three event classes which inherit this class: OneStageEvent, TwoStageEvent, and MultiStageEvent.
FunctionEvent Useful for note generation algorithms which output notes in time-sorted order (e.g., a glissando).
MidiEvent An instantiation of the OneStageEvent class. Can be used to transmit a single MIDI message to MIDI output.
MidiFileEvent For playing a MIDI file (type 0 or 1).
MultiStageEvent A Virtual class designed for inheritance by classes which consist of multiple events, such as a list of notes to play in sequence, or a note generating function which generates notes in sequence.
NoteEvent An instantiation of the TwoStageEvent class. Can be used to play a note which contains the MIDI messages for a note-on and a note-off.
OneStageEvent A Virtual class designed for inheritance by classes which consist of a single event.
SortedEvent Useful for time-sorted single-stage type events.
TwoStageEvent A Virtual class designed for inheritance by classes which consist of a dual event, such as a note which consists of a MIDI note-on message and a MIDI note-off message as a single logical unit.

Here is a schematic of the inheritance for the event classes in the Improv library:




Below you will find an index to information about each class in the Improv library. This documentation is also browsable in the doc/class directory.

sigControl classes:

sigBase classes:

sigInfo classes:












craig@ccrma.stanford.edu