Assigned Date: Monday, Apr. 20, 2020
Due Date: Wednesday, Apr. 29
Due Time: 30 mins before class
Contents
Assignment
This is a pair-programming assignment. You may work with a partner, as per these video instructions. However, it is OK to work on your own, if you prefer.
Using buttons, sliders, and other GUI elements, create a Music Production Controller (MPC).
- MPCs are electronic musical instruments (originally produced by Akai) that feature a grid of buttons that allow a user to playback (trigger) various samples.
- Use an external audio editor (such as Audacity) to capture and manipulate arbitrary audio files and live inputs.
- Then, plan a music performance using the produced audio samples together with your custom MPC.
Details
Write a Jython program that creates an interesting musical performance (your choice). 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.
Design your user interface well. You will be graded on the aesthetics of your GUI, as well as the aesthetics of the music you produce.
Your performance should last about 3 minutes (but a little longer is OK). It should consist of smaller audio samples, which are played together at different times to achieve the end result.
Also, follow carefully the instructions in homework 4. This is a similar assignment, expect the emphasis is now placed on designing a functional and aesthetic music performance GUI (instead of LiveCoding).
Background
To get possible ideas for your submission, you may explore the following:
- Electroacoustic music – see music examples included (search for them via YouTube/Google), to get ideas.
- Acousmatic music, and
- their origin, Musique Concrète.
Program Documentation
Follow the documentation instructions from Homework 2.
Remember, 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.” Your code should have general comments at the top, which explain what the program does. You should comment all variables, obscure statements, and blocks of code.
Follow the textbook examples on how to write comments.
Your code should be organized well, so it is easy to read and understand.
Submissions
Upload everything that follows on OAKS:
- Your program file – make sure you give it a meaningful name, e.g., musicProductionGUI.py, etc.
- Your visual score (as a PNG, JPG, or PDF file).
- Upload all audio files necessary (if using AudioSamples) – I should be able to download everything in one folder and run your program successfully, to hear your music.
And, as usual… be ready to perform it 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 interesting tasks.
- 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).