Bill Manaris : Fall 2011 / CSCI 180 Homework 2

Section 1:

Assigned: Friday, Sep. 23, 2011
Due Date: Wednesday, Oct. 5
Due Time: 10:50am

Section 2:

Assigned: Thursday, Sep. 22, 2011
Due Date: Thursday, Oct. 6
Due Time: 9:20am

Last modified on October 31, 2011, at 02:09 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:


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

Here is a quick overview of music notation for note pitches and note durations (rhythm values).

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:

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." [1]

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, Section 1 (update appropriately)
#   Assignment: HMWK2
#   Due Date:  The assignment's due date
#   Certification of Authenticity <remove one of the following>:     
#      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:  <Name(s)>
#   Purpose: <Provide a simple, yet complete description of the task being
#         performed by this program. It 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:

  1. Your Python program. Give it a meaningful name.
  2. 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 submissions:

Relevant Quote

"Any amount of work can be done in any amount of time... only the quality varies." ~Joao Meidanis


  1. Cooper, D. and Clancy, M. (1985) "Oh! Pascal", 2nd ed., W.W. Norton & Company, New York, p. 42.
(Printable View of