This site will look much better in a browser that supports web standards, but it is accessible to any browser or Internet device.



SonicBirth
Creating powerful audio plugins

> Modules




Current version:

150 elements, with more to come!


Current modules

Algebraic

  • Addition: Outputs the sum of both inputs.
    Inputs : a, b.
    Outputs : a+b.

  • Add Many: Outputs the summation of 3 to 16 inputs.
    Inputs : in0, in1, in2, in3.
    Outputs : out.

  • Substraction: Outputs (a - b).
    Inputs : a, b.
    Outputs : a-b.

  • Multiplication: Outputs (a * b).
    Inputs : a, b.
    Outputs : a*b.

  • Division: Outputs (a / b).
    Inputs : a, b.
    Outputs : a/b.

  • Constant Addition: Adds a constant number.
    Inputs : i.
    Outputs : o.

  • Constant Substraction: Substracts a constant number.
    Inputs : i.
    Outputs : o.

  • Constant Multiplication: Multiply by a constant number.
    Inputs : i.
    Outputs : o.

  • Constant Division: Divides by a constant number.
    Inputs : i.
    Outputs : o.

  • Constant Substraction Alt.: Constant number substracted by input.
    Inputs : i.
    Outputs : o.

  • Constant Division Alt.: Constant number divided by input.
    Inputs : i.
    Outputs : o.

  • Negation: Outputs -x.
    Inputs : x.
    Outputs : -x.

  • Inverse: Outputs 1/x.
    Inputs : x.
    Outputs : 1/x.

  • Absolute: Outputs |x| (x if x>=0, -x if x<0).
    Inputs : x.
    Outputs : |x|.

  • Absolute/Sign: Outputs |x| (x if x>=0, -x if x<0), and sign of x (1 for pos, -1 for neg).
    Inputs : x.
    Outputs : |x|, sign.

  • Direction: Outputs 1 if input is augmenting, -1 if it is descending, 0 otherwise.
    Inputs : x.
    Outputs : dir.

  • Multiply-Add: Outputs (a*b)+c.
    Inputs : a, b, c.
    Outputs : (a*b)+c.

  • Multiply-Sub: Outputs (a*b)-c.
    Inputs : a, b, c.
    Outputs : (a*b)-c.

  • Neg. Multiply-Add: Outputs -((a*b)+c).
    Inputs : a, b, c.
    Outputs : -((a*b)+c).

  • Neg. Multiply-Sub: Outputs -((a*b)-c).
    Inputs : a, b, c.
    Outputs : -((a*b)-c).

Function

  • Modulus: Outputs x % y (x mod y).
    Inputs : x, y.
    Outputs : x%y.

  • Ceil: Rounds to smallest integral value not less than x.
    Inputs : x.
    Outputs : o.

  • Floor: Rounds to largest integral value not greater than x.
    Inputs : x.
    Outputs : o.

  • Nearest integer: Rounds to nearest integer.
    Inputs : x.
    Outputs : o.

  • Exponential: Outputs e^x.
    Inputs : x.
    Outputs : e^x.

  • Natural logarithm: Outputs ln(x).
    Inputs : x.
    Outputs : ln(x).

  • Logarithm base 10: Outputs log10(x).
    Inputs : x.
    Outputs : log10(x).

  • Power: Outputs x^y.
    Inputs : x, y.
    Outputs : x^y.

  • Square root: Outputs sqrt(x).
    Inputs : x.
    Outputs : sqrt(x).

  • Reverse square root: Outputs rsqrt(x).
    Inputs : x.
    Outputs : rsqrt(x).

  • Quadratic Bezier: Outputs (1-t)^2*a + 2*t*(1-t)*b + t^2*c, where t is clamped to 0 .. 1. See http://en.wikipedia.org/wiki/B%e9zier_curve.
    Inputs : t, a, b, c.
    Outputs : o.

