Crate rimd

Source
Expand description

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:
http://www.midi.org/techspecs/midimessages.php
For a description of the underlying format of meta messages see:
http://cs.fit.edu/~ryan/cse4051/projects/midi/midi.html#meta_event

Structs§

AbsoluteEvent
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…
MetaEvent
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
MidiMessage
Midi message building and parsing. See http://www.midi.org/techspecs/midimessages.php for a description of the various Midi messages that exist.
SMF
A standard midi file
SMFBuilder
An SMFBuilder can be used to create an SMF file. This is done by adding tracks to the builder via add_track and then adding events to each track.
SMFWriter
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.
Track
A sequence of midi/meta events
TrackEvent
An event occuring in the track.

Enums§

Event
An event can be either a midi message or a meta event
MetaCommand
MetaError
An error that can occur parsing a meta command
MidiError
An error that can occur trying to parse a midi message
SMFError
An error that occured in parsing an SMF
SMFFormat
Format of the SMF
Status

Functions§

note_num_to_name
convert a midi note number to a name