A method of playing music using a computing system in which MIDI events are synchronized
with samples is disclosed. A sequence of MIDI events is provided. At least one
of the MIDI events includes delta time parameter data, and the MIDI events are
provided to a digital signal processing resource. Audio stream events are processed,
and one or more of the audio stream events has associated therewith audio sample
data, and the audio sample data is provided to the digital signal processing resource;
the audio sample data is not provided from a MIDI sound bank. A first MIDI event
is provided that is configured to include delta time parameter data associated
with the intended playback timing of at least one audio stream event. The audio
stream event is rhythmically synchronized with the sequence of MIDI events using
the first MIDI event. The first MIDI event may be an NRPN MIDI command. The audio
sample data may be decoded before the audio sample data is provided to the digital
signal processing resource, and as a first step the audio sample data may be encoded
in a compressed audio format. The digital signal processing resource may consist
of a first section associated with the MIDI events and a second section associated
with the audio stream data. The audio stream data may be preloaded using a second
MIDI event associated with an earlier point in time in the music than the first
MIDI event. The second MIDI event may be processed in response to user input.