H.3 File size reduction

23.0403GPPRelease 17Technical realization of the Short Message Service (SMS)TS

In general it is more efficient to store the MIDI data as a type 1 file. The increased efficiency is reached if each track contains one MIDI channel and one instrument (This is often the case). Evidently, running status can be applied on each individual track reducing the track size. To further reduce the size of the file use one track per used MIDI channel. That is, if a temple/conductor track exists merge it with the first instrument track. Remove, all meta events which are not necessary, e.g. "track name", "lyric". To summarize, the following measures can be taken in order to reduce the SMF:

1) use SMF type 1 (or check if type 1 is smaller than type 0 and use the smallest);

2) use running status;

3) one and only one instrument per track. Try not to change channels;

4) do not change tempo in the middle of the music, i.e., only set tempo once;

5) use beat, instead of SMPTE, to set tempo;

6) copyright is on automatically;

7) remove controller messages, which are optional according to [39];

8) turn off the options below:

sequence Number – MIDI sequence ids;

text – embedded text for anything;

sequence / track name;

instrument name;


marker – for synchronization purposes;

cue point;

midi channel presix – associate channels with all events following;

sequencer-specific settings.

Items 1 to 3 above optimize the notes, while items 4 to 8 optimize the overall melody. The above measures will provide an SMF, which is ready for compression. However, prior to compression the composer/content author can consider to use few values for key velocity and thereby increasing the redundancy of the file.