Difference between revisions of "MIDI file creation"
Line 1: | Line 1: | ||
− | First, review the [https://docs.google.com/presentation/d/1_6oxivRKMQ0hrsvIV2oFxWCMZ2jHpIu2aSJs6-GiGQ8/edit#slide=id.g4e0429a3fc_2_75 | + | First, review the [https://docs.google.com/presentation/d/1_6oxivRKMQ0hrsvIV2oFxWCMZ2jHpIu2aSJs6-GiGQ8/edit#slide=id.g4e0429a3fc_2_75 lecture slides]. Create a MIDI file with at least 25 MIDI messages. |
− | |||
Incorporate at least 4 of the following features into the MIDI file: | Incorporate at least 4 of the following features into the MIDI file: |
Latest revision as of 06:37, 30 January 2020
First, review the lecture slides. Create a MIDI file with at least 25 MIDI messages.
Incorporate at least 4 of the following features into the MIDI file:
- Type-1 MIDI file (multi-track)
- Patch change (timbre/instrument change)
- Pitch bend (glissandos, temperament)
- Articulations (accents, staccato/legato)
- Continuous controller (master volume, pan)
- Meta message (tempo, key signature, time signature, track name)
- Percussion sounds
- Chords
Send me a copy of the MIDI file (and the text representation) by next Thursday's class so we can play them.
Contents
Examples
Here are examples from class that can be used as a reference.
Twinkle, Twinkle Little Star
"MThd" 4'6 2'0 2'1 2'128 "MTrk" 4'140 v0 ff 58 v4 '4 '2 '48 '8 v0 ff 59 v2 '0 '0 v0 90 '60 '40 v128 90 '60 '0 v0 90 '60 '30 v128 90 '60 '0 v0 90 '67 '45 v128 90 '67 '0 v0 90 '67 '50 v128 90 '67 '0 v0 90 '69 '45 v128 90 '69 '0 v0 90 '69 '50 v128 90 '69 '0 v0 90 '67 '35 v256 90 '67 '0 v0 90 '65 '50 v128 90 '65 '0 v0 90 '65 '45 v128 90 '65 '0 v0 90 '64 '50 v64 90 '64 '0 v64 90 '64 '40 v64 90 '64 '0 v64 90 '62 '45 v64 90 '62 '0 v64 90 '62 '50 v64 90 '62 '0 v64 90 '60 '30 v256 90 '60 '0 v0 ff 2f v0
Idea: Try creating a type-1 MIDI file, and add a bass line to the melody using this score: http://imslp.org/wiki/12_Variations_on_%22Ah,_vous_dirai-je_maman%22,_K.265/300e_(Mozart,_Wolfgang_Amadeus)
Adding a patch change
Here is a list of General MIDI instruments: http://www.ccarh.org/courses/253/handout/gminstruments
Note that you need to subtract 1 from the instruments in that list for the patch change. Remember that the page change is the hex byte C0 (for changing the instrument on channel 1).
"MThd" 4'6 2'0 2'1 2'128 "MTrk" 4'143 v0 ff 58 v4 '4 '2 '48 '8 v0 ff 59 v2 '0 '0 v0 c0 60 v0 90 '60 '40 v128 90 '60 '0 v0 90 '60 '30 v128 90 '60 '0 v0 90 '67 '45 v128 90 '67 '0 v0 90 '67 '50 v128 90 '67 '0 v0 90 '69 '45 v128 90 '69 '0 v0 90 '69 '50 v128 90 '69 '0 v0 90 '67 '35 v256 90 '67 '0 v0 90 '65 '50 v128 90 '65 '0 v0 90 '65 '45 v128 90 '65 '0 v0 90 '64 '50 v64 90 '64 '0 v64 90 '64 '40 v64 90 '64 '0 v64 90 '62 '45 v64 90 '62 '0 v64 90 '62 '50 v64 90 '62 '0 v64 90 '60 '30 v256 90 '60 '0 v0 ff 2f v0
Type-1 (multitrack) MIDI files
"MThd" 4'6 2'1 2'3 2'6 "MTrk" 4'11 v0 ff 51 03 t40 v0 ff 2f 00 "MTrk" 4'28 v0 99 '76 '64 v2 99 '76 '64 v2 99 '76 '64 v2 99 '76 '64 v2 99 '76 '64 v2 99 '76 '64 v0 ff 2f 00 "MTrk" 4'24 v0 99 '77 '64 v3 99 '77 '64 v3 99 '77 '64 v3 99 '77 '64 v3 99 '77 '64 v0 ff 2f 00
Idea: try other poly rhythm patterns, such as 5 against 7.
Pitch bend
"MThd" 4'6 2'0 2'1 2'100 "MTrk" 4'72 v0 90 '60 '100 v90 80 '60 '100 v10 e0 p0.5 v0 90 '59 '100 v90 80 '59 '100 v10 e0 p-0.5 v0 90 '61 '100 v90 80 '61 '100 v10 e0 p1 v0 90 '58 '100 v90 80 '58 '100 v10 e0 p-1 v0 90 '62 '100 v90 80 '62 '100 v10 e0 p0 v0 90 '60 '100 v90 80 '60 '100 v0 ff 2f 00
Continuous Controllers
Panning an instrument from left to right:
"MThd" 4'6 2'1 2'3 2'100 "MTrk" 4'76 v0 b9 '10 '0 v0 99 '60 '90 v100 b9 '10 '16 v0 99 '60 '90 v100 b9 '10 '32 v0 99 '60 '90 v100 b9 '10 '48 v0 99 '60 '90 v100 b9 '10 '64 v0 99 '60 '90 v100 b9 '10 '80 v0 99 '60 '90 v100 b9 '10 '96 v0 99 '60 '90 v100 b9 '10 '112 v0 99 '60 '90 v100 b9 '10 '127 v0 99 '60 '90 v0 ff 2f 00