CITA/CSCI/FYSE 180 – Fall 2024 – Final Project

Assigned Date: Wednesday, Nov. 20, 2024
Due Date: On day of final
Due Time: 30 mins before class

Description

You may work on your own, or with a partner, as per these video instructions.  Either way is fine.

This assignment aims to develop and apply skills in planning, designing and executing a music and/or artistic composition / performance using JythonMusic GUI, MIDI and/or Open Sound Control.

For example, see this student project from Ge Wang’s related class at Stanford University:

USB3 – Peripheral Love (feat. Alex Han) [Official Music Video]

Possible techniques and approaches in completing this project include:

NOTE:  If you use OSC input, then you must use Touch OSC on your smartphone (not free, but inexpensive); although feel free to experiment with other OSC smartphone apps.

Details

Compose an interactive musical piece and/or interactive artistic experience for 1 one or more performers.

This must involve 1 or more GUI interfaces, MIDI, or OSC devices (see above).

It has to make artistic sense. Remember this counts for 10 percent of your class grade.  Since this is used in lieu of a final exam, it has to have enough detail and substance to count as a substitute for a comprehensive final.

The idea is to interactively combine material to produce the final result. 

  • There should be 7 +/- 2 elements to be combined.
  • Each element should be relatively small (compared to the final result).
  • You should allow for freedom of combination, i.e., do NOT make things strictly synchronized… this will not work well.

Bonus:  Allow for more than one performer to participate using an OSC device (e.g., smartphone).  Multi-user programs are intrinsically more interesting than single-user ones, since they invite more complex behaviors and unpredictability.  This is very valuable.

Design your performance well. You will be graded on the aesthetics of your artifacts (e.g., GUI), as well as the aesthetics of the music and/or artwork you produce.

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.

Also, see MidiSequence.

Design, design, design – think and draw on paper first.  Code later.  Return to paper often.  Do NOT think while coding… think on paper.  It saves time.  Remember – “20 hours of coding can save you 2 hours of design”.

Start early.  Since this is instead of a final, there is a lot to do.

Submissions

Your program should have a meaningful name, e.g., superDuperFinalArtisticProject.py.

1. Bring to class the following:

  1. A printout of your Python program.
  2. Your initial design on paper.  Write your name on it.
  3. Be ready to perform your program in class – your grade depends on this.

2. Also, submit on OAKS:

  1. Your Python (.py) file – e.g. superDuperFinalArtisticProject.py
  2. All your audio files, so I can run it on my computer.
  3. Anything else required to make the program run.

Program Documentation

Follow the documentation instructions from Homework 1.

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.” [1] 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.

Grading

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

Reference

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

Skip to toolbar