70 lines · 1.4 KB · Text
RawDownload
//--// name: pitch-third.ck// desc: rough pitch tracking + major third//// author: Rebecca Fiebrink + Ge Wang// date: 2007//--  // analysisadc => PoleZero dcblock => FFT fft => blackhole;// synthesisSinOsc s => JCRev r => dac; // set reverb mix.05 => r.mix;// set to block DC.99 => dcblock.blockZero;// set FFT params1024 => fft.size;// windowWindowing.hamming( fft.size() ) => fft.window; // interpolatefloat target_freq, curr_freq, target_gain, curr_gain;spork ~ ramp_stuff(); // go for itwhile( true ){    // take fft    fft.upchuck() @=> UAnaBlob blob;        // find peak    0 => float max; float where;    for( int i; i < blob.fvals().size(); i++ )    {        // compare        if( blob.fvals()[i] > max )        {            // save            blob.fvals()[i] => max;            i => where;        }    }        // set freq    (where / fft.size() * (second / samp)) * Math.pow(1.059,4) => target_freq;    // set gain    (max / .25) => target_gain;        // hop    (fft.size()/2)::samp => now;}  // interpolationfun void ramp_stuff(){    // mysterious 'slew'    0.025 => float slew;        // infinite time loop    while( true )    {        (target_freq - curr_freq) * 5 * slew + curr_freq => curr_freq => s.freq;        (target_gain - curr_gain) * slew + curr_gain => curr_gain => s.gain;        0.0025::second => now;    }}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t