Term Project for 15-622 Students

Every 15-622 student is required to complete a term project (in addition to the composition that is also created by 15-322 students).  Students may form teams, but it is essential that team members each take responsibility and credit for some aspect of the project.

An Example Project

An example is the best way I can describe the features of a good project. This project was done by Chris Yealy and is now part of Nyquist, but I will describe it as if it has not been done: The latest Nyquist IDE (based on a project from a previous class) is great for editing text and displaying sounds (at least short ones), but there is no support for entering functions of time. This project adds a new view to the IDE allowing the user to edit piece-wise linear functions of time. Each function has a name, and multiple functions can be stored in one file. The functions are implemented by defining a Lisp function containing a call to PWL. If the user creates a time function named foo in the IDE, then the user can write foo() in Nyquist code to obtain the function. When the user opens one of these files in the IDE, the IDE parses the code and can then display functions graphically. The user can add, move, and delete breakpoints, change function names, copy functions to a new name, etc. It would be great to be able to display multiple functions in different colors so they can be edited in concert. Also, it should be possible to snap to user-controlled grid lines, zoom in or out, change the vertical axis, etc.

Having convenient direct-manipulation access to functions of time opens up a new way to control synthesis. Complex sounds with several parameters can be made to evolve according to time-varying controls that are edited graphically. These parameters in the editor become a sort of musical score notation.

Why is this good? It has the following features that I am looking for:

Your project will probably not have to have all these features, but I hope this give you a good idea of what I am looking for. Review the list above with respect to your project.

Students who are primarily composers are not expected to build complex systems, use Java or C, or write complex digital signal processing code. Your options include but are not limited to:

The Term Projects in Stages

The project has several parts:

Part 1: Proposal (due Thursday, Oct 20)

A proposal is required. Your proposal should state clearly:

All projects must be approved by the instructor, so this really is a proposal. I will usually suggest some changes, and if the project really seems out of line, I’ll let you know early and without penalty. (A clear proposal for a bad project gets a good grade and a request for another submission, a vague proposal for a good project gets a bad grade and an OK to proceed).

Submit your proposal (as a PDF) to autolab as usual. The deadline is 11:59pm, Wed, Feb 24th.

Part 2: Interim Report (due Thursday, Nov 3)

An interim report is required. Ideally, you will have completed the milestone described in your project proposal. If you fail, you should describe clearly what you have done, what problems you encountered, whether this will affect your ability to finish the project as planned, and any modifications (subject to instructor approval) you feel you should make to the project. You should submit interim code, sound results, and other data to substantiate your report. Put everything in a zip file and submit to autolab.

Part 3: Class Presentation (Thursday in Class, Dec 8)

You will present your project to the class. Plan for 4 minutes maximum. This is a very short presentation. You should present your work in three parts. Use slides (preferably PowerPoint) to supplement your talk.
  1. Motivate your work. What purpose (outside of your education) is served by your project? What existing problem does your work solve? (1 slide)
  2. State your approach and goals. How does your project solve the problem just stated? Be sure to state clearly and with some detail exactly what you did. (1 or 2 slides)
  3. What is the state of your project? Tell what is complete and working as well as what would be the next step if you (or someone else) were to continue working. (1 slide)
You should be prepared to show slides from your personal laptop. Assume there is a VGA display connector -- if you do not have one, arrange to bring an adapter, test your machine in the classroom, or see the instructor. In addition, bring your presentation on a USB memory stick for emergency use of another machine.

If you have sound file examples (recommended):

Assuming a 4-minute talk, you can rehearse it 5 times in 20 minutes. Do it! (If this seems unnecessary and you are not a musician, do it just to learn what musicians know that you don’t -- seriously.)

Part 3: The Written Project Submission (due Wednesday, Dec 7)

Your goal is to make a complete package of software, documentation, example code, and sound examples. For example, if your project were to create a phase vocoder, you would submit the software implementation, document how to apply the vocoder and use all the parameters, provide code examples that apply the vocoder to a test sound, and one or more sounds that illustrate the effect of the vocoder. Another student should be able to use the vocoder given your final submission. Put everything in a zip file and submit it to autolab.

A List of Project Ideas

Feel free to ask the instructor for more details on any of these.