Trigonometric

  • Sinus: Outputs the sinus of the input.
    Inputs : x.
    Outputs : sin x.

  • Cosinus: Outputs the cosinus of the input.
    Inputs : x.
    Outputs : cos x.

  • Tangent: Outputs the tangent of the input.
    Inputs : x.
    Outputs : tan x.

  • Sinus and cosinus: Outputs both the sinus and the cosinus of the input.
    Inputs : x.
    Outputs : sin x, cos x.

  • Hyperbolic sinus: Outputs the hyperbolic sinus of the input.
    Inputs : x.
    Outputs : sinh x.

  • Hyperbolic cosinus: Outputs the hyperbolic cosinus of the input.
    Inputs : x.
    Outputs : cosh x.

  • Hyperbolic tangent: Outputs the hyperbolic tangent of the input.
    Inputs : x.
    Outputs : tanh x.

  • Arc sinus: Outputs the arc sinus of the input.
    Inputs : x.
    Outputs : asin x.

  • Arc cosinus: Outputs the arc cosinus of the input.
    Inputs : x.
    Outputs : acos x.

  • Arc tangent: Outputs the arc tangent of the input.
    Inputs : x.
    Outputs : atan x.

  • Arc tangent (x, y): Outputs the arc tangent of y/x.
    Inputs : x, y.
    Outputs : atan(y/x).

  • Inverse hyperbolic sinus: Outputs the inverse hyperbolic sinus of the input.
    Inputs : x.
    Outputs : asinh x.

  • Inverse hyperbolic cosinus: Outputs the inverse hyperbolic cosinus of the input.
    Inputs : x.
    Outputs : acosh x.

  • Inverse hyperbolic tangent: Outputs the inverse hyperbolic tangent of the input.
    Inputs : x.
    Outputs : atanh x.

Arguments

  • Boolean: Boolean button with value for true and for false.
    Outputs : value.

  • Slider: Basic slider with min/max.
    Outputs : value.

  • Indexed: Indexed popup button with multiple values.
    Outputs : value.

  • Points: Set of points making a line. Double-click to insert a point. Use left and right arrow to change interpolation type. Delete key to remove a point.
    Outputs : pts.

  • Points Envelope: Set of points defining attack, loop and release. Double-click to insert a point. Use left and right arrow to change interpolation type. Delete key to remove a point.
    Outputs : pts.

  • Points Frequency: Set of points suitable for fft conversion or generation. Double-click to insert a point. Use left and right arrow to change interpolation type. Delete key to remove a point.
    Outputs : pts.

  • XY Pad: Two sliders combined in a XY pad.
    Outputs : x, y.

  • Audio file argument: User selectable audio file with preset channel count.
    Outputs : chan 0.

  • Keyboard Tap: Emits a single 1 when receiving a key stroke.
    Outputs : tap.

Midi arguments

  • Midi slider: Outputs the value of the a midi parameter in a user supplied range.
    Outputs : value.

  • Midi note state: Outputs the state (pressed or not) and velocity (0 to 1) for each specified note.

  • Midi mono note: Outputs the note and velocity (in the range 0 - 1) of the current presser note. You can select to hold the last note pressed.
    Outputs : note, velo, numb.

  • Midi multi note: Duplicates the subcircuit on the fly for each pressed note, up to a maximum of 16. The outputs of these subcircuits are summed, then outputed. You can specify the attack and release time in milliseconds. Both are clamped to 0 .. 60000 milliseconds. You must stop/start for changes to take effect.
    Inputs : atck, rlse.

  • Midi multi note envelope: Duplicates the subcircuit on the fly for each pressed note, up to a maximum of 16. The outputs of these subcircuits are summed, then outputed. You can specify the attack, loop and release time in milliseconds. All are clamped to 0 .. 60000 milliseconds. You must stop/start for changes to take effect.
    Inputs : atck, loop, rlse, pts.

  • Midi XY Pad: Two sliders combined in a XY pad, midi controllable. (Y controller is always the one following the X controller).
    Outputs : x, y.

Display

  • Display value: Shows the first value of the input of each audio cycle. Can be used in the plugin interface.
    Inputs : in.

  • Display Osc.: An oscilloscope that can be used in the plugin interface.
    Inputs : in.

  • Display Osc. (Var. res.): An oscilloscope that can be used in the plugin interface.
    Inputs : in, res.

  • Display Meter: A value meter that can be used in the plugin interface.
    Inputs : in.

