1# Standard Functions 2 3Dozens of functions are implemented in the Faust libraries and many of them are very specialized and not useful to beginners or to people who only need to use Faust for basic applications. This section offers an index organized by categories of the "standard Faust functions" (basic filters, effects, synthesizers, etc.). This index only contains functions without a user interface (UI). Faust functions with a built-in UI can be found in [`demos.lib`](../libs/demos). 4 5 6## Analysis Tools 7 8<div class="table-begin"></div> 9 10Function Type | Function Name | Description 11--- | --- | --- 12[Amplitude Follower](../libs/analyzers/#anamp_follower) | [`an.`](../libs/analyzers)[`amp_follower`](../libs/analyzers/#anamp_follower) | Classic analog audio envelope follower 13[Octave Analyzers](../libs/analyzers/#anmth_octave_analyzer) | [`an.`](../libs/analyzers)[`mth_octave_analyzer[N]`](../libs/analyzers/#anmth_octave_analyzer) | Octave analyzers 14 15<div class="table-end"></div> 16 17 18## Basic Elements 19 20<div class="table-begin"></div> 21 22Function Type | Function Name | Description 23--- | --- | --- 24[Beats](../libs/basics/#babeat) | [`ba.`](../libs/basics)[`beat`](../libs/basics/#babeat) | Pulses at a specific tempo 25[Block](../libs/signals/#siblock) | [`si.`](../libs/signals)[`block`](../libs/signals/#siblock) | Terminate n signals 26[Break Point Function](../libs/basics/#babpf) | [`ba.`](../libs/basics)[`bpf`](../libs/basics/#babpf) | Beak Point Function (BPF) 27[Bus](../libs/signals/#sibus) | [`si.`](../libs/signals)[`bus`](../libs/signals/#sibus) | Bus of n signals 28[Bypass (Mono)](../libs/basics/#babypass1) | [`ba.`](../libs/basics)[`bypass1`](../libs/basics/#babypass1) | Mono bypass 29[Bypass (Stereo)](../libs/basics/#babypass2) | [`ba.`](../libs/basics)[`bypass2`](../libs/basics/#babypass2) | Stereo bypass 30[Count Elements](../libs/basics/#bacount) | [`ba.`](../libs/basics)[`count`](../libs/basics/#bacount) | Count elements in a list 31[Count Down](../libs/basics/#bacountdown) | [`ba.`](../libs/basics)[`countdown`](../libs/basics/#bacountdown) | Samples count down 32[Count Up](../libs/basics/#bacountup) | [`ba.`](../libs/basics)[`countup`](../libs/basics/#bacountup) | Samples count up 33[Delay (Integer)](../libs/delays/#dedelay) | [`de.`](../libs/delays)[`delay`](../libs/delays/#dedelay) | Integer delay 34[Delay (Float)](../libs/delays/#defdelay) | [`de.`](../libs/delays)[`fdelay`](../libs/delays/#defdelay) | Fractional delay 35[Down Sample](../libs/basics/#badownsample) | [`ba.`](../libs/basics)[`downSample`](../libs/basics/#badownsample) | Down sample a signal 36[Impulsify](../libs/basics/#baimpulsify) | [`ba.`](../libs/basics)[`impulsify`](../libs/basics/#baimpulsify) | Turns a signal into an impulse 37[Sample and Hold](../libs/basics/#basandh) | [`ba.`](../libs/basics)[`sAndH`](../libs/basics/#basandh) | Sample and hold 38[Signal Crossing](../libs/routes/#rocross) | [`ro.`](../libs/routes)[`cross`](../libs/routes/#rocross) | Cross n signals 39[Smoother (Default)](../libs/signals/#sismoo) | [`si.`](../libs/signals)[`smoo`](../libs/signals/#sismoo) | Exponential smoothing 40[Smoother](../libs/signals/#sismooth) | [`si.`](../libs/signals)[`smooth`](../libs/signals/#sismooth) | Exponential smoothing with controllable pole 41[Take Element](../libs/basics/#batake) | [`ba.`](../libs/basics)[`take`](../libs/basics/#batake) | Take en element from a list 42[Time](../libs/basics/#batime) | [`ba.`](../libs/basics)[`time`](../libs/basics/#batime) | A simple timer 43 44<div class="table-end"></div> 45 46 47## Conversion 48 49<div class="table-begin"></div> 50 51Function Type | Function Name | Description 52--- | --- | --- 53[dB to Linear](../libs/basics/#badb2linear) | [`ba.`](../libs/basics)[`db2linear`](../libs/basics/#badb2linear) | Converts dB to linear values 54[Linear to dB](../libs/basics/#balinear2db) | [`ba.`](../libs/basics)[`linear2db`](../libs/basics/#balinear2db) | Converts linear values to dB 55[MIDI Key to Hz](../libs/basics/#bamidikey2hz) | [`ba.`](../libs/basics)[`midikey2hz`](../libs/basics/#bamidikey2hz) | Converts a MIDI key number into a frequency 56[Hz to MIDI Key](../libs/basics/#bahz2midikey) | [`ba.`](../libs/basics)[`hz2midikey`](../libs/basics/#bahz2midikey) | Converts a frequency into MIDI key number 57[Pole to T60](../libs/basics/#bapole2tau) | [`ba.`](../libs/basics)[`pole2tau`](../libs/basics/#bapole2tau) | Converts a pole into a time constant (t60) 58[Samples to Seconds](../libs/basics/#basamp2sec) | [`ba.`](../libs/basics)[`samp2sec`](../libs/basics/#basamp2sec) | Converts samples to seconds 59[Seconds to Samples](../libs/basics/#basec2samp) | [`ba.`](../libs/basics)[`sec2samp`](../libs/basics/#basec2samp) | Converts seconds to samples 60[T60 to Pole](../libs/basics/#batau2pole) | [`ba.`](../libs/basics)[`tau2pole`](../libs/basics/#batau2pole) | Converts a time constant (t60) into a pole 61 62<div class="table-end"></div> 63 64 65## Effects 66 67<div class="table-begin"></div> 68 69Function Type | Function Name | Description 70--- | --- | --- 71[Auto Wah](../libs/vaeffects/#veautowah) | [`ve.`](../libs/vaeffects)[`autowah`](../libs/vaeffects/#veautowah) | Auto-Wah effect 72[Compressor](../libs/compressors/#cocompressor_mono) | [`co.`](../libs/compressors)[`compressor_mono`](../libs/compressors/#cocompressor_mono) | Dynamic range compressor 73[Distortion](../libs/misceffects/#efcubicnl) | [`ef.`](../libs/misceffects)[`cubicnl`](../libs/misceffects/#efcubicnl) | Cubic nonlinearity distortion 74[Crybaby](../libs/vaeffects/#vecrybaby) | [`ve.`](../libs/vaeffects)[`crybaby`](../libs/vaeffects/#vecrybaby) | Crybaby wah pedal 75[Echo](../libs/misceffects/#efecho) | [`ef.`](../libs/misceffects)[`echo`](../libs/misceffects/#efecho) | Simple echo 76[Flanger](../libs/phaflangers/#pfflanger_stereo) | [`pf.`](../libs/phaflangers)[`flanger_stereo`](../libs/phaflangers/#pfflanger_stereo) | Flanging effect 77[Gate](../libs/misceffects/#efgate_mono) | [`ef.`](../libs/misceffects)[`gate_mono`](../libs/misceffects/#efgate_mono) | Mono signal gate 78[Limiter](../libs/compressors/#colimiter_1176_R4_mono) | [`co.`](../libs/compressors)[`limiter_1176_R4_mono`](../libs/compressors/#colimiter_1176_R4_mono) | Limiter 79[Phaser](../libs/phaflangers/#pfphaser2_stereo) | [`pf.`](../libs/phaflangers)[`phaser2_stereo`](../libs/phaflangers/#pfphaser2_stereo) | Phaser effect 80[Reverb (FDN)](../libs/reverbs/#refdnrev0) | [`re.`](../libs/reverbs)[`fdnrev0`](../libs/reverbs/#refdnrev0) | Feedback delay network reverberator 81[Reverb (Freeverb)](../libs/reverbs/#remono_freeverb) | [`re.`](../libs/reverbs)[`mono_freeverb`](../libs/reverbs/#remono_freeverb) | Most "famous" Schroeder reverberator 82[Reverb (Simple)](../libs/reverbs/#rejcrev) | [`re.`](../libs/reverbs)[`jcrev`](../libs/reverbs/#rejcrev) | Simple Schroeder reverberator 83[Reverb (Zita)](../libs/reverbs/#rezita_rev1_stereo) | [`re.`](../libs/reverbs)[`zita_rev1_stereo`](../libs/reverbs/#rezita_rev1_stereo) | High quality FDN reverberator 84[Panner](../libs/spats/#sppanner) | [`sp.`](../libs/spats)[`panner`](../libs/spats/#sppanner) | Linear stereo panner 85[Pitch Shift](../libs/misceffects/#eftranspose) | [`ef.`](../libs/misceffects)[`transpose`](../libs/misceffects/#eftranspose) | Simple pitch shifter 86[Panner](../libs/spats/#spspat) | [`sp.`](../libs/spats)[`spat`](../libs/spats/#spspat) | N outputs spatializer 87[Speaker Simulator](../libs/misceffects/#efspeakerbp) | [`ef.`](../libs/misceffects)[`speakerbp`](../libs/misceffects/#efspeakerbp) | Simple speaker simulator 88[Stereo Width](../libs/misceffects/#efstereo_width) | [`ef.`](../libs/misceffects)[`stereo_width`](../libs/misceffects/#efstereo_width) | Stereo width effect 89[Vocoder](../libs/vaeffects/#vevocoder) | [`ve.`](../libs/vaeffects)[`vocoder`](../libs/vaeffects/#vevocoder) | Simple vocoder 90[Wah](../libs/vaeffects/#vewah4) | [`ve.`](../libs/vaeffects)[`wah4`](../libs/vaeffects/#vewah4) | Wah effect 91 92<div class="table-end"></div> 93 94 95## Envelope Generators 96 97<div class="table-begin"></div> 98 99Function Type | Function Name | Description 100--- | --- | --- 101[ADSR](../libs/envelopes/#enasr) | [`en.`](../libs/envelopes)[`adsr`](../libs/envelopes/#enadsr) | Attack/Decay/Sustain/Release envelope generator 102[AR](../libs/envelopes/#enar) | [`en.`](../libs/envelopes)[`ar`](../libs/envelopes/#enar) | Attack/Release envelope generator 103[ASR](../libs/envelopes/#enasr) | [`en.`](../libs/envelopes)[`asr`](../libs/envelopes/#enasr) | Attack/Sustain/Release envelope generator 104[Exponential](../libs/envelopes/#ensmoothEvelope) | [`en.`](../libs/envelopes)[`smoothEnvelope`](../libs/envelopes/#ensmoothEnvelope) | Exponential envelope generator 105 106<div class="table-end"></div> 107 108 109## Filters 110 111<div class="table-begin"></div> 112 113Function Type | Function Name | Description 114--- | --- | --- 115[Bandpass (Butterworth)](../libs/filters/#fibandpass) | [`fi.`](../libs/filters)[`bandpass`](../libs/filters/#fibandpass) | Generic butterworth bandpass 116[Bandpass (Resonant)](../libs/filters/#firesonbp) | [`fi.`](../libs/filters)[`resonbp`](../libs/filters/#firesonbp) | Virtual analog resonant bandpass 117[Bandstop (Butterworth)](../libs/filters/#fibandstop) | [`fi.`](../libs/filters)[`bandstop`](../libs/filters/#fibandstop) | Generic butterworth bandstop 118[Biquad](../libs/filters/#fitf2) | [`fi.`](../libs/filters)[`tf2`](../libs/filters/#fitf2) | "Standard" biquad filter 119[Comb (Allpass)](../libs/filters/#fiallpass_fcomb) | [`fi.`](../libs/filters)[`allpass_fcomb`](../libs/filters/#fiallpass_fcomb) | Schroeder allpass comb filter 120[Comb (Feedback)](../libs/filters/#fifb_fcomb) | [`fi.`](../libs/filters)[`fb_fcomb`](../libs/filters/#fifb_fcomb) | Feedback comb filter 121[Comb (Feedforward)](../libs/filters/#fiff_fcomb) | [`fi.`](../libs/filters)[`ff_fcomb`](../libs/filters/#fiff_fcomb) | Feed-forward comb filter. 122[DC Blocker](../libs/filters/#fidcblocker) | [`fi.`](../libs/filters)[`dcblocker`](../libs/filters/#fidcblocker) | Default dc blocker 123[Filterbank](../libs/filters/#fifilterbank) | [`fi.`](../libs/filters)[`filterbank`](../libs/filters/#fifilterbank) | Generic filter bank 124[FIR (Arbitrary Order)](../libs/filters/#fifir) | [`fi.`](../libs/filters)[`fir`](../libs/filters/#fifir) | Nth-order FIR filter 125[High Shelf](../libs/filters/#fihigh_shelf) | [`fi.`](../libs/filters)[`high_shelf`](../libs/filters/#fihigh_shelf) | High shelf 126[Highpass (Butterworth)](../libs/filters/#fihighpass) | [`fi.`](../libs/filters)[`highpass`](../libs/filters/#fihighpass) | Nth-order Butterworth highpass 127[Highpass (Resonant)](../libs/filters/#firesonhp) | [`fi.`](../libs/filters)[`resonhp`](../libs/filters/#firesonhp) | Virtual analog resonant highpass 128[IIR (Arbitrary Order)](../libs/filters/#fiiir) | [`fi.`](../libs/filters)[`iir`](../libs/filters/#fiiir) | Nth-order IIR filter 129[Level Filter](../libs/filters/#filevelfilter) | [`fi.`](../libs/filters)[`levelfilter`](../libs/filters/#filevelfilter) | Dynamic level lowpass 130[Low Shelf](../libs/filters/#filow_shelf) | [`fi.`](../libs/filters)[`low_shelf`](../libs/filters/#filow_shelf) | Low shelf 131[Lowpass (Butterworth)](../libs/filters/#filowpass) | [`fi.`](../libs/filters)[`lowpass`](../libs/filters/#filowpass) | Nth-order Butterworth lowpass 132[Lowpass (Resonant)](../libs/filters/#firesonlp) | [`fi.`](../libs/filters)[`resonlp`](../libs/filters/#firesonlp) | Virtual analog resonant lowpass 133[Notch Filter](../libs/filters/#finotchw) | [`fi.`](../libs/filters)[`notchw`](../libs/filters/#finotchw) | Simple notch filter 134[Peak Equalizer](../libs/filters/#fipeak_eq) | [`fi.`](../libs/filters)[`peak_eq`](../libs/filters/#fipeak_eq) | Peaking equalizer section 135 136<div class="table-end"></div> 137 138 139## Oscillators/Sound Generators 140 141<div class="table-begin"></div> 142 143Function Type | Function Name | Description 144--- | --- | --- 145[Impulse](../libs/oscillators/#osimpulse) | [`os.`](../libs/oscillators)[`impulse`](../libs/oscillators/#osimpulse) | Generate an impulse on start-up 146[Impulse Train](../libs/oscillators/#osimptrain) | [`os.`](../libs/oscillators)[`imptrain`](../libs/oscillators/#osimptrain) | Band-limited impulse train 147[Phasor](../libs/oscillators/#osphasor) | [`os.`](../libs/oscillators)[`phasor`](../libs/oscillators/#osphasor) | Simple phasor 148[Pink Noise](../libs/noises/#nopink_noise) | [`no.`](../libs/noises)[`pink_noise`](../libs/noises/#nopink_noise) | Pink noise generator 149[Pulse Train](../libs/oscillators/#ospulsetrain) | [`os.`](../libs/oscillators)[`pulsetrain`](../libs/oscillators/#ospulsetrain) | Band-limited pulse train 150[Pulse Train (Low Frequency)](../libs/oscillators/#oslf_imptrain) | [`os.`](../libs/oscillators)[`lf_imptrain`](../libs/oscillators/#oslf_imptrain) | Low-frequency pulse train 151[Sawtooth](../libs/oscillators/#ossawtooth) | [`os.`](../libs/oscillators)[`sawtooth`](../libs/oscillators/#ossawtooth) | Band-limited sawtooth wave 152[Sawtooth (Low Frequency)](../libs/oscillators/#oslf_saw) | [`os.`](../libs/oscillators)[`lf_saw`](../libs/oscillators/#oslf_saw) | Low-frequency sawtooth wave 153[Sine (Filter-Based)](../libs/oscillators/#ososcs) | [`os.`](../libs/oscillators)[`oscs`](../libs/oscillators/#ososcs) | Sine oscillator (filter-based) 154[Sine (Table-Based)](../libs/oscillators/#ososc) | [`os.`](../libs/oscillators)[`osc`](../libs/oscillators/#ososc) | Sine oscillator (table-based) 155[Square](../libs/oscillators/#ossquare) | [`os.`](../libs/oscillators)[`square`](../libs/oscillators/#ossquare) | Band-limited square wave 156[Square (Low Frequency)](../libs/oscillators/#oslf_squarewave) | [`os.`](../libs/oscillators)[`lf_squarewave`](../libs/oscillators/#oslf_squarewave) | Low-frequency square wave 157[Triangle](../libs/oscillators/#ostriangle) | [`os.`](../libs/oscillators)[`triangle`](../libs/oscillators/#ostriangle) | Band-limited triangle wave 158[Triangle (Low Frequency)](../libs/oscillators/#oslf_triangle) | [`os.`](../libs/oscillators)[`lf_triangle`](../libs/oscillators/#oslf_triangle) | Low-frequency triangle wave 159[White Noise](../libs/noises/#nonoise) | [`no.`](../libs/noises)[`noise`](../libs/noises/#nonoise) | White noise generator 160 161<div class="table-end"></div> 162 163 164## Synths 165 166<div class="table-begin"></div> 167 168Function Type | Function Name | Description 169--- | --- | --- 170[Additive Drum](../libs/synths/#syadditivedrum) | [`sy.`](../libs/synths)[`additiveDrum`](../libs/synths/#syadditivedrum) | Additive synthesis drum 171[Bandpassed Sawtooth](../libs/synths/#sydubdub) | [`sy.`](../libs/synths)[`dubDub`](../libs/synths/#sydubdub) | Sawtooth through resonant bandpass 172[Comb String](../libs/synths/#sycombstring) | [`sy.`](../libs/synths)[`combString`](../libs/synths/#sycombstring) | String model based on a comb filter 173[FM](../libs/synths/#syfm) | [`sy.`](../libs/synths)[`fm`](../libs/synths/#syfm) | Frequency modulation synthesizer 174[Lowpassed Sawtooth](../libs/synths/#sysawtrombone) | [`sy.`](../libs/synths)[`sawTrombone`](../libs/synths/#sysawtrombone) | "Trombone" based on a filtered sawtooth 175[Popping Filter](../libs/synths/#sypopfilterperc) | [`sy.`](../libs/synths)[`popFilterPerc`](../libs/synths/#sypopfilterperc) | Popping filter percussion instrument 176 177<div class="table-end"></div> 178 179 180<!-- 181TODO: potentially say something about demos.lib and demo functions here. Also, not sure what to do with math.lib. 182--> 183 184<script type="text/javascript"> 185(function() { 186 $('div.table-begin').nextUntil('div.table-end', 'table').addClass('table table-bordered'); 187 })(); 188</script> 189