Assignment 6 - Digital Audio
Due on Sunday, December 7, 2008 @ midnight

In this assignment you will have a look at Digital Audio and how it is used for distinguishing numbers dialed with a telephone.

Build a Max/MSP patch that detects DTMF tones. It should be able to detect which tones are
played using the ToneGenerator java program that is provided (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 Soundflower
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.
For this assignment, you should use the fiddle~ module. fiddle~ is a patch originally by Miller
Puckette for pitch detection and sinusoidal decomposition.

Answer the following question:
1. Explain briefly, in your own words, how the fiddle~ object works.

As always you can get extra credits by extending your patch in some useful way. Be creative!
Some ideas for extra credit in this assignment:
  • Robustness to noise — for example, if you 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”.


Email an archive 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 Submission 6"; be sure to use this exact subject line as it will be used to filter assignment submissions for grading.

Your assignment archive should include your Max/MSP patch file. Include a short plain text README file that contains:
  • the names and email addresses of all group members
  • a short description of what your patch does
  • non-obvious things you did (if any)
  • if you did any extra credit work, be sure to tell us what you did

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.