Analysis

  • Envelope Follower: Envelope follower with variable attack and release time, in milliseconds. The output is in positive linear units.
    Inputs : in, atck, rlse.
    Outputs : env.

  • Look ahead: Basic look ahead: outputs the current enveloppe of the input signal, and the delayed signal.
    Inputs : in.
    Outputs : out, env.

  • BPM Counter: BPM counter analyses its input and outputs the current bpm. Uses the last 4 events to average the bpm. Is considred an event when its input passes from under or equal to 0.5 to over 0.5.
    Inputs : in.
    Outputs : bpm.

  • Debug: Shows the first value of the input of each audio cycle.
    Inputs : in.

  • Debug Osc.: An oscilloscope for debugging purpose.
    Inputs : in.

Comparators

  • Minimum: Outputs the smallest of both inputs.
    Inputs : a, b.
    Outputs : min(a,b).

  • Maximum: Outputs the largest of both inputs.
    Inputs : a, b.
    Outputs : max(a,b).

  • Sort: Outputs the min and max of both inputs.
    Inputs : a, b.
    Outputs : min, max.

  • Less: If (a < b) the outputs c else outputs d.
    Inputs : a, b, c, d.
    Outputs : o.

  • Equal: If (a = b) the outputs c else outputs d.
    Inputs : a, b, c, d.
    Outputs : o.

  • Greater: If (a > b) the outputs c else outputs d.
    Inputs : a, b, c, d.
    Outputs : o.

Converters

  • Msec to samples: Converts milliseconds into samples.
    Inputs : ms.
    Outputs : smpl.

  • Samples to msec: Converts samples into milliseconds.
    Inputs : smpl.
    Outputs : ms.

  • Linear to db: Converts linear values into decibels.
    Inputs : lin.
    Outputs : db.

  • Db to linear: Converts decibels into linear values.
    Inputs : db.
    Outputs : lin.

Delays

  • Delay: Delays the input signal by a variable time (maximum is user specified - clamped to 60 seconds). The dly input is in seconds.
    Inputs : in, dly.
    Outputs : out.

  • Delay (samples): Delays the input signal by a variable time in samples (max: 100000).
    Inputs : in, dly.
    Outputs : out.

  • Delay Sinc (samples): Delays the input signal by a variable time in samples, using 16 points Blackman windowed sinc interpolation (min delay: 8 samples, max delay: 100000 samples).
    Inputs : in, dly.
    Outputs : out.

Generators

  • Sine Wave: Generates a sine wave, of frequency f (hz) and phase p (0 to 2pi).
    Inputs : f, p.
    Outputs : tone.

  • Fast Sine Wave: Generates a sine wave, of frequency f (hz). Low cpu usage.
    Inputs : f.
    Outputs : tone.

  • Saw Wave: Generates a saw wave, of frequency f (hz) and phase p (0 to 2pi).
    Inputs : f, p.
    Outputs : sawave.

  • Triangle Wave: Generates a triangle wave, of frequency f (hz) and phase p (0 to 2pi).
    Inputs : f, p.
    Outputs : twave.

  • Square wave: Generates a square wave, of frequency f (hz) and phase p (0 to 2pi).
    Inputs : f, p.
    Outputs : swave.

  • Linear Noise: Generates linear noise (random values between -1 and 1).
    Outputs : lnoise.

  • White Noise: Generates white noise (random values between -1 and 1, with gaussian distribution).
    Outputs : wnoise.

  • Pink Noise: Generates pink noise (1/f noise).
    Outputs : pnoise.

  • Random: Generates random values between -1 and 1, changing the value at frequency f.
    Inputs : f.
    Outputs : rnd.

  • Random ramp: Generates random values between -1 and 1, changing the value at frequency f, interpolating between values.
    Inputs : f.
    Outputs : rnd.

  • FFT Generator: Generates waves using FFT based on input points..
    Inputs : pts.
    Outputs : snd.

