/*---------------------------------------------------------------------------- S.M.E.L.T. : Small Musically Expressive Laptop Toolkit Copyright (c) 2007 Rebecca Fiebrink and Ge Wang. All rights reserved. http://smelt.cs.princeton.edu/ http://soundlab.cs.princeton.edu/ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 U.S.A. -----------------------------------------------------------------------------*/ //----------------------------------------------------------------------------- // name: downer.ck // desc: microphone based controller // // author: Matt Hoffman // // to run, see readme.rtf. //----------------------------------------------------------------------------- adc => Gain d => blackhole; noise n => biquad f => dac; 0.9999 => f.prad; 1 => f.eqzs; .001 => n.gain; 0 => float lastsamp; 2500 => int numzcs; 2.0 => float zcthresh; while(true){ 1::samp => now; if((lastsamp - zcthresh) * (d.last() - zcthresh) < 0){ numzcs--; //numzcs + std.rand2(-30, 30) => numzcs; <<>>; numzcs => f.pfreq; math.pow(f.prad(), 1.0001) => f.prad; <<>>; } d.last() => lastsamp; if(now % 0.01::second == 0::second){ numzcs + std.rand2(-60, 70) => numzcs; //numzcs + std.rand2(-60, 60) => numzcs; numzcs => f.pfreq; } if(numzcs < 0){ 0 => numzcs; } if(numzcs > 5000){ 5000 => numzcs; } }