MIDI. Musical Instrument Digital Interface. 030-MIDI: 1 HKU ICOM Multimedia Computing Dr. YIP Chi Lap

Similar documents
Concepts for the MIDI Composer, Arranger, and Orchestrator

Important Safety Instructions. FCC Statements

MIDI Data Format. MIDI-Datenformat Format des données MIDI Formato de datos MIDI CLP- 470 CLP-440 CLP-430 CLP-S408 CLP-S406 CLP-465GP

PERCUSSION INSTRUMENT LOCATIONS

Workshop Friday, June 27th 1:00 PM

Real panel Real panel screws. Real panel

CTK-3500 MIDI Implementation

General MIDI Redux By Brian Smithers Jun 1, 2001

Recommendations for Producing XG Song Data

about Orchestra Linus Metzler L i m e n e t L i n u s M e t z l e r W a t t s t r a s s e F r e i d o r f

Brick : Brasswind Musical Instrument Accessories (Non Powered)

CUSTOMS TARIFF - SCHEDULE XVIII - 1

Style Master Instruction Manual

The String Family. Bowed Strings. Plucked Strings. Musical Instruments More About Music

The Elements of Music. A. Gabriele

Registration Reference Book

Pancho Instruction Manual

Elegant Styles, Refined Tones and Much More: Presenting the Flagship AT-90S Atelier. AT-90S

Gulbransen Digital Hymnal

Call for Scores. Contents. Deadline. Contact and mailing address for submissions. Organizers

Syllabus List. Beaming. Cadences. Chords. Report selections. ( Syllabus: AP* Music Theory ) Acoustic Grand Piano. Acoustic Snare. Metronome beat sound

DP-25 digital piano. user manual

ENGR 3000 Technology of the Steel Pan Lecture 1. Lecturer: Sean Sutherland

The tempo MUSICAL APPRECIATIONS MUSICAL APPRECIATION SHEET 1. slow. Can you hear which is which? Write a tick ( ) in the PIECES OF MUSIC

DELAWARE MUSIC EDUCATORS ASSOCIATION ALL-STATE ENSEMBLES GENERAL GUIDELINES

Welcome to the West Babylon Musical Instrument Program!

Edit Menu. To Change a Parameter Place the cursor below the parameter field. Rotate the Data Entry Control to change the parameter value.

Prelude. Name Class School

MUSICAL DATA SHEET. Copyright 2008 Blastwave FX, LLC All Rights Reserved. Blastwave FX, LLC.

Section 1. Section 2 WARNING ALWAYS ENSURE THAT YOUR COMPUTER IS SWITCHED OFF BEFORE INSERTING OR REMOVING YOUR PHILIPS MUSIC MODULE CARTRIDGE

CHAPTER 14 INSTRUMENTS

Wes-Boland Eisteddfod

Grade Level Music Curriculum:

SDMK4. Digital Drum pads user s Manual. BEAT PEDAL 2 PEDAL 1 DRUM 1 DRUM 2 CHORD LEARNING RECORD DEMO TAP START METRONOME REVERB

User's Guide Version 1.03d

DCB mk 3. professional bi-directional MIDI to DCB converter. Operating manual

The Story of the Woodwind Family. STUDY GUIDE Provided by jewel winds

TABLE OF CONTENTS CHAPTER 1 PREREQUISITES FOR WRITING AN ARRANGEMENT... 1

Chapter 40: MIDI Tool

Music Representations

Instruments. Of the. Orchestra

SP Apollon Stage Piano

Norman Public Schools MUSIC ASSESSMENT GUIDE FOR GRADE 8

MARTIN SCHEUREGGER Do not keep silent

Abstract. Warning Colors by Robert McClure. flute in G and third flute doubling piccolo), two oboes, one english horn in F, two clarinets in Bb,

LBSO Listening Activities. Fanfare for the Common Man Suggested time minutes

QUICK START GUIDE. GP-3 Mini-Grand Digital Piano

The Elements of Music

RE-303 CPU. SONIC-POTIONS!!! PRELIMINARY DRAFT!!! v WORK IN PROGRESS

Articulation Guide. Berlin Orchestra Inspire 2.

Preview Only. A Holiday Encore for Band. Arranged by ROBERT W. SMITH (ASCAP) and MICHAEL STORY (ASCAP)

Music Study Guide. Moore Public Schools. Definitions of Musical Terms

UNIT 1: LESSONS 1-4 TEACHING NOTES PLANNED TASKS

Technology Institute for Music Educators. TI:ME COURSE 2A Advanced Sequencing

