MUSC 108. Introduction to Music Technology - Fall 2013

03Lab6 - Dynamics 3 - Volume Control

[Overview [Syllabus]

Guidelines for MIDI Dynamics

There are three methods to control dynamics in MIDI.

03Lab1 - MIDI Velocity

Use velocity to produce single note accents and rhythmic drive in each instrument. Higher velocities are used on the strong beats and lower velocities are used on the weak beats. Note velocity sometimes affects the timbre of a note. Modern sample libraries have multiple waveforms for each note depending on the velocity. A piano library may contain samples of each note six different dynamic levels from pp to ff and choose samples based on velocity. A string instrument might use velocity levels to change bowing styles. A trumpet might create a growl effect within a certain velocity range.

03Lab5 - MIDI Expression control (CC11)

MIDI Expression Control (CC11) should be thought of as a local volume control for a single instrument that can be used to create crescendos and decrescendos. It can also be used to shape the swell and decay of a long sustained note.

03Lab6 - MIDI Volume Control (CC7)

MIDI Volume Control (CC7) should be thought of as the master volume control. It is used at the beginning of the song to set the initial balance between instruments.

Play the C Major Scale in Octaves

Copy the 03Lab5 data into 03Lab6 at A1. Paste the same data again at cell F1. Save the F1:I88 data for the Soprano line.

Create the bass line

The bass line will play one octave lower on MIDI Channel 2, use a different instrument, and will be accented in threes. Sort the data in cells A1:D90 to separate the status messages.

sort status ascending

Create A Rhythmic feel in Threes

Use velocity (data2 of NON messages) to create a triple meter rhythm: strong, weak, weak, for every three beats. Use the velocity of 100 for the strong beats, and a velocity of 70 for the weak beats. Setup the first three NON beats

Triplet velocity pattern

Select and copy cells D2:D7.

Paste into D8:D59.

Bass Plays on Channel 2

You'll need to change the Status bytes in column A. All 90's will become 91's. All B0's will become B1's.

Transpose the Bass track Two octaves Lower

Because there are 12 half steps in an octave, you can simply add or subtract 12 to change the pitch (data1) up or down one octave. Set up a formula in an empty column to transpose the data1 notes in column B two octaves lower. If you choose Column K as the empty column, click in cell K2 and enter the formula "=C2-24".

Copy K2. Select cells K3:K59, and paste. Select cell C2 and use Paste Special by Values to paste the new data1 values.

Move the Soprano to the end of the Bass track

Copy all data in cells F2:I90 and paste into cell A91. The Bass track is in cells A2:D90 playing on MIDI Channel 2 ($9n and $Bn and $Cn where n = 1). The Soprano track is in cells A91:D179 playing on MIDI Channel 1 ($9n and $Bn and $Cn where n = 0).

Add CC7 messages to set the initial volume

You can do this beginning at row 180. You can sort everything later. For a start, set both Soprano and Bass to volume 100.

Add CC7 messages

MIDI Patch Change Message

Patch Change messages are used to change instruments. MIDIDisplay can use any one of the 128 sounds specified in the "General MIDI Level 1 Sound Set" standard. The Patch Change message is one of a few MIDI messages that do note use a data2 byte. MIDIDisplay does it wrong. MIDIDisplay expects the $Cn message with a data 2 byte. Standard MIDI Files expect a Patch Change message without a data2 byte. The MIDIDisplay Help pages list all General MIDI instruments.

Status Byte (n=channel) Data1

$Cn

Patch Number

0 - 127
General MIDI Instrument number minus 1

Let's start with both instruments set to the piano sound. GM number 0. Rows 182 and 183 show the patch change command.

Patch change message

Important: In the MIDI specification $Cn is a one data byte message. MIDIDisplay does it wrong and expects the data2 byte to be zero.

Sort the Soprano and Bass tracks into MIDI Display order

Sort A1:D181 into MIDIDisplay order. This time you'll need a three way sort.

sort time data2 status

Play in MIDIDisplay

IMPORTANT: Make sure the Reset All Controllers messages ($Bn 121 0) are the very first messages.

Copy cells A1:D183. Paste the data into MIDIDisplay and click the Play button. Adjust the tempo as desired.

MIDI volume Control - Dynamics Method 3

Make the bass louder than the soprano on the ascending portion of the scale and do the opposite on the descending portion of the scale.

You can do this by changing these two lines in MIDIDisplay. Copy these two lines.

Make bass louder than soprano

Find the point in the in the data where the scale reaches its highest note and create a blank line. Set the blinking vertical cursor on that line and paste.

High note in scale

Switch the $Bn 7 data2 values so that channel 1 is 110 and channel 2 is 70. Adjust the time stamps to be just prior to 14000. Remove any blank lines.

Switch volume control at high point of scale

MIDI Patch changes

Change the soprano and bass instruments. Open the MIDIDisplay help page from the Help menu. Click the General MIDI link, and scroll to the GM1 Instrument Patch Map section. Choose one instrument for the Soprano and another for the Bass.

Excel 8

These commands would change the channel 1 to Honky-tonk Piano and channel 2 to Marimba.

Patch change commands

Change instruments within the song

Try inserting new patch changes at different places in the song. Be sure to put them before the first Note On message that you want to affect. If possible, adjust the time stamps for the $Cn message to be one less thatn the time stamp for the following NON message. When using chronological time, successive time stamps must either remain the same or increase. If the chronological times get out of order, MIDIDisplay may go into an endless loop.

Continue with 03Lab7.

[Overview [Syllabus]

Revised John Ellinger, January - September 2013