MIDI has three different use cases: MIDI file playback, interactive MIDI playing, and a mix of these: MIDI file playback with interaction.
Playback for a MIDI file works exactly in the same way as for other audio content types.
A player is created with the locator "
for pure interactive MIDI. Interactive playing is possible by using
MIDIControl can be used for various tasks, for example change MIDI
channel volumes, change instrument assignments to channels, play notes, and
When the player is created this way, default instruments are assigned
to channels as follows: Drum set on channel 9, piano on all the others. Processing
of MIDI events is started when a player is prefetched, meaning that MIDI commands
take effect right away. Starting the player explicitly is not needed.
In this case a player is created as for plain MIDI file playback, but
obtained and used to control playback and to play along interactively.
be used in the same way as for pure interactive MIDI playing, with a few exceptions:
Default instruments are not assigned to any channels. Only instruments
used by the MIDI file are assigned to their corresponding channels. The rest
are left unassigned, but can be assigned with
Processing of MIDI events is started when the player is started, in
contrary to the purely interactive case. MIDI events can be sent with
MIDIControl.longMidiEvent when the player is prefetched, but they are queued until the player is started.