Fall2011.CSCI180Homework2 History

Show minor edits - Show changes to output

Added line 99:
* ''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
Deleted line 103:
Changed lines 95-96 from:
* ''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
to:
* ''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''')
Changed lines 95-103 from:
# ''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
# ''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
# ''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
to:
* ''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
* ''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
* ''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
Changed lines 95-99 from:
# ''Disturbed'' ([[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/Disturbed.mid | MIDI]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/disturbed.py | Python]]), by Andrew Armstrong
# ''Water Spring'' (
[[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/WaterSpring.mid | MIDI]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/WaterSpring.py | Python]]), by Evan Kosin
#
''Lux Aeterna'' ([[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/LuxAeterna.mid | MIDI]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/luxaeterna.py | Python]]), by Jacob Song
# ''Girls Just Wanna Have Fun'' ([[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/GirlsJustWannaHaveFun.mid | MIDI]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/girls.py | Python]]), by Leslie Stovall and Megan Hoffspiegel
to:
# ''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
# ''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
# ''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
Changed line 7 from:
''Due Date'': Friday, Sep. 30\\
to:
''Due Date'': Wednesday, Oct. 5\\
Changed line 14 from:
''Due Date'': Thursday, Sep. 29\\
to:
''Due Date'': Thursday, Oct. 6\\
Changed lines 29-30 from:
to:
* MIDI percussion
Added lines 39-50:
!!!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]].
Added lines 1-93:
(:table border=0 width=100%:)

(:cell width=14% valign=top align=left style='padding:5px;':)
'''Section 1:'''
(:cell width=86% style='padding:5px;':)
''Assigned'': Friday, Sep. 23, 2011\\
''Due Date'': Friday, Sep. 30\\
''Due Time'': 10:50am\\

(:cellnr valign=top align=left style='padding:5px;':)
'''Section 2:'''
(:cell style='padding:5px;':)
''Assigned'': Thursday, Sep. 22, 2011\\
''Due Date'': Thursday, Sep. 29\\
''Due Time'': 9:20am\\

(:tableend:)

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

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

Here is a quick overview of music notation for [[http://datadragon.com/education/reading/clefs.shtml|note pitches]] and [[http://datadragon.com/education/reading/typenote.shtml|note durations (rhythm values)]].

!!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, 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.>
#
(: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 submissions:

# ''Disturbed'' ([[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/Disturbed.mid | MIDI]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/disturbed.py | Python]]), by Andrew Armstrong
# ''Water Spring'' ([[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/WaterSpring.mid | MIDI]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/WaterSpring.py | Python]]), by Evan Kosin
# ''Lux Aeterna'' ([[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/LuxAeterna.mid | MIDI]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/luxaeterna.py | Python]]), by Jacob Song
# ''Girls Just Wanna Have Fun'' ([[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/GirlsJustWannaHaveFun.mid | MIDI]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2010/girls.py | Python]]), by Leslie Stovall and Megan Hoffspiegel

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