3/14 Municipal Möller, "Mini-Mo" M. P. Möller Opus stops, 14 ranks, 1,111 Pipes, 5 percussion

QUICK START GUIDE FP-S SPINET DIGITAL PIANO. Designer Series

NATIONAL 5 Revision Booklet

LIMITED MUSICAL INSTRUMENTS CHOICE: A GENDER STEREOTYPE. Osayande Robinson Ighagbon and Agbidi, Norense Julie (Mrs.)

study evaluated Finale, NOTION, and SmartMusic for their viability in preparing

Tobias Escher. Steinberg Media Technologies GmbH, All rights reserved. Iconica

Cathedral user guide & reference manual

COPYING A PATTERN...35

YAMAHA AUTHORIZED PRODUCT MANUAL DIGITAL RHYTHM PROGRAMMER

y POWER USER Understanding Master Mode Phil Clendeninn Senior Product Specialist Technology Products Yamaha Corporation of America

Are you a student who is looking for a CHALLENGE? Are you a student who is MOTIVATED to try something new and STICK WITH IT?

Opportunity-to-Learn Standards as Needs Assessment Checklist

multitrack sequencer USER GUIDE Social Entropy Electronic Music Instruments

ADSR AMP. ENVELOPE. Moog Music s Guide To Analog Synthesized Percussion. The First Step COMMON VOLUME ENVELOPES

AMADEUS SYMPHONIC ORCHESTRA USER GUIDE

2006 powerful Already the world s premier music notation software, Finale 2006 raises the bar with even more power and speed. PAGE 4 PAGE 6 PAGE 8

Made Me Glad. Words & music by Miriam Webster. Arranged by Mark Cole. Based on the popular recording from the Hillsong Music Australia album Blessed

Year 7 revision booklet 2017

C ustomizing.mid FilesF

The Rite of Spring Animated Graphical Score Video (Stephen Malinowski, Jay Bacal) Development Notes

44. Jerry Goldsmith Planet of the Apes: The Hunt (opening) (for Unit 6: Further Musical Understanding)

ARCHDIOCESE OF PORTLAND IN OREGON ELEMENTARY SCHOOL MUSIC CURRICULUM GUIDE. Department of Catholic Schools 2007

Articulation Guide. Berlin Orchestra Inspire.

What is the Connoisseur Virtual Theatre Pipe Organ Series?

Technical Production Rider

UNIT: THE ORCHESTRA. Fernando Solsona Berges. Subject: Methodology for Multilingual Education and Learning Foreign Languages. Teacher: Inma López

Simple time Has 2, 3 or 4 as number of beats in a bar (top number of time signature)

WINGS. Suzanne Gaye Sheppard

The Elements of Music

Tempo this means the speed of the music, how fast (Presto) or slow (Lento) it is.

QUICK START GUIDE. G-33 Digital Grand Piano

Technical Production Rider

Congratulations! Important Features

How Great Thou Art. Words: Stuart K. Hine Music: Swedish Folk Melody

Polythemus AU Midi Effect for IOS User Manual (11 th Mar 2019)

Section 1: The Basic Elements of Music

Flow To You. Words & music by Lynn DeShazo. Arranged by Dan Galbraith

Music Standard 1. Standard 2. Standard 3. Standard 4.

Danville Public Schools Music Curriculum Preschool & Kindergarten

E MU SYSTEMS MASTER SOUND LIBRARY DISKETTE INDEX July 13, 1983

Days Of Elijah. Words & music by Robin Mark. Orchestrated by Brad Henderson

NATIONAL 5 Revision Booklet

Physics Homework 4 Fall 2015

Flint School of Performing Arts Ensemble Audition Requirements

Part I. Elements. Presentation developed by: Robert Elliott Tennessee State University. McGraw-Hill

Sound/Path/Field. for multiple musical ensembles, organ, and outdoor theater by. Robert Morris

Transcription:

MIDI Musical Instrument Digital Interface 030-MIDI: 1

What s MIDI A hardware and software specification Allows musical instruments and devices to exchange information: musical notes, program changes, expression controls Examples of MIDI-supporting devices: synthesizers, samplers, keyboard controllers, lighting controllers, sequencers,... Supporting the Arts through Technology 030-MIDI: 2

MIDI: the origin First idea: 1982 1983 The Complete MIDI 1.0 Detailed Specification is jointly prepared by the MIDI Manufacturers Association (MMA) and the Japan MIDI Standards Committee (JMSC) Now JMSC becomes Association of Musical Electronics Industry (AMEI) 030-MIDI: 3

