Multimodal Media Madness - Winter Semester 2004/2005

Assignment 4 - Java Sequencer II
Due on Sunday, November 21, 2004 @noon


In this assignment, you will revisit your Java Sequencer from last week by replacing MIDI output with digital audio output.


Your assignment for the week is to modify your Java program from the previous week to use digital audio instead of MIDI.

All functionality/features should be identical to your previous Java sequencer (playing notes, recording), with the exception of instrument changes (support for different instruments is not required). Instead of outputting MIDI notes, use sine waves of the appropriate frequency. Here is a description of how to calculate the frequencies of the various notes on the musical scale.

Also, instead of writing to a MIDI file, you are to write to a standard WAV file instead. A description of the WAV file format can be found on Use the most basic WAV file format (16-bit uncompressed stereo).

Hints and Tips:
To develop your program, you may use the command line Java tools or Eclipse, a popular Java IDE. If you are really feeling brave, you may also develop your program using XCode, Apple's IDE. You can launch a UNIX prompt by opening Applications -> Utilities -> Terminal.

This assignment is to be completed in groups of 2.

Some ideas for extra credit for this assignment:
  • make the note play for as long as you hold down the key on the keyboard
  • preserve timing information in your recording to WAV file
  • make a nice GUI
  • cool stereo effects
  • etc... (use your imagination!)


Email an archive (.zip) of your assignment to This email address is being protected from spambots. You need JavaScript enabled to view it. before the due date. The subject of your email should be "M3 Assignment 4"; be sure to use this exact subject line as it will be used to filter assignment submissions for grading.

Your assignment archive should include all files required to compile and run your Java code. Do not include compiled object (.class) files. Include a short plain text README file that contains:
  • the names and email addresses of all group members
  • instructions on how to compile and run your code
  • a short description of what your program does
  • non-obvious things you did (if any)
  • if you did any extra credit work, be sure to tell us what you did

It is strongly recommended that you test your submission before sending it to us. If we cannot figure how to open your submission (strange or non-obvious compression format, no README file) then you will get zero.
Be prepared to discuss your solution in the next lab.


The assignment will be graded on the following rough scale:
  • 1.0 - exceptional work that clearly went above and beyond what was given on the exercise
  • 2.0 - exercise was completed satisfactorily as per the assignment specification
  • 3.0 - exercise was completed, but has some problems
  • 4.0 - incomplete exercise
  • 5.0 - little or no effort was put into the exercise

Late assignments will be graded with a penalty of 0.5 per 24 hour period after the due date.

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.