Channel 0 is used for voice and sound effects, the other channels are used for music. It is slightly modified from Sunplus examples, and also used in the V.Smile Baby games.
Channels are allocated dynamically (the code looks for a free channel to play each note as it comes). If there are no channels available, the note is just skipped.
- 00XX-0FXX change instrument of channel (00-0F) to instrument XX
- 10×0 YYYY pitch bend?
- 2000 marks the end of the song (sets tempo to 0, so the player stops)
- 2XYY (with X > 8) tempo change (for all channels)
- 40XX note duration?
- 8xxW xxYY xxZZ Note on, channel W, note/pitch Y, volume Z
Otherwise there are commands as 3 words used as 6 packed bytes:
- Note pitch
- Note reverb
- Instrument
- Stereo panning (from 0 = left to 127 = right)
- Volume
- Attack length