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.

Purpose

This assignment focuses on:

creating interesting music with jMusic

MIDI melodies

MIDI percussion

Introduction

In class we worked through several programs that put all jMusic data structures into practice (see Ch4 of the jMusic book). We looked at:

a program that creates a drum pattern consisting of kick, snare and hi-hat sounds;

a program that creates a canon; and

a program that creates a minimalist piece (Piano Phase by Steve Reich).

As mentioned earlier, 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. Again, here are pitch numbers for some percussive instruments:

MIDI Instruments

Documentation

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 Name(s)># Email: <Your email address(es)> # Class: CSCI 180, Section 1 # Assignment: HMWK1# 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.>#

Submissions

You will submit your assignment via OAKS (Dropbox folder). 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.

Grading

Your grade will be based on how well you followed the above instructions, and the depth/quality of your work.