CITA/CSCI 180 – Spring 2021 – Final Project

Assigned Date: Monday, Apr. 19, 2021
Due Date: Wednesday, Apr. 28
Due Time: 30 mins before final exam

Again, use Piazza for any questions you may have – the sooner you start asking questions, and working on this, the better (note – weekends are really a bad time to get timely answers, as many classmates and I are usually away from work / email).

Assignment

This is a solo project.  It is based on the previous assignment.  Update your Music Production Controller from the previous assignment to create a more thorough / impressive musical performance – worthy of a final exam.

Using buttons, sliders, and other GUI elements, create a Music Production Controller (MPC).  You may use regular controls, however musical controls provide much more flexibility in terms of design – try to use these for a better design / musical outcome.

  • 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.  Again, musical GUI controls provide much more flexibility in terms of design – try to use these for a better design / musical outcome.
  • Your performance should last about 1-3 minutes (but a little longer, if interesting, is OK). It should consist of smaller audio samples, which are played together at different times to achieve the end result.
  • The piece should utilize 7 +/- 2 (or so) different WAV files, loaded in as AudioSamples.
  • Each WAV file should be relatively short.
    • Store your WAV files in the same folder as your program and JEM.
  • Your program may contain some MIDI material, if you wish, such as percussion (channel 9).  But the majority of the piece should be WAV files.
  • Design, design, design…
    • Think.
    • Ask questions.
  • Start early.

Background

To get possible ideas for your submission, you may explore the following:

Sound Design

This section provides ideas on how to build your soundscape.

  • Pick a theme for your piece, e.g., a walk at the beach; a stressful situation (e.g., it’s midnight and someone is chasing you); stormy weather; a battle scene; downtown Manhattan; at the ballpark; space exploration… this list goes on and on.
  • Or, you may construct a regular music piece utilizing sound files with different song components to be looped, pitch shifted, etc.
  • Whatever you do, pick something that inspires you, you feel passionate about.
  • Then, build the sound environment for it.
    • Select sound files carefully, i.e., identify your musical DNA (sound building blocks, or elements).  This is probably the most important step.  If the sounds are good, it will be much easier to tell a story with them, or to create an emotive experience with them.
  • Divide sounds into three elements [1]:
    • Figure – a sound or sounds that are the focus of interest (e.g., like the melody of your favorite song, or the sound of a seagull or a foghorn when walking at the beach), i.e., the foreground.
    • Ground – the ambient sounds around it (e.g., like the chords of your favorite song, or the ever-going sounds of waves at the beach), i.e., the background.
    • Field – the place where this sound experience takes place (e.g., a drums rhythm or continuous bass line, or other sounds at the beach), i.e., the distant horizon.
  • Design before you implement, i.e., which sound events happen when.  Again, think how to maintain the interest of your audience.

Visual Score

Create a visual representation (a guideline to remind you how your performance unfolds).  See here for some examples.

Your notation should make sense to you, i.e., how you represent things is up to you.  BUT, it should demonstrate that you have put some thought into your performance (i.e., what happens to what, and when).

One should be able to read it with minimal explanation.

This is an important part of your grade, so pay close attention to it.

Strong Suggestion:

  • First, draw a sketch of your performance on paper (by hand), i.e., what happens and when.
  • Then decide how to code all this to make it happen.
  • Design first, code later.

Remember the aphorism: “2o hours of coding can save you two hours of design”.

It will certainly apply here.

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:

  1. Your paper prototype – this ideally should be designed before you write a single line of code – remember “2 yours of design can save you 20 hours of coding” – this is especially so, in the context of designing user interfaces (as you know from all the apps you have downloaded and promptly deleted from your smartphone…).  Be a great designer – it is so easy, by doing things right – prototype first on paper, evaluate / refine on paper, and ONLY when the design is finished, then you code it… (upload paper prototype as a PNG, JPG, or PDF file).
  2. Your program file – make sure you give it a meaningful name, e.g., musicProductionGUI.py, etc.
  3. Your visual score (as a PNG, JPG, or PDF file).
  4. Upload all audio files necessary (if using AudioSamples) – I should be able to download everything 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.

References

  1. R. Murray Schafer, The Soundscape, Destiny Books, 1993, pp. 152-153.
Skip to toolbar