Spring2016.CITA180Homework3 History

Show minor edits - Show changes to output

Changed line 2 from:
'''Due Date''': Thursday, Feb. 11, 2016\\
to:
'''Due Date''': Tuesday, Feb. 16, 2016\\
Changed lines 9-10 from:
Create a [[http://iclc.livecodenetwork.org/ | live coding]] performance.
to:
Create a [[http://iclc.livecodenetwork.org/ | live coding]] performance. Also see [1].
Changed lines 29-30 from:
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]
to:
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." [2]
Changed lines 66-68 from:
!!Reference
to:
!!References

# Wikipedia, [[https://en.wikipedia.org/wiki/Live_coding | "Live Coding"]], accessed Mon., Feb 8, 2016.
Added lines 1-68:
'''Assigned Date''': Thursday, Feb. 4, 2016\\
'''Due Date''': Thursday, Feb. 11, 2016\\
'''Due Time''': 2:00 PM

Last modified on {$LastModified} (see [[http://www.cs.cofc.edu/~manaris/index.php/Spring2016.CITA180Homework3?action=diff&source=n&minor=n | updates]])

!!Assignment

Create a [[http://iclc.livecodenetwork.org/ | live coding]] performance.

!! Details

Your performance should consist of pre-constructed excerpts of music (the material and style are up to you). For instance, you could have a few phrases, sequences of chords, and/or drum patterns. You could reconstruct an existing piece that you like (i.e., a cover). Or you could construct a piece that's mainly percussive (combining different drums patterns). Or, ... . Your goal is to generate an interesting musical result.

As you are designing your piece, you should keep in mind the discussion on Interest Curves. I.e., your piece should engage your audience at different points. Also, it should have a beginning, middle, and end, with some material that's repeated appropriately.

The piece should last between 1 and 3 minutes.

!! Performance

You should utilize JEM's 'Run Selection' feature, to highlight and execute portions of your code, in order to build your performance.

To do so, you should set up your program not so much to be executed in one shot (i.e., via JEM's 'Run'). Instead, your program should consist of blocks of code to be highlighted and executed at different times, in order to build the performance.

'''NOTE:''' It is strongly suggested to have a paper description of your piece to assist you while performing. For instance, you could state what block of code you will play first, second, at what time, etc., so that you can remember during the performance. How you notate this is up to you. Anything that makes sense is fine. This way you can free your mind from remembering the order of things and instead you can focus on creating a memorable performance.

!!Documentation

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]

You should create comments to describe the different blocks of code and the function they play in your performance, e.g., "Intro", "Drum Pattern 1", "Chord Pattern 1", etc.

Also, follow the documentation instructions from [[http://www.cs.cofc.edu/~manaris/?n=Spring2016.CITA180Homework1?action=print | Homework 1]]. In particular, your header documentation should mention the name of the piece where the melody comes from, and, if you used a score available on-line, include the URL where the score can be found.
(:sourcend:)

!!Submissions

You will submit your assignment by both '''handing in a printout of your program in class''', and '''on-line''' via [[https://lms.cofc.edu/ | OAKS]]. Be prepared to perform your music in class. Your submission consists of:

# Hand in a '''printout of your Python program''' in class on the due date.

# Perform of your piece to your classmates.

# Upload your '''program file''' on [[https://lms.cofc.edu/ | OAKS]]. Give your program a meaningful name, e.g., '''furElise.py'''.

!!Grading

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

!!Learning Objectives

This assignment has the following objectives:

* Understand the fundamentals of music theory.
* Analyze music and create musical studies modeled on pre-existing works.
* Apply numeric and string data types to represent information.
* Use variables in program development.
* Use predefined classes in program development (object-based programming).

Also how to:

* Create interesting music with JythonMusic
* Program MIDI melodies, chords, etc.
* Program MIDI percussion (optional)

!!Reference

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