The Standard MIDI File (SMF) is a file format that provides a
standardized way for sequences to be saved, transported, and
opened in other systems. The compact size of these files has
led to their widespread use in early computers, mobile phone
ringtones, webpage authoring and greeting cards. They are
intended for universal use, and include such information as
note values, timing and track names. Lyrics may be included as
metadata, and can be displayed by karaoke machines.
The SMF
specification was developed and is maintained by the MMA. SMFs
are created as an export format of software sequencers or
hardware workstations. They organize MIDI messages into one or
more parallel tracks, and timestamp the events so that they
can be played back in sequence.
A header contains the
arrangement's setup data, which may include such things as
tempo and instrumentation, and information such as the song's
composer. The header also specifies which of three SMF formats
the file is in.
A MIDI type 0 file contains the entire performance,
merged onto a single track, while type 1 files may contain any
number of tracks. Type 2 files are rarely used.
Microsoft
Windows bundles SMFs together with Downloadable Sounds (DLS)
in a Resource Interchange File Format (RIFF) wrapper, as RMID
files with a .rmi extension. RIFF-RMID has been deprecated in
favor of Extensible Music Files (XMF).
Whether or not you like a specific MIDI file can depend on how
well it was created, and how accurately your synthesizer plays
the file... not all synthesizers are the same, and unless
yours is similar to that of the file composer, what you hear
may not be at all what he or she intended. General MIDI (GM)
and Downloadable Sounds (DLS) both help address the issue of
predictable playback from MIDI Files.
When coupled with a Downloadable Sounds (DLS) synthesizer,
MIDI files can be combined with standardized samples of
musical instruments, sound effects, or even dialogue, which
are used to recreate an exact copy of the sound intended by
the composer. MIDI files with DLS (in RMID or XMF format) are
the ideal solution for composers of all kinds who want the
predictable playback of digital audio, but also need the
compactness and/or interactivity of Standard MIDI Files for
delivering their music.
Formats
The Standard MIDI File format is different from native MIDI
protocol, because the events are time-stamped for playback in
the proper sequence.
Standard MIDI Files come in two basic varieties: a Type 1
file, and a Type 0 file (a Type 2 was also specified
originally but never really caught on, so we won't spend any
time discussing it here). In a Type 1 file individual parts
are saved on different tracks within the sequence. In a Type 0
file everything is merged onto a single track.
Making SMFs
Musical performances are not usually created as SMFs; rather a
composition is recorded using a sequencer such as Digital
Performer, Cubase, Sonar etc. that saves MIDI data in it's own
format. However, most if not all sequencers an ‘Save As' or
‘Export' as a Standard MIDI File.
Compositions in SMF format can be played using most media
players such as Windows Media Player™ (WMP) on a PC and
QuickTime™ on a Mac. QuickTime™ will automatically convert a
SMF into a QuickTime movie. Both WMP and QuickTime™ assumes a
SMF will be scored for GM in terms of drums on MIDI Channel
10, Program Changes etc.
SMFs on Macs
The PC file extension for an SMF is .MID. Macs do not
generally require to ‘see' the .MID extension in order for the
file to be utilized but PC-based applications generally do. If
a Mac-created SMF is to be loaded into a PC-based application
and does not have its .MID extension you may well be able to
simply type in the
extension after the file name in order for it to be
recognized!
Setup Data
An SMF not only contains regular MIDI performance data –
Channelized notes, lengths, pitch bend data etc – it also
should have data (commonly referred to as a ‘header') that
contains additional set-up data (tempo, instrument selections
per Channel, controller settings, etc.) as well as song
information (copyright notices, composer, etc.).
How good, or true to its originally created state an SMF will
sound can depend a lot on the header information. The header
can exert control over the mix, effects, and even sound
editing parameters in order to minimize inherent differences
between one soundset and another. There is no standard set of
data that you have to put in a header (indeed such data can
also be placed in a spare ‘set-up' bar in the body of the file
itself) but generally speaking the more information you
provide for the receiving sound device the more defined – and
so, presumably, the more to your tastes – the results will be.
Depending upon the application you are using to create the
file in the first place, header information may automatically
be saved from within parameters set in the application, or may
need to be manually placed in a ‘set-up' bar before the music
data commences.
Information that should be considered (per MIDI Channel)
includes:
-
Bank Select (0=GM) / Program Change #
-
Reset All Controllers (not all devices may recognize
this command so you may prefer to zero out or reset
individual controllers)
-
Initial Volume (CC7) (standard level = 100)
-
Expression (CC11) (initial level set to 127)
-
Hold pedal (0 = off)
-
Pan (Center = 64)
-
Modulation (0)
-
Pitch bend range
-
Reverb (0 = off)
-
Chorus level (0 = off)