Filters

  • DC Blocker: Cuts frequencies below 20 hz.
    Inputs : in.
    Outputs : out.

  • Parametric Eq.: Parametric Eq: f is the center frequency, g is the gain or cut in dB (clamped in the range -15 .. 15). Q should be between 0.3 and 15.
    Inputs : in, f, g, Q.
    Outputs : out.

  • Peak: Peaking eq, with constant Q (10) and dB gain (20 dB).
    Inputs : in, f.
    Outputs : out.

  • Notch: Notch with constant bandwitdh (0.1 octave).
    Inputs : in, f.
    Outputs : out.

  • Lowpass: Lowpass filter, 12/db octave (Butterworth), with variable cutoff frequency (clamped to [1, 20000]).
    Inputs : in, f.
    Outputs : out.

  • Highpass: Highpass filter, 12/db octave (Butterworth), with variable cutoff frequency (clamped to [1, 20000]).
    Inputs : in, f.
    Outputs : out.

  • Resonant lowpass: Resonant lowpass filter, 12/db octave (Butterworth), with variable cutoff frequency (clamped to [20, 20000]). Resonance should be between sqrt(2), that is 1.414..., for no resonance, and 0.1 for max resonance.
    Inputs : in, f, r.
    Outputs : out.

  • Resonant highpass: Resonant highpass filter, 12/db octave (Butterworth), with variable cutoff frequency (clamped to [20, 20000]). Resonance should be between sqrt(2), that is 1.414..., for no resonance, and 0.1 for max resonance.
    Inputs : in, f, r.
    Outputs : out.

  • Crossover: Linkwitz-Riley 24db/octave crossover.
    Inputs : in, f.
    Outputs : high, low.

  • Bandstop: 24db/octave bandstop.
    Inputs : in, f1, f2.
    Outputs : out.

  • Bandpass: 24db/octave bandpass.
    Inputs : in, f1, f2.
    Outputs : out.

  • Lowpass (fast): Same as lowpass, but only checks its parameter once per audio cycle.
    Inputs : in, f.
    Outputs : out.

  • Highpass (fast): Same as highpass, but only checks its parameter once per audio cycle.
    Inputs : in, f.
    Outputs : out.

  • Resonant lowpass (fast): Same as resonant lowpass, but only checks its parameters once per audio cycle.
    Inputs : in, f, r.
    Outputs : out.

  • Resonant highpass (fast): Same as resonant highpass, but only checks its parameters once per audio cycle.
    Inputs : in, f, r.
    Outputs : out.

  • Crossover (fast): Same as crossover, but only checks its parameter once per audio cycle.
    Inputs : in, f.
    Outputs : high, low.

  • Bandstop (fast): Same as bandstop, but only checks its parameters once per audio cycle.
    Inputs : in, f1, f2.
    Outputs : out.

  • Bandpass (fast): Same as bandpass, but only checks its parameters once per audio cycle.
    Inputs : in, f1, f2.
    Outputs : out.

  • Allpass: Allpass, with variable delay, clamped between 0 and 1 sec. Equivalent to a feedback comb filter followed by a feedforward comb filter. y(t) = a*x(t) + x(t-dly) - b*y(t-dly)
    Inputs : in, a, b, dly.
    Outputs : out.

  • Feedback Comb: Feedback comb, with variable delay, clamped between 0 and 1 sec. y(t) = a*x(t) - b*y(t-dly)
    Inputs : in, a, b, dly.
    Outputs : out.

  • Feedforward Comb: Feedforward comb, with variable delay, clamped between 0 and 1 sec. y(t) = a*x(t) + b*x(t-dly)
    Inputs : in, a, b, dly.
    Outputs : out.

  • Formant filter: Formant filter with variable phonemes. Choose one on v1, another on v2, and you can mix between the two using input m [0,1]. Here are the phonemes: phoneme 0: eee (beet) phoneme 1: ihh (bit) phoneme 2: ehh (bet) phoneme 3: aaa (bat) phoneme 4: ahh (father) phoneme 5: aww (bought) phoneme 6: uhh (but) phoneme 7: uuu (foot) phoneme 8: ooo (boot) phoneme 9: rrr (bird) phoneme 10: lll (lull) phoneme 11: mmm (mom) phoneme 12: nnn (nun)
    Inputs : i, v1, v2, m.
    Outputs : o.