MIDI: the specification The specification, last revised 1996, has seven sections MIDI and Music Synthesis Tutorial MIDI 1.0 Detailed Specification MIDI Time Code (MTC) Standard MIDI Files (SMF) General MIDI (GM) MIDI Show Control (MSC) MIDI Machine Control (MMC) 030-MIDI: 4

MIDI: recent developments 1998: DLS: Downloadable Sounds Level 1 specification 1999-01: DLS Level 1.1 specification 1999-11: GM2: General MIDI Level 2 specification 2000-02: DLS: Downloadable Sounds Level 2.1 amendment text 2000-02: RMID (SMF w/dls) specification 2000-10: MIDI Over IEEE-1394 specification 2001-08: Amendment 1 to DLS-2.0 specification 2001-11: GM-Lite: GM Lite Specification and Guidelines for Mobile Applications 2001-11: extensible Music Format (XMF) specification 030-MIDI: 5

MIDI: more recent developments 2002-02, 2002-05: SP-MIDI: Scalable Polyphony MIDI specification 2003-07: ZLIB Audio Compression Unpacker ID for XMF 2003-07: XMF: extensible Music File (XMF) Specification v.1.01 2003-09: GM-2: General MIDI 2 Specification v 1.1 (updated) 2004-09: DLS Level 1.1b 2004-09: DLS Level 2.1 amended 2004-11: DLS Level 2.1 corrected 2004-11: SP-MIDI amended 030-MIDI: 6

Event-based vs. sample based MIDI data focus on events rather than samples Musical events, rather than the sound waveform itself, are exchanged between MIDI devices using MIDI messages Examples: Pressing a piano key Releasing a piano key Changing instrument sound Changing volume Crescendo and diminuendo Note On Note Off Program Change Volume controller Expression controller 030-MIDI: 7

Events, events Only a few bytes are needed to represent an event Storage-friendly, network-friendly Easy to edit, e.g., can change the speed or pitch of notes easily Hardware or software needed to generate sound Not easy to specify sound parameters precisely 030-MIDI: 8

MIDI: the physical specification Transmission parameters: asynchronous serial, 31.25k baud ±1%; one start bit, 8 data bits, one stop bit Circuit: Point-to-point opto-isolated 5mA current loop, current on = logic 0, fan out = 1, rise/fall time < 2µs Connector: DIN 5 pin (180 ) female panel mount receptacle, labeled MIDI IN and MIDI OUT. MIDI THRU, which copies MIDI IN data, is optional Cable: shielded twisted pair (STP), cannot be longer than 50 feet (15 m) 030-MIDI: 9

MIDI Cable 030-MIDI: 10

Words to know Channel mode message Channel pressure Channel voice message Control change Controller Data bytes Digital piano Electronic organ Electronic piano General MIDI Keyboard controller Local control MIDI keyboard MIDI mode Monophonic Multitimbral Note number Note off Note on Octave number Omni mode Patch Patch map Pitch bending Pitch wheel Poly mode Polyphonic Polyphonic key pressure Program Program change Running status Sampler Sequencer Sound generator Sound module Sound set Soundbank Status byte Synthesizer Sysex System common message System exclusive message System real time message Velocity Voice 030-MIDI: 11

Some jargons Both controllers and sequencers generate MIDI data A controller is a device played as an instrument and translates the performance into a MIDI data stream in real time. e.g., musical instrument keyboard (keyboard controller or simply MIDI keyboard ) A sequencer is a device which allows MIDI data sequences to be captured, stored, edited, combined, and replayed 030-MIDI: 12

Some more jargons A sound module, or sound generator, respond to MIDI messages received at its MIDI IN port by playing sounds Many keyboard instruments, often called digital pianos, include both a keyboard controller and a MIDI sound module within the same unit The local control function of such instruments enables or disables the internal link between the keyboard controller and the sound module 030-MIDI: 13

Connecting MIDI instruments: an example MIDI OUT MIDI IN Keyboard controller Sound module 030-MIDI: 14

Digital Pianos and local control Sound module Keyboard controller MIDI IN Local control MIDI OUT Digital piano 030-MIDI: 15

Connecting MIDI instruments MIDI data-producing devices (e.g., controllers and sequencers) are connected to MIDI data-receiving devices (e.g., sound modules what besides that?) Computers can make use of MIDI interfaces to connect to MIDI instruments Devices can be daisy-chained together using the MIDI THRU port Daisy-chaining using MIDI THRU may introduce delay 030-MIDI: 16

