Fall2012.CSCI180Homework3 History

Show minor edits - Show changes to output

Changed lines 19-21 from:
Write a Jython program that transcribes an interesting song. This song should be at the same level of complexity as, say "When Johnny Comes Marching Home", or The Beatles' "Norwegian Wood".
to:
Write a Jython program that transcribes an interesting song. This song should be at the same level of complexity as, say "When Johnny Comes Marching Home", or The Beatles' "Norwegian Wood".

The complete song should be 2-3 mins long
.
Added lines 1-106:
''Assigned'': Mon, Oct. 1, 2012\\
''Due Date'': Monday, Oct. 7\\
''Due Time'': 10:55am

Last modified on {$LastModified} (see [[http://www.cs.cofc.edu/~manaris/index.php/Fall2012.CSCI180Homework3?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

!!Assignment

Write a Jython program that transcribes an interesting song. This song should be at the same level of complexity as, say "When Johnny Comes Marching Home", or The Beatles' "Norwegian Wood".

Your transcription should have (at least):

* a melody phrase (playing the melody),
* a chord phrase (playing the chord progression), and
* drums (or percussion).

This assignment is based on Chapters 2, 3, and 4 of our textbook.

!!!Pitch & Rhythm Values

For a quick overview of music notation, see Ch. 2 of our textbook.

!!!MIDI Percussion

For an overview of MIDI percussion, see Ch. 4 of our textbook.

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

Appendix A has pitch constants for some 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: HMWK3
# Due Date: The assignment's due date
#
# Certification of Authenticity:
#
# < ! Delete one of the two statements below - also delete this comment ! >
#
# We certify that this lab is entirely our own work.
#
# We certify that this lab is our own work, but we 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. ! >
#
(: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

!!!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.