<< Chapter < Page Chapter >> Page >
A complete musical performance can be recorded by sequencing software, which saves individual MIDI messages generated by a synthesizer and measures the time interval between them. The messages and timing information is stored in a standard MIDI file, a binary-format file designed to maximize flexibility and minimize file size. In this module you will learn how to understand the structure of a standard MIDI file at the byte level.

Introduction

In the 1970s, analog synthesizers were either played live by a keyboards musician or by a hardware device called a sequencer . The sequencer could be programmed with a pattern of notes and applied continuously as a loop to the keyboard. In 1983 the MIDI ( Musical Instrument Digital Interface ) standard was released, and MIDI-capable synthesizers could be connected to personal computers; the IBM PC and Apple Macintosh were among the first PCs to be connected to synthesizers. Software applications were developed to emulate the behavior of hardware sequencers, so naturally these programs were called“sequencers.”

A sequencer application records MIDI messages and measures the time intervals between each received message. When the song is played back, the sequencer transmits the MIDI messages to the synthesizer, with suitable delays to match the original measurements. Sequencers store related MIDI messages in tracks . For example, the musician can record a drum track, and then record a bass track while listening to the drum track, and continue in this fashion until a complete song is recorded with full instrumentation. The finished result is stored in a standard MIDI file ( SMF ), normally named with the .mid suffix. In recent years sequencing software has merged with audio recording software to create a digital audio workstation, or DAW . Audio and MIDI tracks may be easily recorded, edited, and produced in one seamless environment.

Standard MIDI files can be played by a number of non-sequencer applications such as Winamp and Windows Media Player. In the absence of a synthesizer, these applications send the MIDI messages directly to the MIDI synthesizer included on the computer’s soundcard. With a sufficiently high-quality soundcard, a software synthesizer application can be used instead of conventional synthesizer hardware to produce high-quality music; a USB piano-style keyboard is the only additional piece of gear needed.

After completing this module you will understand the structure of a standard MIDI file, including fundamental concepts such as files chunks , delta-times in variable-length format , running status , and meta-events . See MIDI Messages to learn more about the types of messages that can be contained in a standard MIDI file.

High-level structure

A standard MIDI file contains two high-level types of information called chunks : a single header chunk , and one or more track chunks . The header chunk defines which of three possible file types is in force, the number of track chunks in the file, and information related to timing. The track chunk contains pairs of delta times and events ; the delta time indicates the elapsed time between two Note-On messages, for example.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Musical signal processing with labview -- midi for synthesis and algorithm control. OpenStax CNX. Nov 09, 2007 Download for free at http://cnx.org/content/col10487/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Musical signal processing with labview -- midi for synthesis and algorithm control' conversation and receive update notifications?

Ask