EE2F2 – Music Technology, Laboratory 1

MIDI and Sequencers

Aims

The aims of this session are to explore the practical application of MIDI messages and to introduce some basic concepts of sequencers.

Objectives

Upon successful completion of this lab, students should:

·  Appreciate the pros and cons of primitive analogue style sequencers

·  Understand the form and function of the most commonly used MIDI messages

·  Appreciate the potential of MIDI sequencing software

·  Have had fun playing with some simple music software!

1. Virtual Analogue Sequencing

The software for both the music technology labs can be found in the start menu under the heading “Music Technology”. For this part, run the program “Drum Sequencer”. This is actually a MIDI sequencer but it is styled after a traditional analogue design. The MIDI messages generated by this sequencer (and the one used in part 2) should automatically go to the internal General MIDI synthesiser built into the computer.

When you first run the program, only a bass drum is available. Test the software by inserting some beats using the mouse and press “play”. Additional drum beats may be added (or removed) at any time.

When you are happy that everything works (i.e. sound comes out of the headphones), you can select a more interesting drum kit from the drop down list. Using the mouse again, program a drum pattern into the sequencer either from scratch or based on one of the example patterns on the EE2F2 web page (it’s more fun to create your own!). Make a note of your drum pattern in your lab book (NB. there’s no save function on this sequencer, just like the real thing).

After playing with the sequencer for ten or fifteen minutes, you should be able to identify the pros and cons of this kind of sequencer. Make a note of at least three good points and three shortcomings of this virtual drummer (compared with the real thing).

2. MIDI Messages

For the remainder of this session, we will be using the program “MIDI Lab”. This is a very primitive MIDI sequencer written to allow you to explore the MIDI communications protocol at its lowest level. The on-line help file explains the functions of the program; you should refer to this throughout. Also, a supporting web page is provided via a link from the main music technology page; this will be useful throughout as well.

a. Note-On and Note-Off Messages

Input the necessary codes to generate a note-on message at 0 seconds for note ‘A4’ with a velocity of 120 (all notes will be MIDI channel 0). Type the event time and byte codes directly into the spreadsheet-style boxes. Also, input a note-off message at 1 second for the same note with a release velocity of 120 again. At all times, make a note of your current sequence. To listen to the result, either select ‘Play Sequence’ from the Sequence menu or just press F5. Listen to the sequence again with different velocity values and also different note values. Note the effect of changing the values of the data bytes.

Return the data bytes to their original values and add a second note-on message at 0.5 seconds for note ‘E3’ with a velocity of 120 again. Add a corresponding note-off message at 1.5 seconds. Note the effect of transmitting the second note-on before the first note-off.

Add a third note ‘C3’, starting at 1 second and ending at 2 seconds. Make a note of the sequence and save it to disk; we will use it again later.

b. Controller Change Messages

Using your sequence from (a), insert a controller change message at time zero setting controller number 1 to its maximum value of 127. Describe the effect in your notes. Try the same thing again with different values less than 127, describe the effect of changing this controller value.

Repeat this process for controller numbers 7 and 10, describe the effect of each of these controllers. Finally, try the same process with controller number 64 (damper pedal). This is an ‘on/off’ type controller rather than a continuous one so you only need to try it with values of 0 and 127, describe its effect again.

c. Program Change Messages

Start a new sequence and input a single note starting at 0.5 seconds and ending at 3 seconds. It should have a pitch of ‘C3’ and a velocity of 120. When you play the sequence, you should hear the single middle-C played on a piano voice. Now insert a program change message at time zero for program number 19. Describe the effect with reference to the General MIDI note allocations (in the appendix of the course notes or via the supporting web page).

NB. Although the General MIDI program numbers are labelled from 1-128, the program numbers available are 0-127. To select a program number from the list, you have to subtract one to form the correct MIDI message. E.g. ‘Church Organ’ is listed as program 20. To use it we had to transmit 20-1=19.

Confirm your understanding of program change messages by playing the same note using a ‘Trumpet’, a ‘Steel Drum’ and a ‘Bagpipe’. Make notes of the General MIDI numbers and the corresponding program change message codes required.

d. Composing a Multi-Timbral Sequence

The final part of this lab will be to compile a short arrangement of the first line of the national anthem (I chose this because it’s fairly simple and everyone knows how it goes). You will need to refer to the supporting web page throughout

(i)  From the web page, translate the block diagram indicating how the melody of the arrangement goes into the corresponding note-on and note-off messages (using channel 0 and a velocity of 120 throughout). Input them into a new sequence and try it out. Make a note of your sequence and save it for future use.

(ii)  Start a new sequence for the bass line and input it in the same way except this time you should use a different MIDI channel (channel 1). Note your sequence again and save it to a different file.

(iii)  Using the merge function, you can combine the melody and bass lines from (i) and (ii) into a single sequence. Furthermore, by inserting program change messages at time zero you can play each part on a different voice. Try setting channel 0 to ‘Church Organ’ and channel 1 to ‘Fretless Bass’. Save this merged sequence to another file.

(iv)  The third sequence on the web page is for the harmony, or chords. Input the sequence as before but using MIDI channel 2 and try it out. Note the sequence again and save it to disk.

(v)  Finally, merge together all three sequences together using the file saved in (iii). Insert another program change at time zero for channel 2, setting it to ‘String Ensemble 1’. Also insert volume change messages (controller 7) at time zero to get the balance of the three parts sounding correct (channel 2 will probably need to be a bit quieter – experiment with different settings). You may like to add extra controller changes if you’re feeling creative! Save the sequence to disk and print the .seq file using Wordpad, include the print-out in your write-up.

It will probably take quite some time to plug in all the numbers (sorry about that!). If you do still have time left at the end, however, why not try jazzing your sequence up with a drum part (using channel 10-1=9). Alternatively, try creating a different arrangement from scratch or just reload the drum sequencer and have some fun!

Assessment

Your lab write-up will be assessed at the same time as the second lab which should be handed in at reception by 12:00 on Monday, week 10 (17th March). The main objective of this lab is to learn about MIDI messages and sequencing whilst having fun! For the purposes of assessment, however, marks will be allocated based on the completeness of the write-up. The broad marking scheme is:

Virtual Analogue Drum Sequencer [15 %]

MIDI – Note on/off [15 %]

MIDI – Controller Change [15 %]

MIDI – Program Change [15 %]

MIDI Sequencing [15 %]

Conclusions – stating what you have learned from this lab [25 %]