rimd is a set of utilities to deal with midi messages and standard midi files (SMF). It handles both standard midi messages and the meta messages that are found in SMFs.
rimd is fairly low level, and messages are stored and accessed in their underlying format (i.e. a vector of u8s). There are some utility methods for accessing the various pieces of a message, and for constructing new messages.
For example usage see the bin directory.
For a description of the underlying format of midi messages see:
For a description of the underlying format of meta messages see:
An AbsoluteEvent is an event that has an absolute time This is useful for apps that want to store events internally with absolute times and then quickly build an SMF file for saving etc...
Meta event building and parsing. See http://cs.fit.edu/~ryan/cse4051/projects/midi/midi.html#meta_event for a description of the various meta events and their formats
Midi message building and parsing. See http://www.midi.org/techspecs/midimessages.php for a description of the various Midi messages that exist.
A standard midi file
An SMFBuilder can be used to create an SMF file. This is done by
adding tracks to the builder via
An SMFWriter is used to write an SMF to a file. It can be either constructed empty and have tracks added, or created from an existing rimd::SMF.
A sequence of midi/meta events
An event occuring in the track.
An event can be either a midi message or a meta event
An error that can occur parsing a meta command
An error that can occur trying to parse a midi message
An error that occured in parsing an SMF
Format of the SMF
convert a midi note number to a name