Connecting MIDI instruments: another example MIDI OUT MIDI IN MIDI THRU Sound module 1 Keyboard controller MIDI IN MIDI IN MIDI IN MIDI THRU MIDI THRU Sound module 2 Sound module 3 Drum machine 030-MIDI: 17

Use of MIDI interfaces MIDI OUT MIDI IN Digital piano 1 2 3 IN OUT IN OUT IN OUT MIDI IN Sound module 1 Computer 4 IN OUT MIDI interface MIDI IN Sound module 2 MIDI IN Drum machine 030-MIDI: 18

Mixing audio outputs Computer MIDI interface 1 2 IN OUT IN OUT MIDI OUT MIDI IN Digital piano Audio Out Audio Out Loudspeakers 3 4 IN OUT IN OUT MIDI IN Sound module 1 Audio Out Mixer MIDI IN Sound module 2 Audio Out Drum machine MIDI IN Audio Out Audio Inputs 030-MIDI: 19

Confusion of terminologies The use of the words synthesizer, sampler, digital piano, MIDI keyboard, electonic organ, electronic piano, and MIDI controller are often used interchangably, especially as marketing terms Always check the functionalities of a MIDI device before purchasing it 030-MIDI: 20

Confusion: an example Samplers are essentially digital recorders with some control functions such as playing back samples at a different pitch Synthesizers generate sound by computing its waveform in real time, using, for example, Frequency Modulation (FM) synthesis algorithms 030-MIDI: 21

Confusion: an example continued The majority of today s synthesizers are actually sample playback devices. Waveform data are often stored in disk or ROM Does a sound card with wavetables function as a synthesizer or sampler? 030-MIDI: 22

More jargons: polyphony A sound module is said to be polyphonic if it can play more than one note at a time Otherwise, it s monophonic Modern sound modules often support 32-note or 64-note polyphony What if five keys are pressed at the same time on a digital piano with 4-note polyphony? 030-MIDI: 23

MIDI channels There are 16 logical MIDI channels Channels are identified by a 4 bit number in some messages (Channel messages) A device can be set to receive commands from, or send commands to, a specific set of channels only How a device respond to channel commands depends on the MIDI mode it is in 030-MIDI: 24

Sound set Channel 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Patch (Percussion) Patch number / Program number 1 Acoustic Grand Piano 2 Bright Acoustic Piano 3 Electric Grand Piano : : : : 41 Violin 42 Viola 43 Cello 44 Contrbass : : : : 127 128 Voice / Timbre Applause Gunshot Sound set / Patch map 030-MIDI: 25

Voices and patches Voices are sounds of instruments (e.g., acoustic grand piano, violin) Patches are assignment of voices. There are 128 patches in MIDI Example: in a particular sound module, patch 1 can be assigned to the voice of marimba, patch 2 violin, etc. The association of all patch numbers to sounds is called the patch map (example later) 030-MIDI: 26

Patches and programs The word patch originates from the use of real patch cables in some sound systems to select voices Patches are called programs in some contexts MIDI Program Change message instruct devices to change the patch of a certain channel Yet, having only 128 programs may not be enough for sound systems 030-MIDI: 27

Banks (no money, though) A bank or soundbank is an extension of a patch. There are 16384 possible banks MIDI Bank Select message instruct devices to change its bank, a Program Change message must follow it A Bank Select message can be seen as an instruction for a device to change its internal patch map Confusion, again: soundbank is often used to describe a sound set 030-MIDI: 28

Multitimbral instruments A sound module is said to be multitimbral if it is capable of producing two or more different instrument sounds at the same time Example: a synthesizer that can produce a piano sound and a marimba sound at the same time is multitimbral What s the difference between a polyphonic sound module and a multitimbral one? Can a sound module be both polyphonic and multitimbral? 030-MIDI: 29

MIDI modes MIDI modes establish the relationship between channels and voice-assignment methods within a synthesizer The modes are Omni On/Off and Mono/Poly Each device has a basic channel for sending or receiving MIDI messages The number of voices for devices supporting mono mode is also used in one of the MIDI modes 030-MIDI: 30

MIDI modes: Omni on/off Omni on Omni off Mono Poly Omni off : Channel commands are recognized only if it matches the receiving channel or channel range Omni on : All commands are recognized, regardless of their channel numbers 030-MIDI: 31

MIDI modes: Mono, Poly Omni on Omni off Mono Poly Poly : Voices are assigned polyphonically. Simultaneous sounding of different notes possible Mono : Often assigned one voice per channel. Note On commands on a channel causes all other sounding notes in that channel to be turned off 030-MIDI: 32

