Standard MIDI File (SMF) - MIDI Musical Instrument Digital Interface
Standard MIDI File (SMF)

Menu

  Home

Standard MIDI File (SMF)

Standard MIDI Files ("SMF" or *.mid files) are a popular source of music on the web, and for musicians performing in clubs who need a little extra accompaniment.


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 fileWhether 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)

All files should also begin with a GM/GS/XG Reset message (if appropriate) and anyMusical 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. other System Exclusive data that might be necessary to setup the target synthesizer. If RPNs or more detailed controller messages are being employed in the file these should also be reset or normalized in the header.

If you are inputting header data yourself it is advisable not to clump all such information together but rather space it out in intervals of 5-10 ticks. Certainly if a file is designed to be looped, having too much data play simultaneously will cause most playback devices to ‘choke, ' and throw off your timing.

  

MIDI Manufacturers Association (MMA)

MIDI is a trademark of MIDI Manufacturers Association Incorporated.

About MIDI - Making Music with MIDI - MIDI Controllers - MIDI Products - MIDI Glossary - MIDI Polyphonic Expression (MPE)



Copyright © 2004-2024 Syntheway Virtual Musical Instruments.

Privacy Policy | Disclaimer | FAQ | Site Map | Artists & LinksTechnical Support ContactAbout Us