SLIDE 4 Signal Rate Inference for Multi- Dimensional Faust
Signals Types/rates Inference Correctness Algorithm Related Work Conclusion
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Organ
1 // organ.dsp 2 // http :// faust.grame.fr 3 4 voice(gate , gain , freq) = envelop(gate , gain) * timbre(freq ); 5 6 // Envelop 7 envelop(gate , gain) = gate * gain : smooth (0.9995) 8 with { smooth(c) = * (1-c) : + ~ * (c); }; 9 10 // Timbre 11 phasor(f) = f/fconstant(int fSamplingFreq , <math.h>) : (+ ,1.0: fmod) ~ _; 12
= phasor(f) * 6.28318530718 : sin; 13 14 timbre(freq) = osc(freq) + 0.5* osc (2.0* freq) + 0.25* osc (3.0* freq ); 15 16 // Organ 17 process = voice(midigate , midigain , midifreq) * 18 hslider (" volume", 0, 0, 1, 0.01) 19 with { midigate = button (" gate "); 20 midifreq = hslider (" freq[unit:Hz]", 440, 20, 8000 , 1); 21 midigain = hslider (" gain", 0.5, 0, 10, 0.01); }; 4 / 15