Spring2017.CITA180Homework4 History

Show minor edits - Show changes to output

Changed line 15 from:
Your performance should '''consist of at least five and at most nine different musical elements''' which go well together. It may consist of existing audio loops or files (you can download them off the Internet), or you may record your own (e.g., via Audacity).
to:
Your performance should '''consist of at least five and at most nine different musical elements''' which go well together. It may consist of existing audio loops or files (you can download them off the Internet, e.g., see [[https://www.freesound.org/ | Freesound.org]]), or you may record your own (e.g., via [[http://www.audacityteam.org/ | Audacity]]).
Added lines 1-63:
'''Assigned Date''': Monday, Mar. 20, 2017\\
'''Due Date''': Monday, Mar. 27\\
'''Due Time''': 30 mins before class

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

!!Assignment

Write a Jython program that creates an interesting musical performance (your choice).

Your performance should last anywhere between 1:30 minute and 3 minutes, and should consist of smaller parts (5-9), which are played together at different times to achieve the end result.

It should start, build up, and then finish in some meaningful way. Design it on a piece of paper, before you start coding it.

Your performance should '''consist of at least five and at most nine different musical elements''' which go well together. It may consist of existing audio loops or files (you can download them off the Internet), or you may record your own (e.g., via Audacity).

'''Each audio file should be no more than 15-20 seconds.'''

The performance should have a GUI interface (control surface), which allows - as needed - starting, pausing, resuming, stopping, and adjusting the volume / frequency of your audio material. You only need to have as many controls as your performance needs.

Design before you implement. (Remember - "20 hours of coding can save you 2 hours of design"!!!)

Your goal is to dazzle us.

'''NOTE:''' The audio material should be in .WAV format. It should be '''no longer than 15-20 seconds''' each. You should have 5-9 audio files.

!!Documentation

Your header documentation should mention the names and URLs of the audio material you downloaded off the Internet (I should be able to find it). Or if you recorded yourself, your should describe what each audio recording is.

Again, follow documentation instructions from [[http://www.cs.cofc.edu/~manaris/?n=Spring2017.CITA180Homework1?action=print | Homework 1]].

!!Submissions

You will submit your assignment by both '''handing in a printout in class''', and '''online''' via [[https://lms.cofc.edu/ | OAKS]].

Be prepared to demonstrate your program in class.

Do all of the following:

# '''Hand in a printout in class''' on the due date. This should consist of:
** '''your Python program''', and
** '''an image of your GUI control surface'''.

# Upload the same on [[https://lms.cofc.edu/ | OAKS]]. '''There should be several files''' in your submission (your program, the image, and the audio material used).

# Be ready to demo your program in class.

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

* Manipulating audio samples in Python.
* Creating an interesting performance out of smaller elements.
* Designing a GUI with enough controls to carry out an interesting task.
* Implementing callback functions.

* Use various data types and API calls to achieve a desired programming task (algorithmic design).
* Use predefined classes in program development (object-based programming).