Spring2016.CITA180Homework4 History

Show minor edits - Show changes to output

Changed lines 9-10 from:
Connect a MIDI controller to your code and use it to perform something interesting. This performance be musical or otherwise - your decision.
to:
Connect a MIDI controller to your code and use it to perform something interesting. This performance may be musical or otherwise - your choice.
Changed lines 17-22 from:
If musical, your performance could 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 result
.

As you are designing your performance, you should keep in mind the discussion on Interest Curves. I.e., your performance should engage your audience at different points. Also, it should have a beginning, middle, and end, with some material that's repeated appropriately.
to:
If musical, your performance could 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 use AudioSample to create a MIDI sampler... Many other possibilities exist.

Have fun!

Your goal is to build an interesting performance. Keep Interest Curves in mind
. I.e., your performance should engage your audience at different points. Also, it should have a beginning, middle, and end, with some material that's repeated as needed.
Changed lines 25-26 from:
'''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.
to:
'''NOTE:''' It will help you greatly to have a paper description of your performance to assist you while performing. What happens first, what second? How to you finish? 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 focus on creating a memorable experience.
Changed lines 41-43 from:
# Upload your '''program file''' on [[https://lms.cofc.edu/ | OAKS]]. Give your program a meaningful name, e.g., '''furElise.py'''.
to:
# Upload your '''program file''' on '''all needed files''', e.g., audio files, etc. on [[https://lms.cofc.edu/ | OAKS]].
** Make sure you provide all needed files. I should be able to run your complete program from OAKS.
** Also, give your program and files meaningful names, e.g., '''furElise.py''', etc
.
Added lines 1-62:
'''Assigned Date''': Tuesday, Mar. 22, 2016\\
'''Due Date''': Tuesday, Mar. 29, 2016\\
'''Due Time''': 2:00 PM

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

!!Assignment

Connect a MIDI controller to your code and use it to perform something interesting. This performance be musical or otherwise - your decision.

!! Details

Using the provided [[http://www.cs.cofc.edu/~manaris/jythonmusic/?page_id=775 | MIDI library]], connect and extract data from a [[http://www.amazon.com/b?node=11973721 | MIDI controller]].

Your goal is to create an interesting performance.

If musical, your performance could 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 result.

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

The performance should last between 1 and 3 minutes.

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

!!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 what you created 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:

* Apply selection (if statements), relational operators, logical operators
* Apply functions
* Understand and use function callbacks

Also how to:

* Use the MIDI interface to extract data from MIDI devices
* Connect MIDI controllers to interesting functionality

!!References

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