MIDI messages MIDI messages consists of a status byte (0x80 0xFF) and zero or more data bytes (0x00 0x7F) A single message can occupy one, two or three bytes including the status System exclusive messages (described later) occupy a varying number of bytes 030-MIDI: 33

MIDI message types Channel messages Channel voice messages Channel mode messages System messages System common messages System real time messages System exclusive messages 030-MIDI: 34

Channel messages: a summary Status Message (hex) Data1 Data2 Note Off 8n NoteNo Velocity Note On 9n NoteNo Velocity Polyphonic Key Pressure An NoteNo Pressure Control Change Bn Controller Value Program Change Cn PgmNo Channel Pressure Dn Pressure Pitch Bend En LSB MSB n: zero-based channel number 030-MIDI: 35

Channel voice messages Note Off (0x8n), Note On (0x9n): a note is turned on or off. Followed by a note number and a velocity The nibble n corresponds to the channel number n=0 channel 1, n=1 channel 2, and so on A Note On message with velocity 0 is equivalent to a Note Off message with velocity 0x40 (Why do we need that? Explained later) 030-MIDI: 36

More channel voice message Polyphonic Key Pressure (0xAn): change of key pressure after it has been turned on Followed by note number and a pressure value Also called Polyphonic Aftertouch Useful for controllers for string instruments, e.g., violin 030-MIDI: 37

Note numbers and octave number Each note is assigned a numeric value, which is transmitted with any Note On/Off message Middle C has a reference value of 60 (0x3C) To distinguish notes from different octaves, an octave number is appended to the note name Middle C is C4 (some systems use C3, C5 or even C6) Octave numbers change at the B C boundary, so B3 and C4 is one semitone apart, so is C4 and C 4 030-MIDI: 38

The piano keyboard C 3 D 3 F 3 G 3 A 3 C 4 D 4 F 4 G 4 A 4 D 3 E 3 G 3 A 3 B 3 D 4 E 4 G 4 A 4 B 4 C3 D3 E3 F3 G3 A3 B3 C4 D4 E4 F4 G4 A4 B4 030-MIDI: 39

Velocity Interpretation of the Velocity byte is left to the receiving instrument Usually indicates how hard or fast a key has been pressed or released The larger the value, the stronger the velocity-controlled effect Devices without velocity sensitivity should use a velocity of 0x40 030-MIDI: 40

More channel voice messages Control Change (0xBn): change controller values. Followed by controller number, ranging from 0 to 119, then controller value Note that controller here is different from the controller in keyboard controller Program Change (0xCn): change internal patch map, followed by program (patch) number 030-MIDI: 41

Even more channel voice messages Channel Pressure (0xDn): change of key pressure for all keys of the channel. Followed by the pressure amount Channel Pressure is also called Channel Aftertouch Pitch Bend (or pitch wheel) (0xEn): modify the pitch of sounding notes. Followed first by least significant seven bits, then the most significant seven bits of pitch bend value. 0x2000 means centered pitch wheel 030-MIDI: 42

Controllers 0 Bank select 70 Sound controller 1 (default: Sound variation) 1 Modulation wheel or lever 71 Sound controller 2 (default: Timbre/harmonic intensity) 2 Breath controller 72 Sound controller 3 (default: Release time) 3 (undefined) 73 Sound controller 4 (default: Attack time) 4 Foot controller 74 Sound controller 5 (default: Brightness) 5 Portamento time 75 79 Sound controller 6 10 (no defaults) 6 Data entry MSB 80 83 General purpose controllers 5 8 7 Channel volume (formerly Main volume) 84 Portamento control 8 Balance 85 90 (undefined) 9 (undefined) 91 Effects 1 depth (formerly External effects depth) 10 Pan 92 Effects 2 depth (formerly Tremolo depth) 11 Expression controller 93 Effects 3 depth (formerly Chorus depth) 12 13 Effect control 1,2 94 Effects 4 depth (formerly Celeste (detune) depth) 14 15 (undefined) 95 Effects 5 depth (formerly Phaser depth) 16 19 General Purpose Controllers 1 4 96 Data increment 20 31 (undefined) 97 Data decrement 32 63 LSB for values 0 31 98 Non-Registered Parameter Number (NRPN) LSB 64 Damper pedal (sustain) 99 Non-Registered Parameter Number (NRPN) MSB 65 Portamento On/Off 100 Registered Parameter Number (RPN) LSB 66 Sostenuto 101 Registered Parameter Number (RPN) MSB 67 Soft pedal 102 119 (undefined) 68 Legato footswitch 120 127 (reserved for channel mode messages) 69 Hold 2 030-MIDI: 43

