Multimodal Media Madness - Winter Semester 2005/2006

Assignment 5 - DTMF Decoder
Due on Sunday, December 4, 2005


In this assignment, you will build a dual tone multi frequency (DTMF) detector. DTMF is the encoding used in modern "touch tone" phones for distinguishing numbers, Wikipedia has a decent introduction to DTMF.


Your assignment for the week is to build a DTMF detector using Max/MSP. It should be able to detect which tones are played using the ToneGenerator java program that we provide (based on an applet at dsptutor.

ToneGenerator outputs DTMF tones to the speakers in order to redirect it to the audio input, open up the System Preferences and the Sound tab. Change the output and input to Sunflower 2ch, and this will redirect all system output to the system input driver (as if you attached a physical cable connecting line out to line in on the computer).

In Max/MSP, use the adc~ module to get the input audio signal from the system.

You will also have the install the fiddle module. Fiddle is a patch originally by Miller Puckette for pitch detection and sinusoidal decomposition.

This assignment is to be completed in groups of 2. However, you must change working partners for this assignment to give you a chance to work with a different person.

Some ideas for extra credit for this assignment:

  • robustness to noise

for example, if introduce random noise to the input signal, does it generate false tones?

  • accurately track the timing of the ones. if i press "1" only once, it should print out only one "1".
  • 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 5"; be sure to use this exact subject line as it will be used to filter assignment submissions for grading. Do not submit a patch file that has not been compressed using zip.

Your assignment archive should include all files required to run your patch. Include a short plain text README file that contains:

  • the names and email addresses of all group members
  • instructions on how to use your patch
  • a short description of your design
  • 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.

File Description File size Downloads Last modified
ToneGenerator.jar Java tone generator 29 kB 683 2005-11-27 12:13
MSP fiddle object Fiddle patch for Max/MSP 20 kB 667 2005-11-27 12:13

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.