# A list of Unit Generators in Sporth

Below is a list of Sporth unit generators that can be used in-browser. Some of these ugens have links with short simple examples.

**%**

*Performs modulus operation.*

**&**

*Performs logical "and" operation.*

*****

*Performs multiplication.*

**+**

*Performs addition.*

**-**

*Performs subtraction.*

**/**

*Performs division.*

**<<**

*Binary left shift operation.*

**>>**

*Binary right shift operation.*

**^**

*Performs logical "xor" operation.*

**abs**

*Performs absolute value.*

**add**

*Performs addition.*

**adsr**

*Analogue modelled ADSR generator*

**allpass**

*allpass filter*

**ampdb**

*converts decibels to amplitude*

**atone**

*simple one-pole high pass filter*

**autowah**

*autowah*

**bal**

*match the input's amplitude the reference's amplitude*

**biscale**

*Scales from bipolar [-1, 1] to [min, max].*

**bitcrush**

*bitcrusher. bitdepth: 1 - 16*

**blsaw**

*Band-limited sawtooth oscillator*

**blsquare**

*Band-limited square oscillator with pulse-width*

**bltriangle**

*Band-limited triangle oscillator*

**bpm2dur**

*convert bpm to duration (seconds)*

**bpm2rate**

*convert bpm to rate (Hertz)*

**branch**

*returns signal based on state of gate (0 = sig1, 1 = sig2)*

**brown**

*Brownian noise generator*

**butbp**

*butterworth bandpass filter*

**butbr**

*butterworth band reject filter*

**buthp**

*Butterworth highpass filter*

**butlp**

*Butterworth lowpass filter*

**c**

*Constant generator, used for feedback loops.*

**cf**

*crossfade two signals*

**changed**

*Returns a trigger if the input changes*

**clip**

*clip limiter / distortion*

**clock**

*Clock with subdivisions and triggerable reset*

**comb**

*comb filter*

**conv**

*partitioned convolution*

**count**

*clock counter. mode: 0 = loop, 1 = one-shot*

**crossfade**

*crossfade two signals*

**dcblk**

*dc block filter.*

**delay**

*feedback delay*

**diode**

*Diode ladder filter*

**dist**

*Distortion*

**div**

*Performs division.*

**dmetro**

*Metronome using time instead of frequency*

**drip**

*dripwater physical model*

**drop**

*Removes the last item on the stack.*

**dtrig**

*delta trig. loop = 1 will loop the sequence*

**dup**

*Duplicates last item on the stack.*

**dup2**

*Duplicates the two last item on the stack.*

**dur**

*returns duration of sporth patch (in seconds)*

**dust**

*dust. bipolar = 1 unipolar = 0*

**eq**

*conditional equals*

**eqfil**

*eq filter*

**expon**

*exponential line segment*

**f**

*Call a user defined function*

**floor**

*Performs flooring, returning the integer part.*

**fm**

*A simple FM oscillator.*

**fof**

*fof*

**fofilt**

*Formant filter*

**fog**

*fog*

**fosc**

*FM oscillator*

**frac**

*Returns the fractional part of item on the stack.*

**gbuzz**

*Series of partials from the harmonic series*

**gen_composite**

*Generate a composite waveform of sinusoids.*

**gen_eval**

*Evaluates sporth string to table*

**gen_line**

*Generates a line from ordered list of breakpoints.*

**gen_padsynth**

*padsynth algorithm by Paul Nasca Octavian*

**gen_rand**

*random distribution generator*

**gen_sine**

*Generates a sine wave ftable.*

**gen_sinesum**

*Summation of harmonically related sines. based on GEN10.*

**gen_vals**

*Generates an ftable from a space delimited set of values.*

**get**

*gets variable*

**gt**

*conditional greater than*

**hilbert**

*hilbert transform*

**in**

*Read a float from STDIN.*

**incr**

*Incrementer*

**inv**

*inverse a signal 1/x*

**jcrev**

*Chowning reverb*

**jitter**

*Jitter control signal*

**line**

*line segment*

**log**

*Performs natural logarithm.*

**log10**

*Performs base 10 logarithm.*

**lpc**

*apply linear-predictive coding (LPC10) to signal*

**lpcsynth**

*LPC synth. Manipulate parameters directly.*

**lpf18**

*low pass filter with tanh distortion*

**lsys**

*L-Systems microlanguage*

**lt**

*conditional lt*

**max**

*Returns the greater of two items on the stack.*

**maygate**

*Random selection of gate or no gate.*

**maytrig**

*Random selection of trig or no trig.*

**metro**

*Creates clock signal.*

**min**

*Returns the lesser of two items on the stack.*

**mincer**

*Phase-locked vocoder*

**mix**

*Sums up remaining items on stack.*

**mode**

*modal filter*

**moogladder**

*Moog ladder lowpass filter*

**mtof**

*Converts MIDI note number to Hz.*

**mul**

*Performs multiplication.*

**ne**

*conditional not-equal to*

**noise**

*White noise generator.*

**osc**

*Wavetable lookup oscillator*

**oscmorph2**

*2-table morphing oscillator*

**oscmorph4**

*4-table morphing oscillator*

**p**

*p register get*

**palias**

*create a variable alias for p-value*

**pan**

*Equal power panning. -1 = hardL 1 = hardR*

**pareq**

*parametric equalizer*

**pdhalf**

*casio phasor distortion*

**peaklim**

*peak limiter*

**phaser**

*stereo phaser*

**phasor**

*Normalized sawtooth wave.*

**pinknoise**

*pink noise generator*

**pluck**

*plucked instrument. ifreq sets the lowest frequency (buffer size).*

**port**

*Applies portamento to a signal.*

**pos**

*returns playing time, in seconds*

**posc3**

*high-precision oscillator with cubic interpolation*

**prop**

*Parses prop code to produce a set of triggers*

**pset**

*p register set*

**pshift**

*pitch shifter*

**ptrack**

*pitch tracking (outputs: amp, pitch)*

**rand**

*picks random number at start time*

**randh**

*Random hold*

**randi**

*Randomized line segment with interpolation*

**ref**

*save pointer reference of next pipe in table*

**reson**

*resonator filter*

**reverse**

*reverse delay*

**revsc**

*Stereo reverb module from reverbsc Csound opcode.*

**rot**

*Stack rotate. s: 1 2 3 -> 2 3 1*

**round**

*Performs rounding to nearest integer.*

**rpt**

*Stutterer / repeater (bufsize in seconds)*

**rspline**

*random spline generator*

**samphold**

*sample and hold*

**saturator**

*saturator distortion unit*

**scale**

*Scales from unipolar [0, 1] to [min, max].*

**sdelay**

*delay (in samples)*

**set**

*sets variable*

**setdurs**

*set total duration (in samples)*

**sget**

*picks a string from a string list*

**sine**

*Simple sine oscillator.*

**slice**

*in-memory slice based sampler*

**slick**

*picks a string randomly from string list*

**smoothdelay**

*smooth delay line*

**sqrt**

*square root*

**sr**

*Returns the sample rate*

**srand**

*seed internal RNG*

**streson**

*String resonator filter*

**sub**

*Performs subtraction.*

**swap**

*Swaps last two items on the stack.*

**switch**

*toggle between two signals*

**tabread**

*read from table with interpolation*

**tadsr**

*Triggerable digital-style ADSR envelope. Use trigger as a toggle.*

**talias**

*alias a table value to a variable*

**talkbox**

*high-resolution vocoder*

**tbldur**

*Get duration of table (in seconds)*

**tblrec**

*records values to table.*

**tblsize**

*Get size of table (in samples)*

**tdiv**

*trigger divider*

**tenv**

*Triggerable linear envelope generator. Values in seconds.*

**tenv2**

*Two-step triggerable linear envelope generator. Values in seconds.*

**tenvx**

*Exponential Envelope Generator. Values in seconds, hold > atk*

**tgate**

*triggerable gate*

**tget**

*Get value from table*

**thresh**

*detect threshold crossings. mode: 0=from below, 1=above, 2=both*

**tick**

*trigger at start of file. only use once*

**timer**

*timer*

**tog**

*toggle switch that can be triggered on/off*

**tone**

*simple one-pole low pass filter*

**tphasor**

*Triggerable normalized sawtooth wave.*

**tport**

*Applies portamento to a signal with triggerable reset.*

**tprop**

*prop with a triggerable reset*

**trand**

*triggerable RNG*

**tseg**

*trigger segment*

**tseq**

*Triggered sequencer. modes: 0 = normal, 1 = shuffle.*

**tset**

*Set value of table*

**var**

*creates variable*

**varset**

*creates and sets a variable*

**vdelay**

*variable delay with feedback*

**voc**

*Vocal Tract Physical Model*

**vocoder**

*32-band channel vocoder*

**waveset**

*waveset timestretching algorithm*

**wpkorg35**

*wpkorg filter*

**zeros**

*Generate table of zeros*

**zitarev**

*zitareverb module*

**zrev**

*zitareverb module (simplified)*

**|**

*Performs logical "or" operation.*