Channel mode messages Channel mode messages are Control Change message with controller number 120 127 Controller Message 120 All Sound Off 121 Reset All Controllers 122 Local Control 123 All Notes Off 124 Omni Off 125 Omni On 126 Mono On (Poly off) 127 Poly On (Mono off) 030-MIDI: 44

System common messages Mainly deal with sequencer operations Also for tuning analog synthesizers Status (hex) F1 F2 F3 F6 F7 Message MIDI Time Code Quarter Frame Song Position Pointer Song Select Tune Request EOX (End Of Exclusive) 030-MIDI: 45

System real time messages Used to synchronize clock-based MIDI equipments Status (hex) F8 FA FB FC FE FF Message Timing Clock Start Continue Stop Active Sensing System Reset 030-MIDI: 46

System exclusive messages Often called SysEx messages For sending byte sequences to a MIDI device Followed by a one-byte or three-byte (manufacturer) ID number, then a Device ID, the data, and an EOX message MIDI Sample Dump Standard (SDS) specifies the use of SysEx messages to send sampler data dumps between devices 030-MIDI: 47

Sending MIDI messages: question Suppose 22 notes are to start sounding simultaneously. What s the time needed to send all the MIDI Note On messages? 030-MIDI: 48

Sending MIDI messages: answer Time needed to transmit one byte = 1/ ( ) 31.25k 10 Number of bytes for a Note On message = 3 Time needed to send 22 Note On messages = 320 3 22µs = 21.12ms = 320µs Example MIDI stream: Note On messages on channel 1 for every note from A3 till D4 (piano keyboard here) 90 39 40 90 3A 40 90 3B 40 90 3C 40 90 3D 40 90 3E 40 030-MIDI: 49

Running status The status byte takes time to send Simultaneous events of the same type (e.g., Note On) often have the same status byte To save bandwidth, running status is used. The status byte of channel messages are remembered at the receiver Status bytes need not be sent if a message have the same status byte as the preceding message 030-MIDI: 50

Running status: example The MIDI data stream shown previously can be shortened Original: 90 39 40 90 3A 40 90 3B 40 90 3C 40 90 3D 40 90 3E 40 After using running status: 90 39 40 3A 40 3B 40 3C 40 3D 40 3E 40 030-MIDI: 51

Running status: another example, question What s the MIDI data stream of a chord where C4, E4 and G4 are turned on in succession, with each note sounding for half a second and turned off when another note starts sounding? Assume that all notes are turned on with velocity 96 and turned off with velocity 64 030-MIDI: 52

Running status: another example, answer Answer: 90 3C 60 80 3C 40 90 40 60 80 40 40 90 43 60 80 43 40 Alternative answer: 90 3C 60 90 3C 00 90 40 60 90 40 00 90 43 60 90 43 00 After using running status: 90 3C 60 3C 00 40 60 40 00 43 60 43 00 Now, do you know why Note On with velocity zero is allowed and is indeed often used? 030-MIDI: 53

MIDI: problems MIDI does not specify the patch map for instruments Inconsistency may occur between different MIDI instruments having different patch maps. e.g., Acoustic Grand Piano may be patch 1 on one system but patch 13 on another The same MIDI stream played on different sound modules may sound differently Affects portability of MIDI files 030-MIDI: 54

The solution: General MIDI General MIDI (GM) System describes the minimum requirement of sound generators Specifies minimum number of voices, sound locations, drum note mapping, octave registration, pitch bend range, and controller usage Does not specify exact timbre and characteristics of instruments Identified by the GM logo 030-MIDI: 55

GM system Specifies the followings: GM sound generator requirements GM sound generator recommended hardware GM protocol implementation requirements 030-MIDI: 56

GM System Level 1 sound generator requirements Minimum of 24 fully dynamically allocated voices available simultaneously for both melodic and percussive sounds, or 16 dynamically allocated voices for melody and 8 for percussion Support all 16 MIDI polyphonic channels Each channel can play a different instrument 030-MIDI: 57

More on GM System Level 1 sound generator requirements At least 128 presets for instruments (MIDI program numbers) conforming to the GM sound set At least 47 preset percussion sounds conforming to the GM percussion map 030-MIDI: 58

General MIDI sound set groupings ProgNo Instrument group ProgNo Instrument group 1 8 Piano 65 72 Reed 9 16 Chromatic percussion 73 80 Pipe 17 24 Organ 81 88 Synth Lead 25 32 Guitar 89 96 Synth Pad 33 40 Bass 97 104 Synth Effects 41 48 Strings 105 112 Ethnic 29 56 Ensemble 113 120 Percussive 57 64 Brass 121 128 Sound Effects Both GM sound set groupings and the GM sound set apply to all channels except channel 10 030-MIDI: 59