Feedback

  • Feedback: Allows a feedback loop, with fixed delay (0.010000 seconds).
    Inputs : in.
    Outputs : out.

Distortion

  • Valve: Valve distortion simulation. Level and character range is 0 to 1. Level is how much the signal is driven against the limit of the valve. Character is the hardness of the sound.
    Inputs : in, lv, ch.
    Outputs : out.

  • Scraper: Degrades quality of sampling rate, and bit depth (parameters in the range [0, 1], where 0 is lowest quality and 1 is original signal).
    Inputs : in, sr, bd.
    Outputs : out.

  • Scraper (quick): Degrades quality of sampling rate, and bit depth (parameters in the range [0, 1], where 0 is lowest quality and 1 is original signal). Less precise but faster version.
    Inputs : in, sr, bd.
    Outputs : out.

Audio file

  • Audio file: Loads an audio file and outputs each channel.

  • Audio player: Audio player plays the audio from the buffer when trig is non-zero. Start and end represents the playing offset. If end is smaller than start, speed is negated. Both these values should be between 0 and 1. Playing will loop if the loop input is non-zero. Speed give the playing speed, should be between -5 and 5. A negative speed means the buffers is played reversed.
    Inputs : trig, start, end, loop, speed, buf.
    Outputs : o.

FFT

  • FFT Sync: States the fft size and block positions.
    Outputs : sync.

  • Forward FFT: Outputs the forward fft of the input, with variable block size (delay).
    Inputs : sync, in.
    Outputs : real, imag.

  • Inverse FFT: Outputs the inverse fft of the input.
    Inputs : sync, real, imag.
    Outputs : out.

  • Complex to Polar: Converts complex fft blocks into polar fft blocks.
    Inputs : sync, real, imag.
    Outputs : ampl, phas.

  • Polar to Complex: Converts polar fft blocks into complex fft blocks.
    Inputs : sync, ampl, phas.
    Outputs : real, imag.

  • Convolve: Convolve two fft signals (in the complex plane).
    Inputs : sync, r1, i1, r2, i2.
    Outputs : ro, io.

  • Points To FFT: Transforms a points function into frequency amplitudes. Range is in db.
    Inputs : sync, pts, range.
    Outputs : real, imag.

  • Audio file To FFT: Transforms an audio file to an fft block (considering samples up to half the fft block size).
    Inputs : sync, af.
    Outputs : real, imag.

