Difference between revisions of "MIDI file creation"

From CCARH Wiki
Jump to navigation Jump to search
(created page)
 
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
Create a MIDI file with at least 25 MIDI messages.
+
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:
Line 59: Line 59:
 
v256    90 '60 '0
 
v256    90 '60 '0
 
v0      ff 2f v0
 
v0      ff 2f v0
 +
</pre>
 +
 +
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)
 +
 +
 +
[[File:maman.png|650px|thumb|center|Twinkle, twinkle, little star]]
 +
 +
=== 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).
 +
 +
<pre>
 +
"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
 +
</pre>
 +
 +
 +
=== Type-1 (multitrack) MIDI files ===
 +
 +
<pre>
 +
"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
 +
</pre>
 +
 +
Idea: try other poly rhythm patterns, such as 5 against 7.
 +
 +
=== Pitch bend ===
 +
 +
<pre>
 +
"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
 +
</pre>
 +
 +
 +
=== Continuous Controllers ===
 +
 +
Panning an instrument from left to right:
 +
 +
<pre>
 +
"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
 
</pre>
 
</pre>

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.

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)


Twinkle, twinkle, little star

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