I asked the original author of the touchtone.ny script to put in under GPL, which he did. Thanks! As the script did not allow input of multiple key characters and didn't support the extra keys A..D, I rewrote it. The new script dtmf.ny is attached, please add it to the Debian package (either directly under /usr/share/audacity/plug-ins/ or under /usr/share/doc/audacity/examples/ with a note, that users can put plug-ins under ~/.audacity-files/plug-ins/). There are at least ten more GPLed Nyquist plug-ins at http://audacity.sourceforge.net/download/nyquistplugins, that could be added to the Debian package:
15bandEQ.ny centerpanremover.ny chimesdelay.ny flipdelay.ny harmonicnoise.ny hyperexp.ny mutron.ny sequencer1b.ny turntablewarp-ms.ny turntablewarp.ny I would prefer to have the additional scripts under /usr/share/doc/audacity/examples/, so the UI is not cluttered with a lot of unofficial plug-ins.
;nyquist plug-in ;version 1 ;type generate ;name "DTMF..." ;action "Generating DTMF..." ;info "Dual Tone Multi-Frequency generator\nby David R. Sky, Dominic Mazzoni, Roger Dannenberg, W. Borgert\n\nEnter a string consisting of 0..9, A..D, *, #\n 1209 1336 1477 1633\n697 1 2 3 A\n770 4 5 6 B\n852 7 8 9 C\n941 * 0 # D" ;control keys "Keys" string "" "999" "0..9, #, *, A..D" ;control volume "Volume" real "linear" 0.3 0.001 1.000 ;control tl "Tone length" real "seconds" 0.100 0.001 1.000 ;control twist "High to low tone ratio" real "db" 0.0 0.0 4.0 ;control sl "Post silence length" real "seconds" 0.100 0.000 1.000 ; DTMF (Dual Tone Multi-Frequency) generator ; by David R. Sky, Dominic Mazzoni, Roger B. Dannenberg, W. Borgert ; 2004-09, 2005-04 ; Released under terms of the GNU General Public License version 2 ; http://www.gnu.org/copyleft/gpl.html ; Twist is the ratio of the high to low tone, in db ; used in real telephone applications. (defun dtmf (key volume tl twist sl) (setf low (if (member key '(#\1 #\2 #\3 #\a #\A)) 697 (if (member key '(#\4 #\5 #\6 #\b #\B)) 770 (if (member key '(#\7 #\8 #\9 #\c #\C)) 852 (if (member key '(#\* #\0 #\# #\d #\D)) 941 0))))) (setf high (if (member key '(#\1 #\4 #\7 #\*)) 1209 (if (member key '(#\2 #\5 #\8 #\0)) 1336 (if (member key '(#\3 #\6 #\9 #\#)) 1477 (if (member key '(#\a #\b #\c #\d #\A #\B #\C #\D)) 1633 0))))) (setf volume (if (member key '(#\1 #\2 #\3 #\a #\A #\4 #\5 #\6 #\b #\B #\7 #\8 #\9 #\c #\C #\* #\0 #\# #\d #\D)) volume 0.0)) (seq (mult volume (pwl 0.002 1 (- tl 0.002) 1 tl) (sim (osc (hz-to-step high) tl) (loud (- 0 twist) (osc (hz-to-step low) tl)))) (s-rest sl))) (seqrep (i (length keys)) (dtmf (char keys i) volume tl twist sl))