New music set format

Change the music set definition format to support more types of music, and better support special playlists, and user playlists consisting of tunes from multiple sets.

Contents

Concepts

A music set consists of:

Additionally it has the following translatable strings:

Sections

metadata

Same as current OBM format metadata section.

files

Unlike the original format, there are no pre-defined valid keys in this section. Files must have a unique identifier (the key name within the section), but there is no requirement on them other than being valid in the INI format.

md5s

Checksums of all the files in the set. Keys are the same as the keys in the files section.

A file can be left out, or have a blank value, in this section to skip verification.

t-n

Multiple sections named as a literal "t", followed by a literal dash, followed by a decimal number. The numbering must start at 1 and must be consecutive.

Each of these sections define a tune. The following basic keys are required, some formats might support or require more keys.

For all MIDI formats, this additional key can be defined:

For the catmidi format an additional key is required:

p-n

Multiple sections named as a literal "p", followed by a literal dash, followed by a decimal number. The numbering must start at 1 and must be consecutive.

Each of these sections define a playlist. The following keys are defined for playlists:

If a playlist named title is supplied, it will be used for the title screen music. If the title playlist contains multiple tunes, they will play shuffled. If there is no title playlist, tune index 1 is used. The title playlist is not available from the in-game jukebox.

If a playlist named all is supplied, it will be the default playlist for the set. Tunes not on this playlist can still be chosen from the music programme window. If there is no all playlist, it will be created from all tunes in definition order, except any used for the title playlist.

If playlists named old, new, or ezy are supplied, they use the built-in strings for the original music playlists in the UI. If they are not supplied, the playlists are not available.

Other playlist names should be short, ideally not more than two words.

MIDI standards

Specifying the appropriate MIDI standard for a tune lets the driver send an appropriate reset sequence and/or patch bank to the synth. It can also (with extensions to the MIDI drivers) allow the driver to select different output ports depending on configuration.