Fall2012.CSCI180Homework2 History

Show minor edits - Show changes to output

Changed line 2 from:
''Due Date'': Friday, Sep. 14\\
to:
''Due Date'': Monday, Sep. 17\\
Changed lines 1-3 from:
''Assigned'': Wednesday, Aug. 27, 2012\\
''Due Date'': Wednesday, Sep. 5\\
''Due Time'': 11:55am
to:
''Assigned'': Friday, Sep. 7, 2012\\
''Due Date'': Friday, Sep. 14\\
''Due Time'': 10:55am
Changed line 65 from:
# what your program does - e.g., "This program plays Chopen 's Nocturne,
to:
# what your program does - e.g., "This program plays Chopen's Nocturne,
Changed lines 64-65 from:
# Purpose: < ! Replace this comment with a simple, yet complete description of what
#
your program does - e.g., "This program plays playing Chopen 's Nocturne,
to:
# Purpose: < ! Replace this comment with a simple, yet complete description of
# what your program does - e.g., "This program plays Chopen 's Nocturne,
Changed lines 64-66 from:
# Purpose: < ! Replace this comment with a simple, yet complete description of what your
#
program does - e.g., "This program plays playing Chopen 's Nocturne Op 72. No. 1."
#
The description may be several sentences long. ! >
to:
# Purpose: < ! Replace this comment with a simple, yet complete description of what
# your program does - e.g., "This program plays playing Chopen 's Nocturne,
#
Op 72. No. 1." The description may be several sentences long. ! >
Added lines 1-101:
''Assigned'': Wednesday, Aug. 27, 2012\\
''Due Date'': Wednesday, Sep. 5\\
''Due Time'': 11:55am


Last modified on {$LastModified} (see [[http://www.cs.cofc.edu/~manaris/index.php/Fall2012.CSCI180Homework2?action=diff&source=n&minor=n | 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.

!!Purpose

This assignment focuses on:

* creating interesting music with jMusic
* MIDI melodies
* MIDI percussion (optional)

!!Assignment

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 [[http://soundprogramming.net/file_formats/general_midi_drum_note_numbers | pitch numbers for percussive 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:

(:source lang=Python tabwidth=3 -trim :)
#
# 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 playing Chopen 's Nocturne Op 72. No. 1."
# The description may be several sentences long. ! >
#
(:sourcend:)

!!Submissions

You will submit your assignment via [[https://lms.cofc.edu/ | 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.

!!Grading

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:

* ''Avril 14'' ([[http://www.cs.cofc.edu/~manaris/uploads/Fall2011/Hanf Daniel - Oct 6, 2011 947 PM - avril14.mid | MIDI]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2011/Hanf Daniel - Oct 6, 2011 947 PM - avril14.py | Python]]), by Daniel Hanf
* ''Nonsense'' ([[http://www.cs.cofc.edu/~manaris/uploads/Fall2011/Cooper Samuel - Oct 6, 2011 224 AM - arpeggiatedNonsense.mid | MIDI]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2011/Cooper Samuel - Oct 6, 2011 224 AM - arpeggiatedNonsense.py | Python]]), by Samuel Cooper ('''original''')
* ''Intro'' ([[http://www.cs.cofc.edu/~manaris/uploads/Fall2011/Jones Hudson - Oct 5, 2011 1046 AM - introSong2.mid | MIDI]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2011/Jones Hudson - Oct 5, 2011 1046 AM - introSong2.py | Python]]), by Hudson Jones
* ''Take Five'' ([[http://www.cs.cofc.edu/~manaris/uploads/Fall2011/Hegler Johnathan - Oct 6, 2011 413 AM - takeFive_PaulDesmond.mid | MIDI]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2011/Hegler Johnathan - Oct 6, 2011 413 AM - takefive_PaulDesmond.py | Python]]), by Johnathan Hegler and George Woolston
* ''Changes'' ([[http://www.cs.cofc.edu/~manaris/uploads/Fall2011/Thevos John-Anthony - Oct 31, 2011 201 PM - changesfinal.mid | MIDI]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2011/Thevos John-Anthony - Oct 31, 2011 201 PM - changesfinal.py | Python]]), by John Thevos
* ''Clocks'' ([[http://www.cs.cofc.edu/~manaris/uploads/Fall2011/Freeman Jordan - Oct 6, 2011 628 AM - Clocks.mid | MIDI]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2011/Freeman Jordan - Oct 6, 2011 628 AM - Clocks.py | Python]]), by Jordan Freeman
* ''Kids'' ([[http://www.cs.cofc.edu/~manaris/uploads/Fall2011/Modoor Alicia - Oct 5, 2011 1200 PM - Kids.mid | MIDI]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2011/Modoor Alicia - Oct 5, 2011 1200 PM - kids.py | Python]]), by Alicia Modoor


!!!Relevant Quote

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

!!Reference

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