Miscellaneous

  • Circuit: A circuit inside another.

  • Constant: A constant number.
    Outputs : o.

  • Equation: A mathematical equation. You can use these functions: sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), sinh(x), cosh(x), tanh(x), asinh(x), acosh(x), atanh(x), atan2(x,y), pow(x,y), min(x,y), max(x,y), mod(x,y), abs(x), floor(x), ceil(x), nearint(x), inv(x), exp(x), log(x), log10(x), sqrt(x), revsqrt(x). Speed: compare the execute plan for: - i0*2*3 and i0*(2*3) - i0*i0*i0*i0 and (i0*i0)*(i0*i0) You can also enter an equation in the constant element (sqrt(2) for example).
    Inputs : i0.
    Outputs : o.

  • Piecewise circuit: Depending on the value of the range input, a specific subcircuit is executed. This value is checked once per block of samples. The subcircuit which is entered when clicking next depends on the selected row in the settings window.
    Inputs : range.

  • Samplerate Doubler: Audio processing inside this circuit is done at double sample rate, which can be useful (sounds better) for some type of calculations (filters).

  • Timer: Outputs the time in seconds, when run is 1, outputs 0 otherwise. Time is reset then run switchs to 1.
    Inputs : run.
    Outputs : time.

  • Timer loop: Outputs the time in seconds, looping back to 0 when arriving to the max time specified. Loops back to 0 when arriving to the max time specified.If the max is equal or smaller than 0, then it does not loop. Time is reset then run switchs to 1.
    Inputs : run, max.
    Outputs : time.

  • Freeverb: Jezar's freeverb. (Room size: 0.5 to 0.999, damp: 0 to 1, wet: 0 to 3, dry: 0 to 2, width: 0 to 1, freeze: 0/no or 1/yes)
    Inputs : in1, in2, room size, damp, wet, dry, width, freeze.
    Outputs : out1, out2.

  • Cleaner: Removes denormals, infinities and nan (not a number). Use this if your circuit can potentially create those numbers (division by 0, tan(pi/2), etc). The signal can optinnaly be clamped to [-1 .. 1].
    Inputs : in.
    Outputs : out.

  • Points apply: Applies the points function using x and y as origin, width and height as size.
    Inputs : i, x, y, w, h, pts.
    Outputs : o.

  • Bufferizer: Buffer object with three modes: silence (0), play (1), record (2). In playing mode, start and end represents the playing offset. If end is smaller than start, speed is negated. Both these values should be between 0 and 1. Playing will loop if the loop input is non-zero. Speed give the playing speed, should be between -5 and 5. A negative speed means the buffers is played reversed. In record mode, the buffer is filled from start up to its capacity.
    Inputs : in, mode, start, end, loop, speed.
    Outputs : out.

  • Trigger: Trigger sends either the on value or off value depending on its internal state. Its state is initialized as off. If the t (trigger) input is higher than the tt (trigger threshold) input, its state is turned on. If the r (reset) input is higher than the rt (reset threshold) input, its stated is turned off. In case both events are occuring simultaneously, the state is turned on.
    Inputs : tt, rt, t, r, on, off.
    Outputs : o.

  • Change Slower: Slows the rate of change of the input on a specified amount of milliseconds.
    Inputs : i.
    Outputs : o.

  • Convolving reverb: Convolving reverb, 4096 samples latency. Max reverb length: 2457600 samples. Memory usage at max reverb length: 75.4 MBs
    Inputs : in, ir.
    Outputs : out.

  • AudioUnit: Wraps a third party audiounit.
    Inputs : tempo, beat.

  • AudioUnit (midi): Wraps a third party audiounit.
    Inputs : tempo, beat.

  • Granulate effect: Granulator effect. Delay is max delay in seconds to create grain from (max 10 seconds). DRandomness is a value between 0 and 1 affecting the grain's delay.Ramp is a value between 0 and 100. At 0 no attack or decay is used. At 100 it gives a triangular envelope, at 50 a trapezoidal envelope. Voices is the number of simultaneous grains (max 100). Length is the duration of grains in seconds (max 1 second). LRandomness is a value between 0 and 1 affecting the grain's length.Silence is the duration of silence between grains in seconds (max 10 seconds). SRandomness is a value between 0 and 1 affecting the silence's length.
    Inputs : i, delay, drndness, ramp, voices, length, lrndness, silence, srndness.
    Outputs : o.

  • Granulate effect with pitch: Granulator effect with variable picth. Delay is max delay in seconds to create grain from (max 10 seconds). DRandomness is a value between 0 and 1 affecting the grain's delay.Ramp is a value between 0 and 100. At 0 no attack or decay is used. At 100 it gives a triangular envelope, at 50 a trapezoidal envelope. Voices is the number of simultaneous grains (max 100). Length is the duration of grains in seconds (max 1 second). LRandomness is a value between 0 and 1 affecting the grain's length.Silence is the duration of silence between grains in seconds (max 10 seconds). SRandomness is a value between 0 and 1 affecting the silence's length.Pitch is the grain playing speed (0.5 to 5) - can be negative. PRandomness is a value between 0 and 1 affecting the pitch.
    Inputs : i, delay, drndness, ramp, voices, length, lrndness, silence, srndness, pitch, prndness.
    Outputs : o.

Internal

  • Interpolation Precision: Sets the interpolation type of the audio engine.

  • Bit Precision: Sets the bit precision of the audio engine.

  • Midi settings: MIDI settings central control.