CommandBook supports playing MIDI files, both on demand and also as "intro music."
(You can skip this paragraph if you're not that young.) MIDI files store music, but not in the way that most music files store music. Rather than storing the music wave data, it stores instruments and notes and the times that they are played at. This makes the files small and particularly susceptible to being played in Minecraft through note blocks. However, they can't store voices and don't entirely reproduce music perfectly, but they are great for what we are trying to do.
There are limitations imposed by Minecraft, however. The three main limitations are:
- The range of pitches covers only two octaves, between F#3 to F#5. This is arguably the biggest limitation.
- It is not possible to play a sustained note.
- There are few instruments available (only four) and only the piano is particularly useful.
With those limitations in mind, to pick a MIDI that will play well, you should consider the following criteria:
- The song should not be too complex, as this will only exacerbate other problems.
- The song should not make use of low or high pitches.
- The song should not be one that requires a lot of sustained notes.
However, often times you won't find a MIDI that works entirely perfectly. An option is to remove tracks that are not absolutely needed (a MIDI file can contain several tracks). Using a MIDI editor such as MIDISwing, you can discard features of a MIDI file that make playing it difficult.
Be aware that track 10 is a special "percussion track" and it does not work like every other track. Each pitch is actually a different instrument. CommandBook ignores the percussion track as reproducing it in Minecraft is usually unsuccessful.
You can find MIDI files with your favorite search engine by searching the song name with "midi" as a search term. Be aware that it used to be that phones would often only take MIDI files as ringtones, so you will often need to look past the results that offer MIDI ringtones. Popular songs are more often available as MIDI files.
Using intro music
To have a song played when a player joins (only for that player), place a intro.mid file into the plugins/CommandBook folder. It is recommended that the song be short as a longer song will eventually get on people's nerves.
Playing on demand
Place MIDI files into a plugins/CommandBook/midi folder. Use the /midi command to play a MIDI file.