Assigned: Friday, Sep. 7, 2012
Due Date: Monday, Sep. 17
Due Time: 10:55am
Last modified on September 10, 2012, at 04:15 PM (see updates)
This is a pair-programming assignment (i.e., you may work with one partner). You may discuss the assignment only with your partner or the instructor.
This assignment focuses on:
- creating interesting music with jMusic
- MIDI melodies
- MIDI percussion (optional)
In class we worked through several programs that put all jMusic data structures into practice. Write a Jython program that generates an interesting piece of music.
Pitch & Rhythm Values
For a quick overview of music notation, see Ch. 2 of our textbook.
MIDI Percussion (optional)
MIDI has 16 channels (numbered 0 to 15). Of these, channel 9 is reserved for percussion. When adding notes to a part assigned to channel 9, the pitch of the notes determines which percussive instrument to use. Here are pitch numbers for some percussive instruments:
- 36 (C2) -- Bass Drum
- 38 (D2) -- Snare Drum
- 42 (FS2) -- Hi Hat (closed)
- 46 (AS2) -- Hi Hat (open)
- 49 (DF3) -- Crash Cymbal
Here are more pitch numbers for percussive instruments.
Follow the Golden Rule of Style: "A program should be as easy for a human being to read and understand as it is for a computer to execute." 
In general, you should comment any variable, obscure statement, block of code, etc. you create.
Additionally, your code should always include opening comments as follows:
# Author: "Your names"
# Email: "Your email addresses"
# Class: CSCI 180
# Assignment: HMWK2
# Due Date: The assignment's due date
# Certification of Authenticity:
# < ! Delete one of the two statements below - also delete this comment ! >
# I certify that this lab is entirely my own work.
# I certify that this lab is my own work, but I received
# some assistance from: "add people's names, Web links, or other references"
# Purpose: < ! Replace this comment with a simple, yet complete description of
# what your program does - e.g., "This program plays Chopen's Nocturne,
# Op 72. No. 1." The description may be several sentences long. ! >
You will submit your assignment via OAKS. Be prepared to demo your music to the rest of the class. Your submission consists of:
- Your Python program. Give it a meaningful name.
- The MIDI file generated from your program.
Your grade will be based on how well you followed the above instructions, and the depth/quality of your work.
Some Interesting Submissions
Here are a few interesting earlier submissions:
"Any amount of work can be done in any amount of time... only the quality varies." ~Joao Meidanis
- Cooper, D. and Clancy, M. (1985) "Oh! Pascal", 2nd ed., W.W. Norton & Company, New York, p. 42.