General MIDI sound set Prog Instrument Prog Instrument Prog Instrument Prog Instrument 1 Acoustic Grand Piano 33 Acoustic Bass 65 Soprano Sax 97 FX 1 (rain) 2 Bright Acoustic Piano 34 Electric Bass (finger) 66 Alto Sax 98 FX 2 (soundtrack) 3 Electric Grand Piano 35 Electric Bass (pick) 67 Tenor Sax 99 FX 3 (crystal) 4 Honky-tonk Piano 36 Fretless Bass 68 Baritone Sax 100 FX 4 (atmosphere) 5 Rhodes Piano 37 Slap Bass 1 69 Oboe 101 FX 5 (brightness) 6 Chorused Piano 38 Slap Bass 2 70 English Horn 102 FX 6 (goblins) 7 Harpsichord 39 Synth Bass 1 71 Bassoon 103 FX 7 (echoes) 8 Clavi 40 Synth Bass 2 72 Clarinet 104 FX 8 (sci-fi) 9 Celesta 41 Violin 73 Piccolo 105 Sitar 10 Glockenspiel 42 Viola 74 Flute 106 Banjo 11 Music Box 43 Cello 75 Recorder 107 Shamisen 12 Vibraphone 44 Contrabass 76 Pan Flute 108 Koto 13 Marimba 45 Tremolo Strings 77 Blown Bottle 109 Kalimba 14 Xylophone 46 Pizzicato Strings 78 Shakuhachi 110 Bag pipe 15 Tubular Bells 47 Orchestral Harp 79 Whistle 111 Fiddle 16 Dulcimer 48 Timpani 80 Ocarina 112 Shanai 17 Drawbar Organ 49 String Ensemble 1 81 Lead 1 (square) 113 Tinkle Bell 18 Percussive Organ 50 String Ensemble 2 82 Lead 2 (sawtooth) 114 Agogo 19 Rock Organ 51 SynthStrings 1 83 Lead 3 (calliope) 115 Steel Drums 20 Church Organ 52 SynthStrings 2 84 Lead 4 (chiff) 116 Woodblock 21 Reed Organ 53 Choir Aahs 85 Lead 5 (charang) 117 Taiko Drum 22 Accordion 54 Voice Oohs 86 Lead 6 (voice) 118 Melodic Tom 23 Harmonica 55 Synth Voice 87 Lead 7 (fifths) 119 Synth Drum 24 Tango Accordion 56 Orchestra Hit 88 Lead 8 (bass + lead) 120 Reverse Cymbal 25 Acoustic Guitar (nylon) 57 Trumpet 89 Pad 1 (new age) 121 Guitar Fret Noise 26 Acoustic Guitar (steel) 58 Trombone 90 Pad 2 (warm) 122 Breath Noise 27 Electric Guitar (jazz) 59 Tuba 91 Pad 3 (polysynth) 123 Seashore 28 Electric Guitar (clean) 60 Muted Trumpet 92 Pad 4 (choir) 124 Bird Tweet 29 Electric Guitar (muted) 61 French Horn 93 Pad 5 (bowed) 125 Telephone Ring 30 Overdriven Guitar 62 Brass Section 94 Pad 6 (metallic) 126 Helicopter 31 Distortion Guitar 63 Synth Brass 1 95 Pad 7 (halo) 127 Applause 32 Guitar Harmonics 64 Synth Brass 2 96 Pad 8 (sweep) 128 Gunshot 030-MIDI: 60

General MIDI percussion map MIDI MIDI MIDI Drum sound Drum sound Key Key Key Drum sound 35 Acoustic Bass Drum 51 Ride Cymbal 1 67 High Agogo 36 Bass Drum 1 52 Chinese Cymbal 68 Low Agogo 37 Side Stick 53 Ride Bell 69 Cabasa 38 Acoustic Snare 54 Tambourine 70 Maracas 39 Hand Clap 55 Splash Cymbal 71 Short Whistle 40 Electric Snare 56 Cowbell 72 Long Whistle 41 Low Floor Tom 57 Crash Cymbal 2 73 Short Guiro 42 Closed Hi Hat 58 Vibraslap 75 Claves 43 High Floor Tom 59 Ride Cymbal 2 76 Hi Wood Block 44 Pedal Hi-Hat 60 Hi Bongo 77 Low Wood Block 45 Low Tom 61 Low Bongo 78 Mute Cuica 46 Open Hi-Hat 62 Mute Hi Conga 79 Open Cuica 47 Low-Mid Tom 63 Open Hi Conga 80 Mute Triangle 48 Hi Mid Tom 64 Low Conga 81 Open Triangle 49 Crash Cymbal 1 65 High Timbale 50 High Tom 66 Low Timbale 030-MIDI: 61

General MIDI Level 2 Published in 1999-11-15, extends GM Level 1 Support up to 2 simultaneous percussion kits New control change messages (Decay time, Vibrato rate, Vibrato depth, Vibrato delay) Defines universal SysEx messages, mainly for tuning, reverb and chorus settings Recommends response behavior of some messages Logo: 030-MIDI: 62

SMF: Standard MIDI Files Specifies how the MIDI data stream is stored with timing information, the.mid stuff Need to encode timing information A chunk-based file format Support tracks Support meta-events 030-MIDI: 63

SMF timing MIDI ticks is the finest unit of timing Header chunk specifies of number of ticks per quarter note or ticks per SMPTE frame The Set Tempo meta-event specifies the number of microseconds per MIDI quarter note The Time Signature meta-event specifies number of MIDI clocks in a metronome click A system common message also deal with MIDI Time Code time 030-MIDI: 64

SMF formats Format 0 most interchangable format one header, one track Format 1 vertically one dimensional form one header, one or more tracks a collection of simultaneous tracks Format 2 horizontally one dimensional form one header, one or more tracks one independent pattern in each track 030-MIDI: 65

SMF meta-events Format (hex) FF 00 02 ssss FF 01 len text FF 02 len text FF 03 len text FF 04 len text FF 05 len text FF 06 len text FF 07 len text FF 20 01 cc FF 2F 00 FF 51 03 tttttt FF 54 05 hr mn se fr ff FF 58 04 nn dd cc bb FF 58 02 sf mi FF 7F len data Description Sequence number Text event Copyright notice Sequence/Track name Instrument name Lyric Marker Cue point MIDI channel prefix End of track (mandatory meta-event) Set tempo, µs per quarter note SMPTE Offset Time signature nn/2 dd cc MIDI clock per metronome click bb notated 32nd note as 24 MIDI clock Key signature, sf sharps (negative=flats) mi = 0, 1 major, minor Sequencer-specific meta-event 030-MIDI: 66

Other parts of the MIDI specification MIDI Time Code (MTC) for synchronization and control of MIDI devices MIDI Show Control (MSC) allow MIDI systems to communication with and to control dedicated intelligent control equipment in theatrical, live performance, multimedia, audio-visual and similar environments 030-MIDI: 67

Other parts of the MIDI specification MIDI Machine Control (MMC) allow MIDI systems to communication with and to control some of the more traditional audio recording and production systems MIDI Media Adaptation Layer for IEEE-1394 (Oct 2000) describes how MIDI data is transmitted over IEEE-1394 (Firewire) Downloadable Sounds Specification (DLS) Levels 1, 2, and 2.1, formats for defining musical instruments using waveform information 030-MIDI: 68

MIDI: an evaluation Provides a nice framework for musicians to experiment on musical arrangements and orchestrations Favors piano or keyboard type of instruments Flexible, because it does not specify how an instrument should sound Too much flexibility, the same sequence can play very differently under different system configurations 030-MIDI: 69

MIDI: an evaluation No standard way of access to synthesizer parameters Lack of bidirectional communication facilities It s a standard anyway (though de facto /di: fæktou/) Any more? 030-MIDI: 70

Section references The Complete MIDI 1.0 Detailed Specification Version 96.1, MIDI Manufacturers Association General MIDI Level 2 MIDI Manufacturers Association Downloadable Sounds Level 2.1 MIDI Manufacturers Association MIDI specifications from the source. These are some of the more readable specifications. http://www.midi.org/ The MIDI Manufacturers Association (MMA) website. 030-MIDI: 71

More references Beyond MIDI: The Handbook of Musical Codes edited by Eleanor Selfridge-Field The MIT Press, ISBN 0-262-19394-9 MIDI, although influential, is not the only way music can be represented in computers. This book introduces readers a number of musical codes designed for a number of very different purposes. Musicians Make a Standard: The MIDI Phenomenon Gareth Loy Computer Music Journal, Vol.9, No.4, Winter 1985. Quite a nice reference to MIDI that brings you back to the days MIDI was designed. So, it is outdated. Don t expect information from the article to be completely accurate in today s situations. 030-MIDI: 72