Liquidsoap svn : Language reference

Liquidsoap scripting language reference

Categories

The Source / ... categories contain all functions that return sources. The Input functions are those which build elementary sources (playing files, synthesizing sound, etc.). The Output functions are those which take a source and register it for being streamed to the outside (file, soundcard, audio server, etc.). The Visualization functions are experimental ones that let you visualize in real-time some aspects of the audio stream. The Sound Processing functions are those which basically work on the source as a continuous audio stream. They would typically be mixers of streams, audio effects or analysis. Finally, Track Processing functions are basically all others, often having a behaviour that depends on or affects the extra information that liquidsoap puts in streams: track limits and metadata.

Source / Conversions

audio_to_stereo
(?id:string,source(audio=*+1,video=0,midi=0))->
source(audio=2,video=0,midi=0)

Convert any kind of audio source into a stereo source.

drop_audio
(?id:string,source(audio='#a,video='#b,midi='#c))->
source(audio=0,video='#b,midi='#c)

Drop all audio channels of a stream.

drop_midi
(?id:string,source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi=0)

Drop all midi channels of a stream.

drop_video
(?id:string,source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video=0,midi='#c)

Drop all video channels of a stream.

id
(?id:string,source('a))->source('a)

Does not do anything, simply forwards its input stream.

mean
(?id:string,source(audio='#a,video='#b,midi='#c))->
source(audio=1,video='#b,midi='#c)

Produce mono audio by taking the mean of all audio channels.

mux_audio
(?id:string,audio:source(audio='#a,video=0,midi=0),
 source(audio=0,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Mux an audio stream into an audio-free stream.

mux_mono
(?id:string,mono:source(audio=1,video=0,midi=0),
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a+1,video='#b,midi='#c)

Mux a mono audio stream into another stream.

mux_stereo
(?id:string,stereo:source(audio=2,video=0,midi=0),
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a+2,video='#b,midi='#c)

Mux a stereo audio stream into another stream.

mux_video
(?id:string,video:source(audio=0,video='#a,midi=0),
 source(audio='#b,video=0,midi='#c))->
source(audio='#b,video='#a,midi='#c)

Add video channnels to a stream.

stereo.left
(source(audio=2,video=0,midi=0))->
source(audio=1,video=0,midi=0)

Extract the left channel of a stereo source

stereo.right
(source(audio=2,video=0,midi=0))->
source(audio=1,video=0,midi=0)

Extract the right channel of a stereo source

swap
(?id:string,source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)

Swap two channels of a stereo source.

Source / Input

blank
(?id:string,?duration:float)->source('a)

Produce silence and blank images.

empty
(?id:string)->source(audio='a,video='b,midi='c)

A source that does not produce anything. No silence, no track at all.

fail
(?id:string)->source('a)

Creates a source that fails to produce anything.

in
(?id:string,?start:bool,?on_start:(()->unit),
 ?on_stop:(()->unit),?fallible:bool)->
active_source(audio='#a+1,video='#b,midi='#c)

Create a source from the first available input driver in pulseaudio, portaudio, oss, alsa, blank.

input.alsa
(?id:string,?bufferize:bool,?clock_safe:bool,
 ?device:string,?fallible:bool,?on_start:(()->unit),
 ?on_stop:(()->unit),?start:bool)->
active_source(audio='#a+1,video=0,midi=0)

Stream from an ALSA input device.

input.external
(?id:string,?buffer:float,?channels:int,?max:float,
 ?restart:bool,?restart_on_error:bool,?samplerate:int,
 string)->source(audio='#a+1,video=0,midi=0)

Stream data from an external application.

input.gstreamer.audio
(?id:string,?max:float,?pipeline:string)->
source(audio='#a+1,video=0,midi=0)

Stream audio from a GStreamer pipeline.

input.gstreamer.audio_video
(?id:string,?audio_pipeline:string,?max:float,
 ?pipeline:string,?video_pipeline:string)->
source(audio=2,video=1,midi=0)

Stream audio+video from a GStreamer pipeline.

input.gstreamer.video
(?id:string,?max:float,?pipeline:string)->
source(audio=0,video=1,midi=0)

Stream video from a GStreamer pipeline.

input.harbor
(?id:string,?auth:((string,string)->bool),?buffer:float,
 ?debug:bool,?dumpfile:string,?icy:bool,
 ?icy_metadata_charset:string,?logfile:string,?max:float,
 ?metadata_charset:string,
 ?on_connect:(([(string*string)])->unit),
 ?on_disconnect:(()->unit),?password:string,?port:int,
 ?timeout:float,?user:string,string)->source('a)

Retrieves the given http stream from the harbor.

input.http
(?id:string,?autostart:bool,?bind_address:string,
 ?buffer:float,?debug:bool,?force_mime:string,
 ?logfile:string,?max:float,?new_track_on_metadata:bool,
 ?playlist_mode:string,?poll_delay:float,?timeout:float,
 ?user_agent:string,string)->source('a)

Forwards the given http stream. The relay can be paused/resumed using the start/stop telnet commands.

input.jack
(?id:string,?buffer_size:int,?clock_safe:bool,
 ?server:string)->source(audio='#a+1,video=0,midi=0)

Get stream from jack.

input.keyboard.sdl
(?id:string,?velocity:float)->
source(audio='#a,video=0,midi='#b+1)

WARNING: This is only EXPERIMENTAL!

Play notes from the keyboard.

input.lastfm
(?id:string,?autostart:bool,?bind_address:string,
 ?buffer:float,?debug:bool,?max:float,
 ?new_track_on_metadata:bool,password:string,
 ?poll_delay:float,?timeout:float,user:string,
 ?user_agent:string,string)->
source(audio=2,video=0,midi=0)

Forwards the given lastfm stream. The relay can be paused/resumed using the start/stop telnet commands.

input.oss
(?id:string,?clock_safe:bool,?device:string,
 ?fallible:bool,?on_start:(()->unit),?on_stop:(()->unit),
 ?start:bool)->active_source(audio='#a+1,video=0,midi=0)

Stream from an OSS input device.

input.portaudio
(?id:string,?buflen:int,?clock_safe:bool,?fallible:bool,
 ?on_start:(()->unit),?on_stop:(()->unit),?start:bool)->
source(audio='#a+1,video='#b,midi='#c)

Stream from a portaudio input device.

input.pulseaudio
(?id:string,?client:string,?clock_safe:bool,
 ?device:string,?fallible:bool,?fallible:bool,
 ?on_start:(()->unit),?on_start:(()->unit),
 ?on_stop:(()->unit),?on_stop:(()->unit),?start:bool,
 ?start:bool)->
active_source(audio='#a+1,video='#b,midi='#c)

Stream from a portaudio input device.

input.udp
(?id:string,?buffer:float,host:string,port:int,string)->
active_source('a)

WARNING: This is only EXPERIMENTAL!

Input encoded data from UDP, without any control whatsoever.

noise
(?id:string,?duration:float)->
source(audio='a,video='b,midi=0)

Generate (audio and/or video) white noise.

playlist
(?id:string,?conservative:bool,?default_duration:float,
 ?length:float,?mime_type:string,?mode:string,
 ?prefix:string,?reload:int,?reload_mode:string,
 ?timeout:float,string)->source('a)

Loop on a playlist of URIs.

playlist.once
(?id:string,?random:bool,?on_done:(()->unit),
 ?reload_mode:string,string)->source('a)

Custom playlist source written using the script language. It will read directory or playlist, play all files and stop.

playlist.reloadable
(?id:string,?random:bool,?on_done:(()->unit),string)->
(((?uri:string)->unit)*source('a))

Custom playlist source written using the script language. Will read directory or playlist, play all files and stop. Returns a pair (reload,source) where reload is a function of type (?uri:string)->unit used to reload the source and source is the actual source. The reload function can optionally be called with a new playlist URI. Otherwise, it reloads the previous URI.

playlist.safe
(?id:string,?mime_type:string,?mode:string,
 ?prefix:string,?reload:int,?reload_mode:string,string)->
source('a)

Loop on a playlist of local files, and never fail. In order to do so, it has to check every file at the loading, so the streamer startup may take a few seconds. To avoid this, use a standard playlist, and put only a few local files in a default safe_playlist in order to ensure the liveness of the streamer.

request.dynamic
(?id:string,?conservative:bool,?default_duration:float,
 ?length:float,?timeout:float,(()->request('a)))->
source('a)

Play request dynamically created by a given function.

request.equeue
(?id:string,?conservative:bool,?default_duration:float,
 ?length:float,?timeout:float)->source('a)

Receive URIs from users, and play them. Insertion and deletion possible at any position.

request.queue
(?id:string,?conservative:bool,?default_duration:float,
 ?interactive:bool,?length:float,?queue:[request('a)],
 ?timeout:float)->source('a)

Receive URIs from users, and play them.

saw
(?id:string,?amplitude:float,?duration:float,?float)->
source(audio='#a+1,video=0,midi=0)

Generate a saw wave.

sine
(?id:string,?amplitude:float,?duration:float,?float)->
source(audio='#a+1,video=0,midi=0)

Generate a sine wave.

single
(?id:string,?conservative:bool,?default_duration:float,
 ?length:float,?timeout:float,string)->source('a)

Loop on a request. It never fails if the request is static, meaning that it can be fetched once. Typically, http, ftp, say requests are static, and time is not.

square
(?id:string,?amplitude:float,?duration:float,?float)->
source(audio='#a+1,video=0,midi=0)

Generate a square wave.

Source / Liquidsoap

buffer
(?id:string,?buffer:float,?fallible:bool,?max:float,
 ?on_start:(()->unit),?on_stop:(()->unit),?start:bool,
 source('a))->source('a)

Create a buffer between two different clocks.

buffer.adaptative
(?id:string,?averaging:float,?buffer:float,
 ?fallible:bool,?max:float,?on_start:(()->unit),
 ?on_stop:(()->unit),?start:bool,
 source(audio='#a+1,video=0,midi=0))->
source(audio='#a+1,video=0,midi=0)

WARNING: This is only EXPERIMENTAL!

Create a buffer between two different clocks. The speed of the output is adapted so that no buffer underrun or overrun occurs. This wonderful behavior has a cost: the pitch of the sound might be changed a little.

Source / MIDI Processing

midi.chord
(?id:string,?metadata:string,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c+1)

Generate a chord.

midi.merge_all
(?id:string,?track_out:int,
 source(audio='#a,video='#b,midi='#c+1))->
source(audio='#a,video='#b,midi='#c+1)

Merge all MIDI tracks in one.

midi.remove
(?id:string,[int],source(audio='#a,video='#b,midi='#c+1))->
source(audio='#a,video='#b,midi='#c+1)

Remove MIDI tracks.

Source / Output

out
(source(audio='#a+1,video='#b,midi='#c))->
active_source(audio='#a+1,video='#b,midi='#c)

Output a stream using the 'output.prefered' operator. The input source does not need to be infallible, blank will just be played during failures.

output.alsa
(?id:string,?bufferize:bool,?clock_safe:bool,
 ?device:string,?fallible:bool,?on_start:(()->unit),
 ?on_stop:(()->unit),?start:bool,
 source(audio='#a+1,video='#b,midi='#c))->
active_source(audio='#a+1,video='#b,midi='#c)

Output the source's stream to an ALSA output device.

output.ao
(?id:string,?buffer_size:int,?channels_matrix:string,
 ?clock_safe:bool,?driver:string,?fallible:bool,
 ?on_start:(()->unit),?on_stop:(()->unit),
 ?options:[(string*string)],?start:bool,
 source(audio='#a+1,video='#b,midi='#c))->
active_source(audio='#a+1,video='#b,midi='#c)

Output stream to local sound card using libao.

output.dummy
(?id:string,?fallible:bool,?on_start:(()->unit),
 ?on_stop:(()->unit),?start:bool,source('a))->
active_source('a)

Dummy output for debugging purposes.

output.external
(?id:string,?fallible:bool,?flush:bool,
 ?on_start:(()->unit),?on_stop:(()->unit),
 ?reopen_delay:float,?reopen_on_metadata:bool,
 ?reopen_when:(()->bool),?start:bool,format('a),string,
 source('a))->active_source('a)

Send the stream to a process' standard input.

output.file
(?id:string,?append:bool,?dir_perm:int,?fallible:bool,
 ?flush:bool,?on_close:((string)->unit),
 ?on_start:(()->unit),?on_stop:(()->unit),?perm:int,
 ?reopen_delay:float,?reopen_on_metadata:bool,
 ?reopen_when:(()->bool),?start:bool,format('a),string,
 source('a))->active_source('a)

Output the source stream to a file.

output.graphics
(?id:string,?fallible:bool,?on_start:(()->unit),
 ?on_stop:(()->unit),?start:bool,
 source(audio=0,video=1,midi=0))->
active_source(audio=0,video=1,midi=0)

Display video stream using the Graphics library.

output.gstreamer.audio
(?id:string,?clock_safe:bool,?fallible:bool,
 ?on_start:(()->unit),?on_stop:(()->unit),
 ?pipeline:string,?start:bool,
 source(audio='#a+1,video='#b,midi='#c))->
active_source(audio='#a+1,video='#b,midi='#c)

Output stream to a GStreamer pipeline.

output.gstreamer.audio_video
(?id:string,?asynchronous:bool,?audio_pipeline:string,
 ?blocking:bool,?clock_safe:bool,?fallible:bool,
 ?on_start:(()->unit),?on_stop:(()->unit),
 ?pipeline:string,?start:bool,?video_pipeline:string,
 source(audio='#a+1,video='#b+1,midi='#c))->
active_source(audio='#a+1,video='#b+1,midi='#c)

Output stream to a GStreamer pipeline.

output.gstreamer.video
(?id:string,?clock_safe:bool,?fallible:bool,
 ?on_start:(()->unit),?on_stop:(()->unit),
 ?pipeline:string,?start:bool,
 source(audio='#a,video='#b+1,midi='#c))->
active_source(audio='#a,video='#b+1,midi='#c)

Output stream to a GStreamer pipeline.

output.harbor
(?id:string,?auth:((string,string)->bool),?buffer:int,
 ?burst:int,?chunk:int,?dumpfile:string,?encoding:string,
 ?fallible:bool,?format:string,
 ?headers:[(string*string)],?metaint:int,mount:string,
 ?on_connect:((headers:[(string*string)],uri:string,
               protocol:string,string)->unit),
 ?on_disconnect:((string)->unit),?on_start:(()->unit),
 ?on_stop:(()->unit),?password:string,?port:int,
 ?start:bool,?timeout:float,?url:string,?user:string,
 format('a),source('a))->active_source('a)

Encode and output the stream using the harbor server.

output.icecast
(?id:string,?chunked:bool,?connection_timeout:float,
 ?description:string,?dumpfile:string,?encoding:string,
 ?fallible:bool,?format:string,?genre:string,
 ?headers:[(string*string)],?host:string,
 ?icy_metadata:string,?mount:string,?name:string,
 ?on_connect:(()->unit),?on_disconnect:(()->unit),
 ?on_error:((string)->float),?on_start:(()->unit),
 ?on_stop:(()->unit),?password:string,?port:int,
 ?protocol:string,?public:bool,?start:bool,
 ?timeout:float,?url:string,?user:string,?verb:string,
 format('a),source('a))->active_source('a)

Encode and output the stream to an icecast2 or shoutcast server.

output.jack
(?id:string,?buffer_size:int,?clock_safe:bool,
 ?fallible:bool,?on_start:(()->unit),?on_stop:(()->unit),
 ?server:string,?start:bool,
 source(audio='#a+1,video=0,midi=0))->
active_source(audio='#a+1,video=0,midi=0)

Output stream to jack.

output.oss
(?id:string,?clock_safe:bool,?device:string,
 ?fallible:bool,?on_start:(()->unit),?on_stop:(()->unit),
 ?start:bool,source(audio='#a+1,video='#b,midi='#c))->
active_source(audio='#a+1,video='#b,midi='#c)

Output the source's stream to an OSS output device.

output.portaudio
(?id:string,?buflen:int,?clock_safe:bool,?fallible:bool,
 ?on_start:(()->unit),?on_stop:(()->unit),?start:bool,
 source(audio='#a+1,video='#b,midi='#c))->
active_source(audio='#a+1,video='#b,midi='#c)

Output the source's stream to a portaudio output device.

output.prefered
(?id:string,?fallible:bool,?on_start:(()->unit),
 ?on_stop:(()->unit),?start:bool,
 source(audio='#a+1,video='#b,midi='#c))->
active_source(audio='#a+1,video='#b,midi='#c)

Output to local audio card using the first available driver in pulseaudio, portaudio, oss, alsa, ao, dummy.

output.pulseaudio
(?id:string,?client:string,?clock_safe:bool,
 ?device:string,?fallible:bool,?on_start:(()->unit),
 ?on_stop:(()->unit),?start:bool,
 source(audio='#a+1,video='#b,midi='#c))->
active_source(audio='#a+1,video='#b,midi='#c)

Output the source's stream to a portaudio output device.

output.sdl
(?id:string,?fallible:bool,?on_start:(()->unit),
 ?on_stop:(()->unit),?start:bool,
 source(audio=0,video=1,midi=0))->
active_source(audio=0,video=1,midi=0)

Display a video using SDL.

output.udp
(?id:string,?fallible:bool,host:string,
 ?on_start:(()->unit),?on_stop:(()->unit),port:int,
 ?start:bool,format('a),source('a))->active_source('a)

WARNING: This is only EXPERIMENTAL!

Output encoded data to UDP, without any control whatsoever.

Source / Sound Processing

add
(?id:string,?normalize:bool,?weights:[int],
 [source(audio='#a,video='#b,midi=0)])->
source(audio='#a,video='#b,midi=0)

Mix sources, with optional normalization. Only relay metadata from the first source that is effectively summed.

amplify
(?id:string,?override:string,'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Multiply the amplitude of the signal.

bpm
(?id:string,?every:float,((float)->unit),
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Detect the BPM.

clip
(?id:string,?max:float,?min:float,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Clip sound.

comb
(?id:string,?delay:float,?feedback:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Comb filter.

compand
(?id:string,?mu:float,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Compand the signal

compress
(?id:string,?attack:'a,?gain:'b,?knee:'c,?ratio:float,
 ?release:'d,?rms_window:float,?threshold:'e,
 source(audio='#f,video='#g,midi='#h))->
source(audio='#f,video='#g,midi='#h)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

Compress the signal.

compress.exponential
(?id:string,?mu:float,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Exponential compressor.

cross
(?id:string,?active:bool,?conservative:bool,
 ?duration:float,?inhibit:float,?minimum:float,
 ?override:string,((source('a),source('a))->source('a)),
 source('a))->source('a)

Generic cross operator, allowing the composition of the N last seconds of a track with the beginning of the next track.

echo
(?id:string,?delay:'a,?feedback:'b,?ping_pong:bool,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Add echo.

fade.final
(?id:string,?duration:float,?override_duration:string,
 ?override_type:string,?type:string,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Fade a stream to silence.

fade.in
(?id:string,?duration:float,?override_duration:string,
 ?override_type:string,?type:string,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Fade the beginning of tracks.

fade.initial
(?id:string,?duration:float,?override_duration:string,
 ?override_type:string,?type:string,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Fade the beginning of a stream.

fade.out
(?id:string,?duration:float,?override_duration:string,
 ?override_type:string,?type:string,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Fade the end of tracks.

filter
(?id:string,freq:'a,mode:string,?q:'b,?wetness:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Perform several kinds of filtering on the signal

filter.fir
(?id:string,beta:float,?coeffs:int,frequency:float,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Low-pass FIR filter.

filter.iir.butterworth.bandpass
(?id:string,frequency1:float,frequency2:float,?order:int,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

IIR filter

filter.iir.butterworth.bandstop
(?id:string,frequency1:float,frequency2:float,?order:int,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

IIR filter

filter.iir.butterworth.high
(?id:string,frequency:float,?order:int,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

IIR filter

filter.iir.butterworth.low
(?id:string,frequency:float,?order:int,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

IIR filter

filter.iir.eq.allpass
(?id:string,?bandwidth:float,frequency:float,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

All pass biquad filter.

filter.iir.eq.bandpass
(?id:string,frequency:float,?q:float,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Band pass biquad filter.

filter.iir.eq.high
(?id:string,frequency:float,?q:float,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

High pass biquad filter.

filter.iir.eq.highshelf
(?id:string,frequency:float,?slope:float,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

High shelf biquad filter.

filter.iir.eq.low
(?id:string,frequency:float,?q:float,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Low pass biquad filter.

filter.iir.eq.lowshelf
(?id:string,frequency:float,?slope:float,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Low shelf biquad filter.

filter.iir.eq.notch
(?id:string,frequency:float,?q:float,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Band pass biquad filter.

filter.iir.eq.peak
(?id:string,frequency:float,?gain:float,?q:float,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Peak EQ biquad filter.

filter.iir.resonator.allpass
(?id:string,frequency:float,?q:float,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

IIR filter

filter.iir.resonator.bandpass
(?id:string,frequency:float,?q:float,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

IIR filter

filter.iir.resonator.bandstop
(?id:string,frequency:float,?q:float,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

IIR filter

flanger
(?id:string,?delay:float,?feedback:'a,?freq:'b,?phase:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Flanger effect.

helium
(source(audio='#a+1,video=0,midi=0))->
source(audio='#a+1,video=0,midi=0)

Increases the pitch, making voices sound like on helium.

ladspa.alias
(?id:string,?aliasing_level:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Aliasing by Steve Harris <steve(at)plugin.org.uk>.

ladspa.allpass_c
(?id:string,decay_time:'a,delay_time:'b,max_delay:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Allpass delay line, cubic spline interpolation by Andy Wingo <wingo at pobox dot com>.

ladspa.allpass_l
(?id:string,decay_time:'a,delay_time:'b,max_delay:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Allpass delay line, linear interpolation by Andy Wingo <wingo at pobox dot com>.

ladspa.allpass_n
(?id:string,decay_time:'a,delay_time:'b,max_delay:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Allpass delay line, noninterpolating by Andy Wingo <wingo at pobox dot com>.

ladspa.amp
(?id:string,?amps_gain:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Simple amplifier by Steve Harris <steve(at)plugin.org.uk>.

ladspa.amp_mono
(?id:string,?gain:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Mono Amplifier by Richard Furse (LADSPA example plugins).

ladspa.amp_stereo
(?id:string,?gain:'a,source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a is either float or ()->float

Stereo Amplifier by Richard Furse (LADSPA example plugins).

ladspa.ampitchshift
(?id:string,?buffer_size:int,?pitch_shift:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

AM pitchshifter by Steve Harris <steve(at)plugin.org.uk>.

ladspa.ampvts
(?id:string,?attack:'a,?bass:'b,?bright:'c,?gain:'d,
 ?lowcut:'e,?mid:'f,?over:int,?power:'g,?squash:'h,
 ?tonestack:int,?treble:'i,
 source(audio='#j,video='#k,midi='#l))->
source(audio='#j,video='#k,midi='#l)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i is either float or ()->float

C* AmpVTS - Idealised guitar amplification by Tim Goetze <tim(at)quitte.de>, David Yeh <dtyeh(at)ccrma.stanford.edu>.

ladspa.analogue
(?id:string,dco1_attack:'a,dco1_decay:'b,
 dco1_lfo_frequency_modulation:'c,
 dco1_lfo_pulse_width_modulation:int,dco1_octave:'d,
 dco1_release:'e,dco1_sustain:'f,dco1_waveform:'g,
 dco2_attack:'h,dco2_decay:'i,
 dco2_lfo_frequency_modulation:'j,
 dco2_lfo_pulse_width_modulation:int,dco2_octave:'k,
 dco2_release:'l,dco2_sustain:'m,dco2_waveform:'n,
 filter_attack:'o,filter_decay:'p,
 filter_envelope_modulation:'q,filter_lfo_modulation:'r,
 filter_release:'s,filter_resonance:'t,filter_sustain:'u,
 frequency:'v,gate:bool,lfo_fadein:'w,lfo_frequency:'x,
 velocity:'y)->source(audio='#z,video='#aa,midi='#ab)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o, 'p, 'q, 'r, 's, 't, 'u, 'v, 'w, 'x, 'y is either float or ()->float

Analogue Voice by CMT (http://www.ladspa.org/cmt, plugin by David A. Bartold).

ladspa.analogueosc
(?id:string,?frequency:'a,?instability:'b,?warmth:'c,
 ?waveform:int)->source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Analogue Oscillator by Steve Harris <steve(at)plugin.org.uk>.

ladspa.artificiallatency
(?id:string,?delay:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Artificial latency by Steve Harris <steve(at)plugin.org.uk>.

ladspa.autofilter
(?id:string,?f:'a,?filter:int,?gain:'b,?lfo_env:'c,
 ?mode:int,?over:int,?q:'d,?range:'e,?rate:'f,
 source(audio='#g,video='#h,midi='#i))->
source(audio='#g,video='#h,midi='#i)
where 'a, 'b, 'c, 'd, 'e, 'f is either float or ()->float

C* AutoFilter - Modulated filter cascade by Tim Goetze <tim(at)quitte.de>.

ladspa.autophaser
(?id:string,?attack_time:'a,?decay_time:'b,?feedback:'c,
 ?modulation_depth:'d,?spread:'e,
 source(audio='#f,video='#g,midi='#h))->
source(audio='#f,video='#g,midi='#h)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

Auto phaser by Steve Harris <steve(at)plugin.org.uk>.

ladspa.autowah
(?id:string,?decay:'a,?drive:'b,?freq:'c,?mix:'d,
 ?range:'e,source(audio='#f,video='#g,midi='#h))->
source(audio='#f,video='#g,midi='#h)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

Auto Wah by Fons Adriaensen <fons(at)kokkinizita.net>.

ladspa.bandpass_a_iir
(?id:string,?bandwidth:'a,?center_frequency:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Glame Bandpass Analog Filter by Alexander Ehlert <mag(at)glame.de>.

ladspa.bandpass_iir
(?id:string,?bandwidth:'a,?center_frequency:'b,
 ?stages:int,source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Glame Bandpass Filter by Alexander Ehlert <mag(at)glame.de>.

ladspa.butthigh_iir
(?id:string,?cutoff_frequency:'a,?resonance:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

GLAME Butterworth Highpass by Alexander Ehlert <mag(at)glame.de>.

ladspa.buttlow_iir
(?id:string,?cutoff_frequency:'a,?resonance:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

GLAME Butterworth Lowpass by Alexander Ehlert <mag(at)glame.de>.

ladspa.cabinetiv
(?id:string,?gain:'a,?model:int,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

C* CabinetIV - Idealised loudspeaker cabinet by Tim Goetze <tim(at)quitte.de>.

ladspa.canyon_delay
(?id:string,left_to_right_feedback:'a,
 left_to_right_time:'b,low_pass_cutoff:'c,
 right_to_left_feedback:'d,right_to_left_time:'e,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

Canyon Delay by CMT (http://www.ladspa.org/cmt, plugin by David A. Bartold).

ladspa.ceo
(?id:string,?damping:'a,?ppm:'b,?volume:'c)->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

C* CEO - Chief Executive Oscillator by Tim Goetze <tim(at)quitte.de>.

ladspa.chebstortion
(?id:string,?distortion:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Chebyshev distortion by Steve Harris <steve(at)plugin.org.uk>.

ladspa.chorusi
(?id:string,?blend:'a,?feedback:'b,?feedforward:'c,
 ?rate:'d,?t:'e,?width:'f,
 source(audio='#g,video='#h,midi='#i))->
source(audio='#g,video='#h,midi='#i)
where 'a, 'b, 'c, 'd, 'e, 'f is either float or ()->float

C* ChorusI - Mono chorus/flanger by Tim Goetze <tim(at)quitte.de>.

ladspa.click
(?id:string,?bpm:'a,?damping:'b,?model:int,?volume:'c)->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

C* Click - Metronome by Tim Goetze <tim(at)quitte.de>.

ladspa.comb
(?id:string,?band_separation:'a,?feedback:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Comb Filter by Steve Harris <steve(at)plugin.org.uk>.

ladspa.comb_c
(?id:string,decay_time:'a,delay_time:'b,max_delay:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Comb delay line, cubic spline interpolation by Andy Wingo <wingo at pobox dot com>.

ladspa.comb_l
(?id:string,decay_time:'a,delay_time:'b,max_delay:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Comb delay line, linear interpolation by Andy Wingo <wingo at pobox dot com>.

ladspa.comb_n
(?id:string,decay_time:'a,delay_time:'b,max_delay:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Comb delay line, noninterpolating by Andy Wingo <wingo at pobox dot com>.

ladspa.compress
(?id:string,?attack:'a,?gain:'b,?measure:int,?mode:int,
 ?release:'c,?strength:'d,?threshold:'e,
 source(audio='#f,video='#g,midi='#h))->
source(audio='#f,video='#g,midi='#h)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

C* Compress - Compressor and saturating limiter by Tim Goetze <tim(at)quitte.de>.

ladspa.compress_peak
(?id:string,?compression_ratio:'a,
 ?output_envelope_attack:'b,?output_envelope_decay:'c,
 ?threshold:'d,source(audio='#e,video='#f,midi='#g))->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

Simple Compressor (Peak Envelope Tracking) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.compress_rms
(?id:string,?compression_ratio:'a,
 ?output_envelope_attack:'b,?output_envelope_decay:'c,
 ?threshold:'d,source(audio='#e,video='#f,midi='#g))->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

Simple Compressor (RMS Envelope Tracking) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.compressx2
(?id:string,?attack:'a,?gain:'b,?measure:int,?mode:int,
 ?release:'c,?strength:'d,?threshold:'e,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

C* CompressX2 - Stereo compressor and saturating limiter by Tim Goetze <tim(at)quitte.de>.

ladspa.const
(?id:string,?signal_amplitude:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Constant Signal Generator by Steve Harris <steve(at)plugin.org.uk>.

ladspa.crossoverdist
(?id:string,?crossover_amplitude:'a,?smoothing:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Crossover distortion by Steve Harris <steve(at)plugin.org.uk>.

ladspa.dcremove
(?id:string,source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

DC Offset Remover by Steve Harris <steve(at)plugin.org.uk>.

ladspa.decay
(?id:string,decay_time:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Exponential signal decay by Andy Wingo <wingo at pobox dot com>.

ladspa.decimator
(?id:string,?bit_depth:'a,?sample_rate:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Decimator by Steve Harris <steve(at)plugin.org.uk>.

ladspa.declip
(?id:string,source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Declipper by Steve Harris <steve(at)plugin.org.uk>.

ladspa.delay_001s
(?id:string,?delay:'a,?dry_wet_balance:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Echo Delay Line (Maximum Delay 0.01s) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.delay_01s
(?id:string,?delay:'a,?dry_wet_balance:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Echo Delay Line (Maximum Delay 0.1s) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.delay_1s
(?id:string,?delay:'a,?dry_wet_balance:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Echo Delay Line (Maximum Delay 1s) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.delay_5s
(?id:string,?delay:'a,?dry_wet_balance:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Echo Delay Line (Maximum Delay 5s) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.delay_60s
(?id:string,?delay:'a,?dry_wet_balance:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Echo Delay Line (Maximum Delay 60s) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.delay_c
(?id:string,delay_time:'a,max_delay:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Simple delay line, cubic spline interpolation by Andy Wingo <wingo at pobox dot com>.

ladspa.delay_l
(?id:string,delay_time:'a,max_delay:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Simple delay line, linear interpolation by Andy Wingo <wingo at pobox dot com>.

ladspa.delay_n
(?id:string,delay_time:'a,max_delay:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Simple delay line, noninterpolating by Andy Wingo <wingo at pobox dot com>.

ladspa.delayorama
(?id:string,?amplitude_change:'a,?amplitude_random:'b,
 ?delay_change:'c,?delay_random:'d,?delay_range:'e,
 ?dry_wet_mix:'f,?feedback:'g,?first_delay:'h,
 ?input_gain:'i,?number_of_taps:int,?random_seed:int,
 source(audio='#j,video='#k,midi='#l))->
source(audio='#j,video='#k,midi='#l)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i is either float or ()->float

Delayorama by Steve Harris <steve(at)plugin.org.uk>.

ladspa.diode
(?id:string,?mode:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Diode Processor by Steve Harris <steve(at)plugin.org.uk>.

ladspa.disintegrator
(?id:string,?multiplier:'a,?probability:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Disintegrator by CMT (http://www.ladspa.org/cmt, plugin by Nathaniel Virgo).

ladspa.divider
(?id:string,?denominator:int,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Audio Divider (Suboctave Generator) by Steve Harris <steve(at)plugin.org.uk>.

ladspa.dj_eq
(?id:string,?hi_gain:'a,?lo_gain:'b,?mid_gain:'c,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a, 'b, 'c is either float or ()->float

DJ EQ by Steve Harris <steve(at)plugin.org.uk>.

ladspa.dj_eq_mono
(?id:string,?hi_gain:'a,?lo_gain:'b,?mid_gain:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

DJ EQ (mono) by Steve Harris <steve(at)plugin.org.uk>.

ladspa.djflanger
(?id:string,?feedback:'a,?lfo_depth:'b,?lfo_period:'c,
 lfo_sync:'d,source(audio='#e,video='#f,midi='#g))->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

DJ flanger by Steve Harris <steve(at)plugin.org.uk>.

ladspa.dysoncompress
(?id:string,?compression_ratio:'a,
 ?fast_compression_ratio:'b,?peak_limit:'c,
 ?release_time:'d,source(audio='#e,video='#f,midi='#g))->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

Dyson compressor by Steve Harris <steve(at)plugin.org.uk>.

ladspa.eq10
(?id:string,?_125_hz:'a,?_16_khz:'b,?_1_khz:'c,
 ?_250_hz:'d,?_2_khz:'e,?_31_hz:'f,?_4_khz:'g,
 ?_500_hz:'h,?_63_hz:'i,?_8_khz:'j,
 source(audio='#k,video='#l,midi='#m))->
source(audio='#k,video='#l,midi='#m)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j is either float or ()->float

C* Eq10 - 10-band equaliser by Tim Goetze <tim(at)quitte.de>.

ladspa.eq10x2
(?id:string,?_125_hz:'a,?_16_khz:'b,?_1_khz:'c,
 ?_250_hz:'d,?_2_khz:'e,?_31_hz:'f,?_4_khz:'g,
 ?_500_hz:'h,?_63_hz:'i,?_8_khz:'j,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j is either float or ()->float

C* Eq10X2 - Stereo 10-band equaliser by Tim Goetze <tim(at)quitte.de>.

ladspa.eq4p
(?id:string,?af:'a,?again:'b,?amode:int,?aq:'c,?bf:'d,
 ?bgain:'e,?bmode:int,?bq:'f,?cf:'g,?cgain:'h,?cmode:int,
 ?cq:'i,?df:'j,?dgain:'k,?dmode:int,?dq:'l,
 source(audio='#m,video='#n,midi='#o))->
source(audio='#m,video='#n,midi='#o)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l is either float or ()->float

C* Eq4p - 4-band parametric equaliser by Tim Goetze <tim(at)quitte.de>.

ladspa.expand_peak
(?id:string,?expansion_ratio:'a,
 ?output_envelope_attack:'b,?output_envelope_decay:'c,
 ?threshold:'d,source(audio='#e,video='#f,midi='#g))->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

Simple Expander (Peak Envelope Tracking) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.expand_rms
(?id:string,?expansion_ratio:'a,
 ?output_envelope_attack:'b,?output_envelope_decay:'c,
 ?threshold:'d,source(audio='#e,video='#f,midi='#g))->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

Simple Expander (RMS Envelope Tracking) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.faddelay
(?id:string,?delay:'a,?feedback:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Fractionally Addressed Delay Line by Steve Harris <steve(at)plugin.org.uk>.

ladspa.fastlookaheadlimiter
(?id:string,?input_gain:'a,?limit:'b,?release_time:'c,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a, 'b, 'c is either float or ()->float

Fast Lookahead limiter by Steve Harris <steve(at)plugin.org.uk>.

ladspa.fbdelay_001s
(?id:string,?delay:'a,?dry_wet_balance:'b,?feedback:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Feedback Delay Line (Maximum Delay 0.01s) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.fbdelay_01s
(?id:string,?delay:'a,?dry_wet_balance:'b,?feedback:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Feedback Delay Line (Maximum Delay 0.1s) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.fbdelay_1s
(?id:string,?delay:'a,?dry_wet_balance:'b,?feedback:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Feedback Delay Line (Maximum Delay 1s) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.fbdelay_5s
(?id:string,?delay:'a,?dry_wet_balance:'b,?feedback:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Feedback Delay Line (Maximum Delay 5s) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.fbdelay_60s
(?id:string,?delay:'a,?dry_wet_balance:'b,?feedback:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Feedback Delay Line (Maximum Delay 60s) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.flanger
(?id:string,?delay_base:'a,?feedback:'b,
 ?lfo_frequency:'c,?max_slowdown:'d,
 source(audio='#e,video='#f,midi='#g))->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

Flanger by Steve Harris <steve(at)plugin.org.uk>.

ladspa.fmosc
(?id:string,?waveform:int,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

FM Oscillator by Steve Harris <steve(at)plugin.org.uk>.

ladspa.foldover
(?id:string,?drive:'a,?skew:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Foldover distortion by Steve Harris <steve(at)plugin.org.uk>.

ladspa.fourbyfourpole
(?id:string,?feedback_1:'a,?feedback_2:'b,?feedback_3:'c,
 ?feedback_4:'d,?frequency_1:'e,?frequency_2:'f,
 ?frequency_3:'g,?frequency_4:'h,
 source(audio='#i,video='#j,midi='#k))->
source(audio='#i,video='#j,midi='#k)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h is either float or ()->float

4 x 4 pole allpass by Steve Harris <steve(at)plugin.org.uk>.

ladspa.foverdrive
(?id:string,?drive_level:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Fast overdrive by Steve Harris <steve(at)plugin.org.uk>.

ladspa.fractal
(?id:string,?hp:'a,?mode:int,?rate:'b,?volume:'c,?x:'d,
 ?y:'e,?z:'f)->source(audio='#g,video='#h,midi='#i)
where 'a, 'b, 'c, 'd, 'e, 'f is either float or ()->float

C* Fractal - Audio stream from deterministic chaos by Tim Goetze <tim(at)quitte.de>.

ladspa.freeverb3
(?id:string,?damping:'a,?dry_level:'b,?freeze_mode:bool,
 ?room_size:'c,?wet_level:'d,?width:'e,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

Freeverb (Version 3) by CMT (http://www.ladspa.org/cmt, plugin by Jezar at Dreampoint, ported by Richard W.E. Furse).

ladspa.freqtracker
(?id:string,?tracking_speed:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Frequency tracker by Steve Harris <steve(at)plugin.org.uk>.

ladspa.g2reverb
(?id:string,?damping:'a,?dry_sound:'b,?input_bw:'c,
 ?reflections:'d,?reverb_tail:'e,?reverb_time:'f,
 ?room_size:'g,source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g is either float or ()->float

Stereo reverb by Fons Adriaensen <fons(at)linuxaudio.org>.

ladspa.gate
(?id:string,?attack:'a,?decay:'b,?hf_key_filter:'c,
 ?hold:'d,?lf_key_filter:'e,?output_select:int,?range:'f,
 ?threshold:'g,source(audio='#h,video='#i,midi='#j))->
source(audio='#h,video='#i,midi='#j)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g is either float or ()->float

Gate by Steve Harris <steve(at)plugin.org.uk>.

ladspa.giantflange
(?id:string,?delay_1_range:'a,?delay_2_range:'b,
 double_delay:'c,?dry_wet_level:'d,?feedback:'e,
 ?lfo_frequency_1:'f,?lfo_frequency_2:'g,
 source(audio='#h,video='#i,midi='#j))->
source(audio='#h,video='#i,midi='#j)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g is either float or ()->float

Giant flange by Steve Harris <steve(at)plugin.org.uk>.

ladspa.gong
(?id:string,?inner_damping:'a,?inner_size_1:'b,
 ?inner_size_2:'c,?inner_size_3:'d,?inner_size_4:'e,
 ?inner_stiffness_1:'f,?inner_stiffness_1__:'g,
 ?inner_stiffness_2:'h,?inner_stiffness_2__:'i,
 ?inner_stiffness_3:'j,?inner_stiffness_3__:'k,
 ?inner_stiffness_4:'l,?inner_stiffness_4__:'m,
 ?mic_position:'n,?outer_damping:'o,?outer_size_1:'p,
 ?outer_size_2:'q,?outer_size_3:'r,?outer_size_4:'s,
 ?outer_stiffness_1:'t,?outer_stiffness_1__:'u,
 ?outer_stiffness_2:'v,?outer_stiffness_2__:'w,
 ?outer_stiffness_3:'x,?outer_stiffness_3__:'y,
 ?outer_stiffness_4:'z,?outer_stiffness_4__:'aa,
 source(audio='#ab,video='#ac,midi='#ad))->
source(audio='#ab,video='#ac,midi='#ad)
where
  'a, 'aa, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o, 'p, 'q, 'r, 's, 't, 'u, 'v, 'w, 'x, 'y, 'z is either float or ()->float

Gong model by Steve Harris <steve(at)plugin.org.uk>.

ladspa.gongbeater
(?id:string,?impulse_gain:'a,?strike_duration:'b,
 ?strike_gain:'c,source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Gong beater by Steve Harris <steve(at)plugin.org.uk>.

ladspa.grain_scatter
(?id:string,?density:'a,?grain_attack:'b,
 ?grain_length:'c,?scatter:'d,
 source(audio='#e,video='#f,midi='#g))->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

Granular Scatter Processor by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.gsm
(?id:string,?dry_wet_mix:'a,?error_rate:'b,
 ?number_of_passes:int,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

GSM simulator by Steve Harris <steve(at)plugin.org.uk>.

ladspa.hard_gate
(?id:string,?threshold:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Hard Gate by CMT (http://www.ladspa.org/cmt, plugin by Nathaniel Virgo).

ladspa.hardlimiter
(?id:string,?db_limit:'a,?residue_level:'b,?wet_level:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Hard Limiter by Marcus Andersson.

ladspa.harmonicgen
(?id:string,?_10th_harmonic_magnitude:'a,
 ?_2nd_harmonic_magnitude:'b,?_3rd_harmonic_magnitude:'c,
 ?_4th_harmonic_magnitude:'d,?_5th_harmonic_magnitude:'e,
 ?_6th_harmonic_magnitude:'f,?_7th_harmonic_magnitude:'g,
 ?_8th_harmonic_magnitude:'h,?_9th_harmonic_magnitude:'i,
 ?fundamental_magnitude:'j,
 source(audio='#k,video='#l,midi='#m))->
source(audio='#k,video='#l,midi='#m)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j is either float or ()->float

Harmonic generator by Steve Harris <steve(at)plugin.org.uk>.

ladspa.hermesfilter
(?id:string,?band_1_gain:'a,?band_2_gain:'b,
 ?band_3_gain:'c,?delay1_feedback:'d,?delay1_length:'e,
 ?delay1_wetness:'f,?delay2_feedback:'g,
 ?delay2_length:'h,?delay2_wetness:'i,
 ?delay3_feedback:'j,?delay3_length:'k,
 ?delay3_wetness:'l,?dist1_drive:'m,?dist2_drive:'n,
 ?dist3_drive:'o,?filt1_freq:'p,?filt1_lfo1_level:'q,
 ?filt1_lfo2_level:'r,?filt1_q:'s,?filt1_resonance:'t,
 ?filt1_type:int,?filt2_freq:'u,?filt2_lfo1_level:'v,
 ?filt2_lfo2_level:'w,?filt2_q:'x,?filt2_resonance:'y,
 ?filt2_type:int,?filt3_freq:'z,?filt3_lfo1_level:'aa,
 ?filt3_lfo2_level:'ab,?filt3_q:'ac,?filt3_resonance:'ad,
 ?filt3_type:int,?input_gain:'ae,?lfo1_freq:'af,
 ?lfo1_wave:int,?lfo2_freq:'ag,?lfo2_wave:int,
 ?osc1_freq:'ah,?osc1_gain:'ai,?osc1_wave:int,
 ?osc2_freq:'aj,?osc2_gain:'ak,?osc2_wave:int,
 ?ringmod_1_depth:'al,?ringmod_2_depth:'am,
 ?ringmod_3_depth:'an,?rm1_gain:'ao,?rm2_gain:'ap,
 ?rm3_gain:'aq,?xover_lower_freq:'ar,
 ?xover_upper_freq:'as,
 source(audio='#at,video='#au,midi='#av))->
source(audio='#at,video='#au,midi='#av)
where
  'a, 'aa, 'ab, 'ac, 'ad, 'ae, 'af, 'ag, 'ah, 'ai, 'aj, 'ak, 'al, 'am, 'an, 'ao, 'ap, 'aq, 'ar, 'as, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o, 'p, 'q, 'r, 's, 't, 'u, 'v, 'w, 'x, 'y, 'z is either float or ()->float

Hermes Filter by Steve Harris <steve(at)plugin.org.uk>.

ladspa.highpass_iir
(?id:string,?cutoff_frequency:'a,?stages:int,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Glame Highpass Filter by Alexander Ehlert <mag(at)glame.de>.

ladspa.hpf
(?id:string,?cutoff_frequency:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

High Pass Filter (One Pole) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.identity_audio
(?id:string,source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Identity (Audio) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.imp
(?id:string,?gain:'a,?high_latency_mode:int,
 ?impulse_id:int,source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Impulse convolver by Steve Harris <steve(at)plugin.org.uk>.

ladspa.impulse_fc
(?id:string,frequency:'a)->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Nonbandlimited single-sample impulses (Frequency: Control) by Andy Wingo <wingo at pobox dot com>.

ladspa.inv
(?id:string,source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Inverter by Steve Harris <steve(at)plugin.org.uk>.

ladspa.karaoke
(?id:string,?vocal_volume:'a,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a is either float or ()->float

Karaoke by Steve Harris <steve(at)plugin.org.uk>.

ladspa.lcrdelay
(?id:string,?c_delay:'a,?c_level:'b,?dry_wet_level:'c,
 ?feedback:'d,?high_damp:'e,?l_delay:'f,?l_level:'g,
 ?low_damp:'h,?r_delay:'i,?r_level:'j,?spread:'k,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k is either float or ()->float

L/C/R Delay by Steve Harris <steve(at)plugin.org.uk>.

ladspa.lfophaser
(?id:string,?feedback:'a,?lfo_depth:'b,?lfo_rate:'c,
 ?spread:'d,source(audio='#e,video='#f,midi='#g))->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

LFO Phaser by Steve Harris <steve(at)plugin.org.uk>.

ladspa.limit_peak
(?id:string,?output_envelope_attack:'a,
 ?output_envelope_decay:'b,?threshold:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Simple Limiter (Peak Envelope Tracking) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.limit_rms
(?id:string,?output_envelope_attack:'a,
 ?output_envelope_decay:'b,?threshold:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Simple Limiter (RMS Envelope Tracking) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.lofi
(?id:string,crackling:int,opamp_bandwidth_limiting:'a,
 powersupply_overloading:'b,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a, 'b is either float or ()->float

Lo Fi by CMT (http://www.ladspa.org/cmt, plugin by David A. Bartold).

ladspa.logistic
(?id:string,?r_parameter:'a,?step_frequency:'b)->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Logistic Map Control Generator by CMT (http://www.ladspa.org/cmt, plugin by Nathaniel Virgo).

ladspa.lowpass_iir
(?id:string,?cutoff_frequency:'a,?stages:int,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Glame Lowpass Filter by Alexander Ehlert <mag(at)glame.de>.

ladspa.lpf
(?id:string,?cutoff_frequency:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Low Pass Filter (One Pole) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.lsfilter
(?id:string,?cutoff_frequency:'a,?filter_type:int,
 ?resonance:'b,source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

LS Filter by Steve Harris <steve(at)plugin.org.uk>.

ladspa.matrixmsst
(?id:string,?width:'a,source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a is either float or ()->float

Matrix: MS to Stereo by Steve Harris <steve(at)plugin.org.uk>.

ladspa.matrixspatialiser
(?id:string,?width:int,source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)

Matrix Spatialiser by Joern Nettingsmeier <nettings(at)folkwang-hochschule.de>.

ladspa.matrixstms
(?id:string,source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)

Matrix: Stereo to MS by Steve Harris <steve(at)plugin.org.uk>.

ladspa.mbeq
(?id:string,?_10000hz_gain:'a,?_100hz_gain:'b,
 ?_1250hz_gain:'c,?_156hz_gain:'d,?_1750hz_gain:'e,
 ?_20000hz_gain:'f,?_220hz_gain:'g,?_2500hz_gain:'h,
 ?_311hz_gain:'i,?_3500hz_gain:'j,?_440hz_gain:'k,
 ?_5000hz_gain:'l,?_50hz_gain:'m,?_622hz_gain:'n,
 ?_880hz_gain:'o,source(audio='#p,video='#q,midi='#r))->
source(audio='#p,video='#q,midi='#r)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o is either float or ()->float

Multiband EQ by Steve Harris <steve(at)plugin.org.uk>.

ladspa.multivoicechorus
(?id:string,?delay_base:'a,?detune:'b,?lfo_frequency:'c,
 ?number_of_voices:int,?output_attenuation:'d,
 ?voice_separation:'e,
 source(audio='#f,video='#g,midi='#h))->
source(audio='#f,video='#g,midi='#h)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

Multivoice Chorus by Steve Harris <steve(at)plugin.org.uk>.

ladspa.narrower
(?id:string,?mode:int,?strength:'a,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a is either float or ()->float

C* Narrower - Stereo image width reduction by Tim Goetze <tim(at)quitte.de>.

ladspa.noise_source_white
(?id:string,?amplitude:'a)->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Noise Source (White) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.noise_white
(?id:string,?amplitude:'a)->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

White Noise Source by Richard Furse (LADSPA example plugins).

ladspa.noisegate
(?id:string,?attack:'a,?close:'b,?mains:int,?open:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

C* NoiseGate - Attenuate hum and noise by Tim Goetze <tim(at)quitte.de>.

ladspa.notch_iir
(?id:string,?bandwidth:'a,?center_frequency:'b,
 ?stages:int,source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Mag's Notch Filter by Alexander Ehlert <mag(at)glame.de>.

ladspa.null_ao
(?id:string)->source(audio='#a,video='#b,midi='#c)

Null (Audio Output) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.organ
(?id:string,_16th_harmonic:'a,_2_2_3rd_harmonic:'b,
 _2nd_harmonic:'c,_4th_harmonic:'d,_5_1_3rd_harmonic:'e,
 _8th_harmonic:'f,attack_hi:'g,attack_lo:'h,brass:bool,
 decay_hi:'i,decay_lo:'j,flute:bool,frequency:'k,
 gate:bool,reed:bool,release_hi:'l,release_lo:'m,
 sustain_hi:'n,sustain_lo:'o,velocity:'p)->
source(audio='#q,video='#r,midi='#s)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o, 'p is either float or ()->float

Organ by CMT (http://www.ladspa.org/cmt, plugin by David A. Bartold).

ladspa.parametric1
(?id:string,?bandwidth_1:'a,?bandwidth_2:'b,
 ?bandwidth_3:'c,?bandwidth_4:'d,?filter:bool,
 ?frequency_1:'e,?frequency_2:'f,?frequency_3:'g,
 ?frequency_4:'h,?gain:'i,?gain_1:'j,?gain_2:'k,
 ?gain_3:'l,?gain_4:'m,?section_1:bool,?section_2:bool,
 ?section_3:bool,?section_4:bool,
 source(audio='#n,video='#o,midi='#p))->
source(audio='#n,video='#o,midi='#p)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm is either float or ()->float

4-band parametric filter by Fons Adriaensen <fons(at)kokkinizita.net>.

ladspa.phasemod
(?id:string,dco1_attack:'a,dco1_decay:'b,
 dco1_modulation:'c,dco1_octave:'d,dco1_release:'e,
 dco1_sustain:'f,dco1_waveform:int,dco2_attack:'g,
 dco2_decay:'h,dco2_modulation:'i,dco2_octave:'j,
 dco2_release:'k,dco2_sustain:'l,dco2_waveform:int,
 dco3_attack:'m,dco3_decay:'n,dco3_modulation:'o,
 dco3_octave:'p,dco3_release:'q,dco3_sustain:'r,
 dco3_waveform:int,dco4_attack:'s,dco4_decay:'t,
 dco4_modulation:'u,dco4_octave:'v,dco4_release:'w,
 dco4_sustain:'x,dco4_waveform:int,dco5_attack:'y,
 dco5_decay:'z,dco5_modulation:'aa,dco5_octave:'ab,
 dco5_release:'ac,dco5_sustain:'ad,dco5_waveform:int,
 dco6_attack:'ae,dco6_decay:'af,dco6_modulation:'ag,
 dco6_octave:'ah,dco6_release:'ai,dco6_sustain:'aj,
 dco6_waveform:int,frequency:'ak,gate:bool,velocity:'al)->
source(audio='#am,video='#an,midi='#ao)
where
  'a, 'aa, 'ab, 'ac, 'ad, 'ae, 'af, 'ag, 'ah, 'ai, 'aj, 'ak, 'al, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o, 'p, 'q, 'r, 's, 't, 'u, 'v, 'w, 'x, 'y, 'z is either float or ()->float

Phase Modulated Voice by CMT (http://www.ladspa.org/cmt, plugin by David A. Bartold).

ladspa.phaserii
(?id:string,?depth:'a,?lfo:int,?rate:'b,?resonance:'c,
 ?spread:'d,source(audio='#e,video='#f,midi='#g))->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

C* PhaserII - Mono phaser by Tim Goetze <tim(at)quitte.de>.

ladspa.pink_full_frequency
(?id:string)->source(audio='#a,video='#b,midi='#c)

Pink Noise (full frequency range) by CMT (http://www.ladspa.org/cmt, plugin by Nathaniel Virgo).

ladspa.pink_interpolated_audio
(?id:string,?highest_frequency:'a)->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Pink Noise (Interpolated) by CMT (http://www.ladspa.org/cmt, plugin by Nathaniel Virgo).

ladspa.pink_sh
(?id:string,?sample_and_hold_frequency:'a)->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Pink Noise (sample and hold) by CMT (http://www.ladspa.org/cmt, plugin by Nathaniel Virgo).

ladspa.pitchscale
(?id:string,?pitch_co_efficient:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Pitch Scaler by Steve Harris <steve(at)plugin.org.uk>.

ladspa.pitchscalehq
(?id:string,?pitch_co_efficient:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Higher Quality Pitch Scaler by Steve Harris <steve(at)plugin.org.uk>.

ladspa.platex2
(?id:string,?bandwidth:'a,?blend:'b,?damping:'c,?tail:'d,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a, 'b, 'c, 'd is either float or ()->float

C* PlateX2 - Versatile plate reverb, stereo inputs by Tim Goetze <tim(at)quitte.de>.

ladspa.pointercastdistortion
(?id:string,?dry_wet_mix:'a,?effect_cutoff_freq:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Pointer cast distortion by Steve Harris <steve(at)plugin.org.uk>.

ladspa.rateshifter
(?id:string,?rate:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Rate shifter by Steve Harris <steve(at)plugin.org.uk>.

ladspa.retroflange
(?id:string,?average_stall:'a,?flange_frequency:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Retro Flanger by Steve Harris <steve(at)plugin.org.uk>.

ladspa.revdelay
(?id:string,?crossfade_samples:int,?delay_time:'a,
 ?dry_level:'b,?feedback:'c,?wet_level:'d,
 source(audio='#e,video='#f,midi='#g))->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

Reverse Delay (5s max) by Jesse Chappell <jesse at essej dot net>.

ladspa.ringmod_1i1o1l
(?id:string,?frequency:'a,?modulation_depth:'b,
 ?sawtooth_level:'c,?sine_level:'d,?square_level:'e,
 ?triangle_level:'f,source(audio='#g,video='#h,midi='#i))->
source(audio='#g,video='#h,midi='#i)
where 'a, 'b, 'c, 'd, 'e, 'f is either float or ()->float

Ringmod with LFO by Steve Harris <steve(at)plugin.org.uk>.

ladspa.satanmaximiser
(?id:string,?decay_time:'a,?knee_point:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Barry's Satan Maximiser by Steve Harris <steve(at)plugin.org.uk>.

ladspa.saturate
(?id:string,?bias:'a,?gain:'b,?mode:int,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

C* Saturate - Various overdrive models, 8x oversampled by Tim Goetze <tim(at)quitte.de>.

ladspa.sc1
(?id:string,?attack_time:'a,?knee_radius:'b,
 ?makeup_gain:'c,?ratio:'d,?release_time:'e,
 ?threshold_level:'f,
 source(audio='#g,video='#h,midi='#i))->
source(audio='#g,video='#h,midi='#i)
where 'a, 'b, 'c, 'd, 'e, 'f is either float or ()->float

SC1 by Steve Harris <steve(at)plugin.org.uk>.

ladspa.sc4
(?id:string,?attack_time:'a,?knee_radius:'b,
 ?makeup_gain:'c,?ratio:'d,?release_time:'e,?rms_peak:'f,
 ?threshold_level:'g,source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g is either float or ()->float

SC4 by Steve Harris <steve(at)plugin.org.uk>.

ladspa.sc4m
(?id:string,?attack_time:'a,?knee_radius:'b,
 ?makeup_gain:'c,?ratio:'d,?release_time:'e,?rms_peak:'f,
 ?threshold_level:'g,
 source(audio='#h,video='#i,midi='#j))->
source(audio='#h,video='#i,midi='#j)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g is either float or ()->float

SC4 mono by Steve Harris <steve(at)plugin.org.uk>.

ladspa.se4
(?id:string,?attack_time:'a,?attenuation:'b,
 ?knee_radius:'c,?ratio:'d,?release_time:'e,?rms_peak:'f,
 ?threshold_level:'g,source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g is either float or ()->float

SE4 by Steve Harris <steve(at)plugin.org.uk>.

ladspa.shaper
(?id:string,?waveshape:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Wave shaper by Steve Harris <steve(at)plugin.org.uk>.

ladspa.sifter
(?id:string,?sift_size:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Signal sifter by Steve Harris <steve(at)plugin.org.uk>.

ladspa.sin
(?id:string,?f:'a,?volume:'b)->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

C* Sin - Sine wave generator by Tim Goetze <tim(at)quitte.de>.

ladspa.sincos
(?id:string,?base_frequency:'a,?pitch_offset:'b)->
source(audio=2,video=0,midi=0)
where 'a, 'b is either float or ()->float

Sine + cosine oscillator by Steve Harris <steve(at)plugin.org.uk>.

ladspa.sine_faac
(?id:string,?amplitude:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Sine Oscillator (Freq:audio, Amp:control) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.sine_fcaa
(?id:string,?frequency:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Sine Oscillator (Freq:control, Amp:audio) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.sine_fcac
(?id:string,?amplitude:'a,?frequency:'b)->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Sine Oscillator (Freq:control, Amp:control) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.singlepara
(?id:string,?bandwidth:'a,?frequency:'b,?gain:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Single band parametric by Steve Harris <steve(at)plugin.org.uk>.

ladspa.sinuswavewrapper
(?id:string,?wrap_degree:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Sinus wavewrapper by Steve Harris <steve(at)plugin.org.uk>.

ladspa.smoothdecimate
(?id:string,?resample_rate:'a,?smoothing:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Smooth Decimator by Steve Harris <steve(at)plugin.org.uk>.

ladspa.spice
(?id:string,?hif:'a,?higain:'b,?locompress:'c,?lof:'d,
 ?logain:'e,source(audio='#f,video='#g,midi='#h))->
source(audio='#f,video='#g,midi='#h)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

C* Spice - Not an exciter by Tim Goetze <tim(at)quitte.de>.

ladspa.spicex2
(?id:string,?hif:'a,?higain:'b,?locompress:'c,?lof:'d,
 ?logain:'e,source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

C* SpiceX2 - Not an exciter either by Tim Goetze <tim(at)quitte.de>.

ladspa.svf
(?id:string,?filter_freq:'a,?filter_q:'b,
 ?filter_resonance:'c,?filter_type:int,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

State Variable Filter by Steve Harris <steve(at)plugin.org.uk>.

ladspa.syndrum
(?id:string,frequency:'a,frequency_ratio:'b,resonance:'c,
 trigger:bool,velocity:'d)->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

Syn Drum by CMT (http://www.ladspa.org/cmt, plugin by David A. Bartold).

ladspa.tap_autopan
(?id:string,?depth:'a,?frequency:'b,?gain:'c,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a, 'b, 'c is either float or ()->float

TAP AutoPanner by Tom Szilagyi.

ladspa.tap_chorusflanger
(?id:string,?contour:'a,?delay:'b,?depth:'c,
 ?dry_level:'d,?frequency:'e,?l_r_phase_shift:'f,
 ?wet_level:'g,source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g is either float or ()->float

TAP Chorus/Flanger by Tom Szilagyi.

ladspa.tap_deesser
(?id:string,?frequency:'a,?monitor:int,
 ?sidechain_filter:int,?threshold_level:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

TAP DeEsser by Tom Szilagyi.

ladspa.tap_doubler
(?id:string,?dry_left_position:'a,?dry_level:'b,
 ?dry_right_position:'c,?pitch_tracking:'d,
 ?time_tracking:'e,?wet_left_position:'f,?wet_level:'g,
 ?wet_right_position:'h,source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h is either float or ()->float

TAP Fractal Doubler by Tom Szilagyi.

ladspa.tap_dynamics_m
(?id:string,?attack:'a,?function:int,?makeup_gain:'b,
 ?offset_gain:'c,?release:'d,
 source(audio='#e,video='#f,midi='#g))->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

TAP Dynamics (M) by Tom Szilagyi.

ladspa.tap_dynamics_st
(?id:string,?attack:'a,?function:int,?makeup_gain:'b,
 ?offset_gain:'c,?release:'d,?stereo_mode:int,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a, 'b, 'c, 'd is either float or ()->float

TAP Dynamics (St) by Tom Szilagyi.

ladspa.tap_equalizer
(?id:string,?band_1_freq:'a,?band_1_gain:'b,
 ?band_2_freq:'c,?band_2_gain:'d,?band_3_freq:'e,
 ?band_3_gain:'f,?band_4_freq:'g,?band_4_gain:'h,
 ?band_5_freq:'i,?band_5_gain:'j,?band_6_freq:'k,
 ?band_6_gain:'l,?band_7_freq:'m,?band_7_gain:'n,
 ?band_8_freq:'o,?band_8_gain:'p,
 source(audio='#q,video='#r,midi='#s))->
source(audio='#q,video='#r,midi='#s)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o, 'p is either float or ()->float

TAP Equalizer by Tom Szilagyi.

ladspa.tap_equalizer_bw
(?id:string,?band_1_bandwidth:'a,?band_1_freq:'b,
 ?band_1_gain:'c,?band_2_bandwidth:'d,?band_2_freq:'e,
 ?band_2_gain:'f,?band_3_bandwidth:'g,?band_3_freq:'h,
 ?band_3_gain:'i,?band_4_bandwidth:'j,?band_4_freq:'k,
 ?band_4_gain:'l,?band_5_bandwidth:'m,?band_5_freq:'n,
 ?band_5_gain:'o,?band_6_bandwidth:'p,?band_6_freq:'q,
 ?band_6_gain:'r,?band_7_bandwidth:'s,?band_7_freq:'t,
 ?band_7_gain:'u,?band_8_bandwidth:'v,?band_8_freq:'w,
 ?band_8_gain:'x,source(audio='#y,video='#z,midi='#aa))->
source(audio='#y,video='#z,midi='#aa)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o, 'p, 'q, 'r, 's, 't, 'u, 'v, 'w, 'x is either float or ()->float

TAP Equalizer/BW by Tom Szilagyi.

ladspa.tap_limiter
(?id:string,?limit_level:'a,?output_volume:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

TAP Scaling Limiter by Tom Szilagyi.

ladspa.tap_pinknoise
(?id:string,?fractal_dimension:'a,?noise_level:'b,
 ?signal_level:'c,source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

TAP Pink/Fractal Noise by Tom Szilagyi.

ladspa.tap_pitch
(?id:string,?dry_level:'a,?rate_shift:'b,
 ?semitone_shift:'c,?wet_level:'d,
 source(audio='#e,video='#f,midi='#g))->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

TAP Pitch Shifter by Tom Szilagyi.

ladspa.tap_reflector
(?id:string,?dry_level:'a,?fragment_length:'b,
 ?wet_level:'c,source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

TAP Reflector by Tom Szilagyi.

ladspa.tap_reverb
(?id:string,?allpass_filters:bool,?bandpass_filter:bool,
 ?comb_filters:bool,?decay:'a,?dry_level:'b,
 ?enhanced_stereo:bool,?reverb_type:int,?wet_level:'c,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a, 'b, 'c is either float or ()->float

TAP Reverberator by Tom Szilagyi.

ladspa.tap_rotspeak
(?id:string,?horn_frequency:'a,?mic_distance:'b,
 ?rotor_frequency:'c,?rotor_horn_mix:'d,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a, 'b, 'c, 'd is either float or ()->float

TAP Rotary Speaker by Tom Szilagyi.

ladspa.tap_sigmoid
(?id:string,?post_gain:'a,?pre_gain:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

TAP Sigmoid Booster by Tom Szilagyi.

ladspa.tap_stereo_echo
(?id:string,?cross_mode:bool,?dry_level:'a,
 ?haas_effect:bool,?l_delay:'b,?l_echo_level:'c,
 ?l_feedback:'d,?r_echo_level:'e,?r_haas_delay:'f,
 ?r_haas_feedback:'g,?swap_outputs:bool,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g is either float or ()->float

TAP Stereo Echo by Tom Szilagyi.

ladspa.tap_tremolo
(?id:string,?depth:'a,?frequency:'b,?gain:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

TAP Tremolo by Tom Szilagyi.

ladspa.tap_tubewarmth
(?id:string,?drive:'a,?tape_tube_blend:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

TAP TubeWarmth by Tom Szilagyi.

ladspa.tap_vibrato
(?id:string,?depth:'a,?dry_level:'b,?frequency:'c,
 ?wet_level:'d,source(audio='#e,video='#f,midi='#g))->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

TAP Vibrato by Tom Szilagyi.

ladspa.tapedelay
(?id:string,?dry_level:'a,?tap_1_distance:'b,
 ?tap_1_level:'c,?tap_2_distance:'d,?tap_2_level:'e,
 ?tap_3_distance:'f,?tap_3_level:'g,?tap_4_distance:'h,
 ?tap_4_level:'i,?tape_speed:'j,
 source(audio='#k,video='#l,midi='#m))->
source(audio='#k,video='#l,midi='#m)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j is either float or ()->float

Tape Delay Simulation by Steve Harris <steve(at)plugin.org.uk>.

ladspa.tonestack
(?id:string,?bass:'a,?mid:'b,?model:int,?treble:'c,
 source(audio='#d,video='#e,midi='#f))->
source(audio='#d,video='#e,midi='#f)
where 'a, 'b, 'c is either float or ()->float

C* ToneStack - Classic amplifier tone stack emulation by David T. Yeh <dtyeh(at)ccrma.stanford.edu>.

ladspa.transient
(?id:string,?attack_speed:'a,?sustain_time:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Transient mangler by Steve Harris <steve(at)plugin.org.uk>.

ladspa.triplepara
(?id:string,?band_1_bandwidth:'a,?band_1_frequency:'b,
 ?band_1_gain:'c,?band_2_bandwidth:'d,
 ?band_2_frequency:'e,?band_2_gain:'f,
 ?band_3_bandwidth:'g,?band_3_frequency:'h,
 ?band_3_gain:'i,?high_shelving_frequency:'j,
 ?high_shelving_gain:'k,?high_shelving_slope:'l,
 ?low_shelving_frequency:'m,?low_shelving_gain:'n,
 ?low_shelving_slope:'o,
 source(audio='#p,video='#q,midi='#r))->
source(audio='#p,video='#q,midi='#r)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o is either float or ()->float

Triple band parametric with shelves by Steve Harris <steve(at)plugin.org.uk>.

ladspa.valve
(?id:string,?distortion_character:'a,
 ?distortion_level:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Valve saturation by Steve Harris <steve(at)plugin.org.uk>.

ladspa.valverect
(?id:string,?distortion:'a,?sag_level:'b,
 source(audio='#c,video='#d,midi='#e))->
source(audio='#c,video='#d,midi='#e)
where 'a, 'b is either float or ()->float

Valve rectifier by Steve Harris <steve(at)plugin.org.uk>.

ladspa.vcf303
(?id:string,cutoff:'a,decay:'b,envelope_modulation:'c,
 resonance:'d,trigger:bool,
 source(audio='#e,video='#f,midi='#g))->
source(audio='#e,video='#f,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

VCF 303 by CMT (http://www.ladspa.org/cmt, plugin by David A. Bartold).

ladspa.vynil
(?id:string,?crackle:'a,?rpm:'b,?surface_warping:'c,
 ?wear:'d,?year:'e,source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

VyNil (Vinyl Effect) by Steve Harris <steve(at)plugin.org.uk>.

ladspa.white
(?id:string,?volume:'a)->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

C* White - Noise generator by Tim Goetze <tim(at)quitte.de>.

ladspa.wshape_sine
(?id:string,?limiting_amplitude:'a,
 source(audio='#b,video='#c,midi='#d))->
source(audio='#b,video='#c,midi='#d)
where 'a is either float or ()->float

Wave Shaper (Sine-Based) by CMT (http://www.ladspa.org/cmt, plugin by Richard W.E. Furse).

ladspa.zita_reverb
(?id:string,?damping:'a,?delay:'b,?f1_freq:'c,
 ?f1_gain:'d,?f2_freq:'e,?f2_gain:'f,?output_mix:'g,
 ?rt_low:'h,?rt_mid:'i,?xover:'j,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j is either float or ()->float

zita-reverb by Fons Adriaensen <fons(at)linuxaudio.org>.

ladspa.zm1
(?id:string,source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

z-1 by Steve Harris <steve(at)plugin.org.uk>.

limit
(?id:string,?attack:'a,?gain:'b,?knee:'c,?ratio:float,
 ?release:'d,?rms_window:float,?threshold:'e,
 source(audio='#f,video='#g,midi='#h))->
source(audio='#f,video='#g,midi='#h)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

Limit the signal.

mic_filter
(source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Remove low frequencies often produced by microphones.

mix
(?id:string,[source(audio='#a,video='#b,midi='#c)])->
source(audio='#a,video='#b,midi='#c)

Mixing table controllable via the telnet interface.

normalize
(?id:string,?gain_max:'a,?gain_min:'b,?k_down:'c,
 ?k_up:'d,?target:'e,?threshold:'f,?window:float,
 source(audio='#g,video='#h,midi='#i))->
source(audio='#g,video='#h,midi='#i)
where 'a, 'b, 'c, 'd, 'e, 'f is either float or ()->float

Normalize the signal. Dynamic normalization of the signal is sometimes the only option, and can make a listening experience much nicer. However, its dynamic aspect implies some limitations which can go as far as creating saturation in some extreme cases. If possible, consider using some track-based normalization techniques such as those based on replay gain. See the documentation for more details.

nrj
(source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Compress and normalize, producing a more uniform and “full” sound.

sky
(source(audio='#a,video='#b,midi=0))->
source(audio='#a,video='#b,midi=0)

Multiband-compression.

smart_cross
(?id:string,?active:bool,?conservative:bool,
 ?duration:float,?inhibit:float,?minimum:float,
 ?width:float,
 ((float,float,[(string*string)],[(string*string)],
   source(audio='#a+1,video=0,midi=0),
   source(audio='#a+1,video=0,midi=0))->
  source(audio='#a+1,video=0,midi=0)),
 source(audio='#a+1,video=0,midi=0))->
source(audio='#a+1,video=0,midi=0)

Cross operator, allowing the composition of the N last seconds of a track with the beginning of the next track, using a transition function depending on the relative power of the signal before and after the end of track.

soundtouch
(?id:string,?pitch:'a,?rate:'b,?tempo:'c,
 source(audio='#d+1,video=0,midi=0))->
source(audio='#d+1,video=0,midi=0)
where 'a, 'b, 'c is either float or ()->float

WARNING: This is only EXPERIMENTAL!

Change the rate, the tempo or the pitch of the sound.

stereo.ms.decode
(?id:string,?width:float,source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)

Decode mid+side stereo (M/S) to left+right stereo.

stereo.ms.encode
(?id:string,source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)

Encode left+right stereo to mid+side stereo (M/S).

stereo.pan
(?id:string,?field:'a,?pan:'b,
 source(audio=2,video=0,midi=0))->
source(audio=2,video=0,midi=0)
where 'a, 'b is either float or ()->float

Pan a stereo sound.

stretch
(?id:string,?active:bool,ratio:'a,
 source(audio='#b+1,video=0,midi=0))->
source(audio='#c+1,video=0,midi=0)
where 'a is either float or ()->float

Slow down or accelerate an audio stream by stretching (sounds lower) or squeezing it (sounds higher).

Source / Sound Synthesis

dssi.register
(string)->unit

Resgister a DSSI plugin.

synth.all.dssi.fluidsynth_dssi
(?id:string,source(audio=2,video='#a,midi=16))->
source(audio=2,video='#a,midi=16)

FluidSynth DSSI plugin.

synth.all.dssi.hexter
(?id:string,?tuning:'a,?volume:'b,
 source(audio=1,video='#c,midi=16))->
source(audio=1,video='#c,midi=16)
where 'a, 'b is either float or ()->float

hexter DX7 emulation (v1.0.2).

synth.all.dssi.karplong
(?id:string,?sustain:int,
 source(audio=1,video='#a,midi=16))->
source(audio=1,video='#a,midi=16)

Simple Karplus-Strong Plucked String Synth.

synth.all.dssi.ll_sineshaper
(?id:string,?amp_envelope_sensitivity:'a,?attack:'b,
 ?decay:'c,?delay_feedback:'d,?delay_mix:'e,
 ?delay_time:'f,?drive:'g,?gain:'h,?octave:int,
 ?oscillator_mix:'i,?portamento_on:bool,
 ?portamento_time:'j,?release:'k,?shape_amount:'l,
 ?shape_shift:'m,?shape_split:'n,
 ?shaper_envelope_sensitivity:'o,?shaper_lfo_depth:'p,
 shaper_lfo_frequency:'q,?sub_oscillator_octave:int,
 ?sub_oscillator_tune:'r,?sustain:'s,
 ?tie_overlapping_notes:bool,?tremolo_depth:'t,
 tremolo_frequency:'u,?tune:'v,?vibrato_depth:'w,
 vibrato_frequency:'x,source(audio=1,video='#y,midi=16))->
source(audio=1,video='#y,midi=16)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o, 'p, 'q, 'r, 's, 't, 'u, 'v, 'w, 'x is either float or ()->float

Sineshaper.

synth.all.dssi.lts
(?id:string,?a_tuning:'a,?attack_time:'b,?decay_time:'c,
 ?release_time:'d,?sustain_level:'e,?timbre:'f,
 source(audio=1,video='#g,midi=16))->
source(audio=1,video='#g,midi=16)
where 'a, 'b, 'c, 'd, 'e, 'f is either float or ()->float

Less Trivial synth.

synth.all.dssi.mono_sampler
(?id:string,?base_pitch:int,?release_time:'a,
 ?sustain:int,?tuned:int,
 source(audio=1,video='#b,midi=16))->
source(audio=1,video='#b,midi=16)
where 'a is either float or ()->float

Simple Mono Sampler.

synth.all.dssi.stereo_sampler
(?id:string,?base_pitch:int,?pan___balance:'a,
 ?release_time:'b,?sustain:int,?tuned:int,
 source(audio=2,video='#c,midi=16))->
source(audio=2,video='#c,midi=16)
where 'a, 'b is either float or ()->float

Simple Stereo Sampler.

synth.all.dssi.ts
(?id:string,?tuning_frequency:'a,?volume:'b,
 source(audio=1,video='#c,midi=16))->
source(audio=1,video='#c,midi=16)
where 'a, 'b is either float or ()->float

Trivial synth.

synth.all.dssi.whysynth
(?id:string,?bend_range:int,?busa_>out_level:'a,
 ?busa_>out_pan:'b,?busb_>out_level:'c,?busb_>out_pan:'d,
 ?effect_mode:int,?effect_param_1:'e,?effect_param_2:'f,
 ?effect_param_3:'g,?effect_param_4:'h,
 ?effect_param_5:'i,?effect_param_6:'j,
 ?effect_wet_dry_mix:'k,?eg1_amp_mod_amt:'l,
 ?eg1_amp_mod_src:int,?eg1_kbd_time_scale:'m,
 ?eg1_level_1:'n,?eg1_level_2:'o,?eg1_level_3:'p,
 ?eg1_mode:int,?eg1_shape_1:int,?eg1_shape_2:int,
 ?eg1_shape_3:int,?eg1_shape_4:int,?eg1_time_1:'q,
 ?eg1_time_2:'r,?eg1_time_3:'s,?eg1_time_4:'t,
 ?eg1_vel_level_sens:'u,?eg1_vel_time_scale:'v,
 ?eg2_amp_mod_amt:'w,?eg2_amp_mod_src:int,
 ?eg2_kbd_time_scale:'x,?eg2_level_1:'y,?eg2_level_2:'z,
 ?eg2_level_3:'aa,?eg2_mode:int,?eg2_shape_1:int,
 ?eg2_shape_2:int,?eg2_shape_3:int,?eg2_shape_4:int,
 ?eg2_time_1:'ab,?eg2_time_2:'ac,?eg2_time_3:'ad,
 ?eg2_time_4:'ae,?eg2_vel_level_sens:'af,
 ?eg2_vel_time_scale:'ag,?eg3_amp_mod_amt:'ah,
 ?eg3_amp_mod_src:int,?eg3_kbd_time_scale:'ai,
 ?eg3_level_1:'aj,?eg3_level_2:'ak,?eg3_level_3:'al,
 ?eg3_mode:int,?eg3_shape_1:int,?eg3_shape_2:int,
 ?eg3_shape_3:int,?eg3_shape_4:int,?eg3_time_1:'am,
 ?eg3_time_2:'an,?eg3_time_3:'ao,?eg3_time_4:'ap,
 ?eg3_vel_level_sens:'aq,?eg3_vel_time_scale:'ar,
 ?eg4_amp_mod_amt:'as,?eg4_amp_mod_src:int,
 ?eg4_kbd_time_scale:'at,?eg4_level_1:'au,
 ?eg4_level_2:'av,?eg4_level_3:'aw,?eg4_mode:int,
 ?eg4_shape_1:int,?eg4_shape_2:int,?eg4_shape_3:int,
 ?eg4_shape_4:int,?eg4_time_1:'ax,?eg4_time_2:'ay,
 ?eg4_time_3:'az,?eg4_time_4:'ba,?eg4_vel_level_sens:'bb,
 ?eg4_vel_time_scale:'bc,?ego_amp_mod_amt:'bd,
 ?ego_amp_mod_src:int,?ego_kbd_time_scale:'be,
 ?ego_level_1:'bf,?ego_level_2:'bg,?ego_level_3:'bh,
 ?ego_mode:int,?ego_shape_1:int,?ego_shape_2:int,
 ?ego_shape_3:int,?ego_shape_4:int,?ego_time_1:'bi,
 ?ego_time_2:'bj,?ego_time_3:'bk,?ego_time_4:'bl,
 ?ego_vel_level_sens:'bm,?ego_vel_time_scale:'bn,
 ?filter1_>out_level:'bo,?filter1_>out_pan:'bp,
 ?filter1_frequency:'bq,?filter1_frq_mod_amt:'br,
 ?filter1_frq_mod_src:int,?filter1_mode:int,
 ?filter1_mparameter:'bs,?filter1_resonance:'bt,
 ?filter1_source:int,?filter2_>out_level:'bu,
 ?filter2_>out_pan:'bv,?filter2_frequency:'bw,
 ?filter2_frq_mod_amt:'bx,?filter2_frq_mod_src:int,
 ?filter2_mode:int,?filter2_mparameter:'by,
 ?filter2_resonance:'bz,?filter2_source:int,
 ?glfo_amp_mod_amt:'ca,?glfo_amp_mod_src:int,
 ?glfo_frequency:'cb,?glfo_waveform:int,?glide_rate:'cc,
 ?mlfo_amp_mod_amt:'cd,?mlfo_amp_mod_src:int,
 ?mlfo_delay:'ce,?mlfo_frequency:'cf,
 ?mlfo_phase_spread:'cg,?mlfo_random_freq:'ch,
 ?mlfo_waveform:int,?modmix_bias:'ci,
 ?modmix_mod1_amt:'cj,?modmix_mod1_src:int,
 ?modmix_mod2_amt:'ck,?modmix_mod2_src:int,
 ?osc1_>busa_level:'cl,?osc1_>busb_level:'cm,
 ?osc1_amp_mod_amt:'cn,?osc1_amp_mod_src:int,
 ?osc1_detune:'co,?osc1_mmod_amt:'cp,?osc1_mmod_src:int,
 ?osc1_mode:int,?osc1_mparam_1:'cq,?osc1_mparam_2:'cr,
 ?osc1_pitch:int,?osc1_pitch_mod_amt:'cs,
 ?osc1_pitch_mod_src:int,?osc1_waveform:int,
 ?osc2_>busa_level:'ct,?osc2_>busb_level:'cu,
 ?osc2_amp_mod_amt:'cv,?osc2_amp_mod_src:int,
 ?osc2_detune:'cw,?osc2_mmod_amt:'cx,?osc2_mmod_src:int,
 ?osc2_mode:int,?osc2_mparam_1:'cy,?osc2_mparam_2:'cz,
 ?osc2_pitch:int,?osc2_pitch_mod_amt:'da,
 ?osc2_pitch_mod_src:int,?osc2_waveform:int,
 ?osc3_>busa_level:'db,?osc3_>busb_level:'dc,
 ?osc3_amp_mod_amt:'dd,?osc3_amp_mod_src:int,
 ?osc3_detune:'de,?osc3_mmod_amt:'df,?osc3_mmod_src:int,
 ?osc3_mode:int,?osc3_mparam_1:'dg,?osc3_mparam_2:'dh,
 ?osc3_pitch:int,?osc3_pitch_mod_amt:'di,
 ?osc3_pitch_mod_src:int,?osc3_waveform:int,
 ?osc4_>busa_level:'dj,?osc4_>busb_level:'dk,
 ?osc4_amp_mod_amt:'dl,?osc4_amp_mod_src:int,
 ?osc4_detune:'dm,?osc4_mmod_amt:'dn,?osc4_mmod_src:int,
 ?osc4_mode:int,?osc4_mparam_1:'do,?osc4_mparam_2:'dp,
 ?osc4_pitch:int,?osc4_pitch_mod_amt:'dq,
 ?osc4_pitch_mod_src:int,?osc4_waveform:int,?tuning:'dr,
 ?vlfo_amp_mod_amt:'ds,?vlfo_amp_mod_src:int,
 ?vlfo_delay:'dt,?vlfo_frequency:'du,?vlfo_waveform:int,
 ?volume:'dv,source(audio=2,video='#dw,midi=16))->
source(audio=2,video='#dw,midi=16)
where
  'a, 'aa, 'ab, 'ac, 'ad, 'ae, 'af, 'ag, 'ah, 'ai, 'aj, 'ak, 'al, 'am, 'an, 'ao, 'ap, 'aq, 'ar, 'as, 'at, 'au, 'av, 'aw, 'ax, 'ay, 'az, 'b, 'ba, 'bb, 'bc, 'bd, 'be, 'bf, 'bg, 'bh, 'bi, 'bj, 'bk, 'bl, 'bm, 'bn, 'bo, 'bp, 'bq, 'br, 'bs, 'bt, 'bu, 'bv, 'bw, 'bx, 'by, 'bz, 'c, 'ca, 'cb, 'cc, 'cd, 'ce, 'cf, 'cg, 'ch, 'ci, 'cj, 'ck, 'cl, 'cm, 'cn, 'co, 'cp, 'cq, 'cr, 'cs, 'ct, 'cu, 'cv, 'cw, 'cx, 'cy, 'cz, 'd, 'da, 'db, 'dc, 'dd, 'de, 'df, 'dg, 'dh, 'di, 'dj, 'dk, 'dl, 'dm, 'dn, 'do, 'dp, 'dq, 'dr, 'ds, 'dt, 'du, 'dv, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o, 'p, 'q, 'r, 's, 't, 'u, 'v, 'w, 'x, 'y, 'z is either float or ()->float

WhySynth 20090403 DSSI plugin.

synth.all.dssi.wsynth
(?id:string,?eg1_attack_rate:'a,?eg1_decay_rate:'b,
 ?eg1_osc_pitch_mod:'c,?eg1_release_rate:'d,
 ?eg1_sustain_level:'e,?eg1_vcf_cutoff_mod:'f,
 ?eg1_velocity_sens:'g,?eg2_attack_rate:'h,
 ?eg2_decay_rate:'i,?eg2_osc_pitch_mod:'j,
 ?eg2_release_rate:'k,?eg2_sustain_level:'l,
 ?eg2_vcf_cutoff_mod:'m,?eg2_velocity_sens:'n,
 ?glide_rate:'o,?lfo_frequency:'p,?lfo_osc_pitch_mod:'q,
 ?lfo_vcf_cutoff_mod:'r,?lfo_waveform:int,
 ?osc1_coarse:'s,?osc1_wave_a:int,?osc1_wave_b:int,
 ?osc2_pitch:'t,?osc2_wave_a:int,?osc2_wave_b:int,
 ?oscillator_balance:'u,?tuning:'v,?vcf_cutoff:'w,
 ?vcf_mode:int,?vcf_resonance:'x,?volume:'y,
 source(audio=1,video='#z,midi=16))->
source(audio=1,video='#z,midi=16)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o, 'p, 'q, 'r, 's, 't, 'u, 'v, 'w, 'x, 'y is either float or ()->float

Wsynth DSSI plugin.

synth.all.saw
(?id:string,?attack:float,?decay:float,?envelope:bool,
 ?release:float,?sustain:float,
 source(audio='#a+1,video='#b,midi='#c+16))->
source(audio='#a+1,video='#b,midi='#c+16)

Saw synthesizer. It creates one synthesizer for each channel.

synth.all.sine
(?id:string,?attack:float,?decay:float,?envelope:bool,
 ?release:float,?sustain:float,
 source(audio='#a+1,video='#b,midi='#c+16))->
source(audio='#a+1,video='#b,midi='#c+16)

Sine synthesizer. It creates one synthesizer for each channel.

synth.all.square
(?id:string,?attack:float,?decay:float,?envelope:bool,
 ?release:float,?sustain:float,
 source(audio='#a+1,video='#b,midi='#c+16))->
source(audio='#a+1,video='#b,midi='#c+16)

Square synthesizer. It creates one synthesizer for each channel.

synth.dssi.fluidsynth_dssi
(?id:string,?channel:int,
 source(audio=2,video='#a,midi=1))->
source(audio=2,video='#a,midi=1)

FluidSynth DSSI plugin.

synth.dssi.hexter
(?id:string,?channel:int,?tuning:'a,?volume:'b,
 source(audio=1,video='#c,midi=1))->
source(audio=1,video='#c,midi=1)
where 'a, 'b is either float or ()->float

hexter DX7 emulation (v1.0.2).

synth.dssi.karplong
(?id:string,?channel:int,?sustain:int,
 source(audio=1,video='#a,midi=1))->
source(audio=1,video='#a,midi=1)

Simple Karplus-Strong Plucked String Synth.

synth.dssi.ll_sineshaper
(?id:string,?amp_envelope_sensitivity:'a,?attack:'b,
 ?channel:int,?decay:'c,?delay_feedback:'d,?delay_mix:'e,
 ?delay_time:'f,?drive:'g,?gain:'h,?octave:int,
 ?oscillator_mix:'i,?portamento_on:bool,
 ?portamento_time:'j,?release:'k,?shape_amount:'l,
 ?shape_shift:'m,?shape_split:'n,
 ?shaper_envelope_sensitivity:'o,?shaper_lfo_depth:'p,
 shaper_lfo_frequency:'q,?sub_oscillator_octave:int,
 ?sub_oscillator_tune:'r,?sustain:'s,
 ?tie_overlapping_notes:bool,?tremolo_depth:'t,
 tremolo_frequency:'u,?tune:'v,?vibrato_depth:'w,
 vibrato_frequency:'x,source(audio=1,video='#y,midi=1))->
source(audio=1,video='#y,midi=1)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o, 'p, 'q, 'r, 's, 't, 'u, 'v, 'w, 'x is either float or ()->float

Sineshaper.

synth.dssi.lts
(?id:string,?a_tuning:'a,?attack_time:'b,?channel:int,
 ?decay_time:'c,?release_time:'d,?sustain_level:'e,
 ?timbre:'f,source(audio=1,video='#g,midi=1))->
source(audio=1,video='#g,midi=1)
where 'a, 'b, 'c, 'd, 'e, 'f is either float or ()->float

Less Trivial synth.

synth.dssi.mono_sampler
(?id:string,?base_pitch:int,?channel:int,
 ?release_time:'a,?sustain:int,?tuned:int,
 source(audio=1,video='#b,midi=1))->
source(audio=1,video='#b,midi=1)
where 'a is either float or ()->float

Simple Mono Sampler.

synth.dssi.stereo_sampler
(?id:string,?base_pitch:int,?channel:int,
 ?pan___balance:'a,?release_time:'b,?sustain:int,
 ?tuned:int,source(audio=2,video='#c,midi=1))->
source(audio=2,video='#c,midi=1)
where 'a, 'b is either float or ()->float

Simple Stereo Sampler.

synth.dssi.ts
(?id:string,?channel:int,?tuning_frequency:'a,?volume:'b,
 source(audio=1,video='#c,midi=1))->
source(audio=1,video='#c,midi=1)
where 'a, 'b is either float or ()->float

Trivial synth.

synth.dssi.whysynth
(?id:string,?bend_range:int,?busa_>out_level:'a,
 ?busa_>out_pan:'b,?busb_>out_level:'c,?busb_>out_pan:'d,
 ?channel:int,?effect_mode:int,?effect_param_1:'e,
 ?effect_param_2:'f,?effect_param_3:'g,
 ?effect_param_4:'h,?effect_param_5:'i,
 ?effect_param_6:'j,?effect_wet_dry_mix:'k,
 ?eg1_amp_mod_amt:'l,?eg1_amp_mod_src:int,
 ?eg1_kbd_time_scale:'m,?eg1_level_1:'n,?eg1_level_2:'o,
 ?eg1_level_3:'p,?eg1_mode:int,?eg1_shape_1:int,
 ?eg1_shape_2:int,?eg1_shape_3:int,?eg1_shape_4:int,
 ?eg1_time_1:'q,?eg1_time_2:'r,?eg1_time_3:'s,
 ?eg1_time_4:'t,?eg1_vel_level_sens:'u,
 ?eg1_vel_time_scale:'v,?eg2_amp_mod_amt:'w,
 ?eg2_amp_mod_src:int,?eg2_kbd_time_scale:'x,
 ?eg2_level_1:'y,?eg2_level_2:'z,?eg2_level_3:'aa,
 ?eg2_mode:int,?eg2_shape_1:int,?eg2_shape_2:int,
 ?eg2_shape_3:int,?eg2_shape_4:int,?eg2_time_1:'ab,
 ?eg2_time_2:'ac,?eg2_time_3:'ad,?eg2_time_4:'ae,
 ?eg2_vel_level_sens:'af,?eg2_vel_time_scale:'ag,
 ?eg3_amp_mod_amt:'ah,?eg3_amp_mod_src:int,
 ?eg3_kbd_time_scale:'ai,?eg3_level_1:'aj,
 ?eg3_level_2:'ak,?eg3_level_3:'al,?eg3_mode:int,
 ?eg3_shape_1:int,?eg3_shape_2:int,?eg3_shape_3:int,
 ?eg3_shape_4:int,?eg3_time_1:'am,?eg3_time_2:'an,
 ?eg3_time_3:'ao,?eg3_time_4:'ap,?eg3_vel_level_sens:'aq,
 ?eg3_vel_time_scale:'ar,?eg4_amp_mod_amt:'as,
 ?eg4_amp_mod_src:int,?eg4_kbd_time_scale:'at,
 ?eg4_level_1:'au,?eg4_level_2:'av,?eg4_level_3:'aw,
 ?eg4_mode:int,?eg4_shape_1:int,?eg4_shape_2:int,
 ?eg4_shape_3:int,?eg4_shape_4:int,?eg4_time_1:'ax,
 ?eg4_time_2:'ay,?eg4_time_3:'az,?eg4_time_4:'ba,
 ?eg4_vel_level_sens:'bb,?eg4_vel_time_scale:'bc,
 ?ego_amp_mod_amt:'bd,?ego_amp_mod_src:int,
 ?ego_kbd_time_scale:'be,?ego_level_1:'bf,
 ?ego_level_2:'bg,?ego_level_3:'bh,?ego_mode:int,
 ?ego_shape_1:int,?ego_shape_2:int,?ego_shape_3:int,
 ?ego_shape_4:int,?ego_time_1:'bi,?ego_time_2:'bj,
 ?ego_time_3:'bk,?ego_time_4:'bl,?ego_vel_level_sens:'bm,
 ?ego_vel_time_scale:'bn,?filter1_>out_level:'bo,
 ?filter1_>out_pan:'bp,?filter1_frequency:'bq,
 ?filter1_frq_mod_amt:'br,?filter1_frq_mod_src:int,
 ?filter1_mode:int,?filter1_mparameter:'bs,
 ?filter1_resonance:'bt,?filter1_source:int,
 ?filter2_>out_level:'bu,?filter2_>out_pan:'bv,
 ?filter2_frequency:'bw,?filter2_frq_mod_amt:'bx,
 ?filter2_frq_mod_src:int,?filter2_mode:int,
 ?filter2_mparameter:'by,?filter2_resonance:'bz,
 ?filter2_source:int,?glfo_amp_mod_amt:'ca,
 ?glfo_amp_mod_src:int,?glfo_frequency:'cb,
 ?glfo_waveform:int,?glide_rate:'cc,
 ?mlfo_amp_mod_amt:'cd,?mlfo_amp_mod_src:int,
 ?mlfo_delay:'ce,?mlfo_frequency:'cf,
 ?mlfo_phase_spread:'cg,?mlfo_random_freq:'ch,
 ?mlfo_waveform:int,?modmix_bias:'ci,
 ?modmix_mod1_amt:'cj,?modmix_mod1_src:int,
 ?modmix_mod2_amt:'ck,?modmix_mod2_src:int,
 ?osc1_>busa_level:'cl,?osc1_>busb_level:'cm,
 ?osc1_amp_mod_amt:'cn,?osc1_amp_mod_src:int,
 ?osc1_detune:'co,?osc1_mmod_amt:'cp,?osc1_mmod_src:int,
 ?osc1_mode:int,?osc1_mparam_1:'cq,?osc1_mparam_2:'cr,
 ?osc1_pitch:int,?osc1_pitch_mod_amt:'cs,
 ?osc1_pitch_mod_src:int,?osc1_waveform:int,
 ?osc2_>busa_level:'ct,?osc2_>busb_level:'cu,
 ?osc2_amp_mod_amt:'cv,?osc2_amp_mod_src:int,
 ?osc2_detune:'cw,?osc2_mmod_amt:'cx,?osc2_mmod_src:int,
 ?osc2_mode:int,?osc2_mparam_1:'cy,?osc2_mparam_2:'cz,
 ?osc2_pitch:int,?osc2_pitch_mod_amt:'da,
 ?osc2_pitch_mod_src:int,?osc2_waveform:int,
 ?osc3_>busa_level:'db,?osc3_>busb_level:'dc,
 ?osc3_amp_mod_amt:'dd,?osc3_amp_mod_src:int,
 ?osc3_detune:'de,?osc3_mmod_amt:'df,?osc3_mmod_src:int,
 ?osc3_mode:int,?osc3_mparam_1:'dg,?osc3_mparam_2:'dh,
 ?osc3_pitch:int,?osc3_pitch_mod_amt:'di,
 ?osc3_pitch_mod_src:int,?osc3_waveform:int,
 ?osc4_>busa_level:'dj,?osc4_>busb_level:'dk,
 ?osc4_amp_mod_amt:'dl,?osc4_amp_mod_src:int,
 ?osc4_detune:'dm,?osc4_mmod_amt:'dn,?osc4_mmod_src:int,
 ?osc4_mode:int,?osc4_mparam_1:'do,?osc4_mparam_2:'dp,
 ?osc4_pitch:int,?osc4_pitch_mod_amt:'dq,
 ?osc4_pitch_mod_src:int,?osc4_waveform:int,?tuning:'dr,
 ?vlfo_amp_mod_amt:'ds,?vlfo_amp_mod_src:int,
 ?vlfo_delay:'dt,?vlfo_frequency:'du,?vlfo_waveform:int,
 ?volume:'dv,source(audio=2,video='#dw,midi=1))->
source(audio=2,video='#dw,midi=1)
where
  'a, 'aa, 'ab, 'ac, 'ad, 'ae, 'af, 'ag, 'ah, 'ai, 'aj, 'ak, 'al, 'am, 'an, 'ao, 'ap, 'aq, 'ar, 'as, 'at, 'au, 'av, 'aw, 'ax, 'ay, 'az, 'b, 'ba, 'bb, 'bc, 'bd, 'be, 'bf, 'bg, 'bh, 'bi, 'bj, 'bk, 'bl, 'bm, 'bn, 'bo, 'bp, 'bq, 'br, 'bs, 'bt, 'bu, 'bv, 'bw, 'bx, 'by, 'bz, 'c, 'ca, 'cb, 'cc, 'cd, 'ce, 'cf, 'cg, 'ch, 'ci, 'cj, 'ck, 'cl, 'cm, 'cn, 'co, 'cp, 'cq, 'cr, 'cs, 'ct, 'cu, 'cv, 'cw, 'cx, 'cy, 'cz, 'd, 'da, 'db, 'dc, 'dd, 'de, 'df, 'dg, 'dh, 'di, 'dj, 'dk, 'dl, 'dm, 'dn, 'do, 'dp, 'dq, 'dr, 'ds, 'dt, 'du, 'dv, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o, 'p, 'q, 'r, 's, 't, 'u, 'v, 'w, 'x, 'y, 'z is either float or ()->float

WhySynth 20090403 DSSI plugin.

synth.dssi.wsynth
(?id:string,?channel:int,?eg1_attack_rate:'a,
 ?eg1_decay_rate:'b,?eg1_osc_pitch_mod:'c,
 ?eg1_release_rate:'d,?eg1_sustain_level:'e,
 ?eg1_vcf_cutoff_mod:'f,?eg1_velocity_sens:'g,
 ?eg2_attack_rate:'h,?eg2_decay_rate:'i,
 ?eg2_osc_pitch_mod:'j,?eg2_release_rate:'k,
 ?eg2_sustain_level:'l,?eg2_vcf_cutoff_mod:'m,
 ?eg2_velocity_sens:'n,?glide_rate:'o,?lfo_frequency:'p,
 ?lfo_osc_pitch_mod:'q,?lfo_vcf_cutoff_mod:'r,
 ?lfo_waveform:int,?osc1_coarse:'s,?osc1_wave_a:int,
 ?osc1_wave_b:int,?osc2_pitch:'t,?osc2_wave_a:int,
 ?osc2_wave_b:int,?oscillator_balance:'u,?tuning:'v,
 ?vcf_cutoff:'w,?vcf_mode:int,?vcf_resonance:'x,
 ?volume:'y,source(audio=1,video='#z,midi=1))->
source(audio=1,video='#z,midi=1)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o, 'p, 'q, 'r, 's, 't, 'u, 'v, 'w, 'x, 'y is either float or ()->float

Wsynth DSSI plugin.

synth.saw
(?id:string,?attack:float,?channel:int,?decay:float,
 ?envelope:bool,?release:float,?sustain:float,
 ?volume:float,source(audio='#a+1,video='#b,midi='#c+1))->
source(audio='#a+1,video='#b,midi='#c+1)

Saw synthesizer.

synth.sine
(?id:string,?attack:float,?channel:int,?decay:float,
 ?envelope:bool,?release:float,?sustain:float,
 ?volume:float,source(audio='#a+1,video='#b,midi='#c+1))->
source(audio='#a+1,video='#b,midi='#c+1)

Sine synthesizer.

synth.square
(?id:string,?attack:float,?channel:int,?decay:float,
 ?envelope:bool,?release:float,?sustain:float,
 ?volume:float,source(audio='#a+1,video='#b,midi='#c+1))->
source(audio='#a+1,video='#b,midi='#c+1)

Square synthesizer.

Source / Track Processing

append
(?id:string,?insert_missing:bool,?merge:bool,source('a),
 (([(string*string)])->source('a)))->source('a)

Append an extra track to every track. Set the metadata 'liq_append' to 'false' to inhibit appending on one track.

at
((()->bool),source('a))->source('a)

Restrict a source to play only when a predicate is true.

crossfade
(?id:string,?conservative:bool,?start_next:float,
 ?fade_in:float,?fade_out:float,
 source(audio='#a,video='#b,midi=0))->
source(audio='#a,video='#b,midi=0)

Simple crossfade.

cue_cut
(?id:string,?cue_in_metadata:string,
 ?cue_out_metadata:string,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Start track after a cue in point and stop it at cue out point. The cue points are given as metadata, in seconds from the begining of tracks.

delay
(?id:string,?initial:bool,float,source('a))->source('a)

Prevents the child from being ready again too fast after a end of track

drop_metadata
(source('a))->source('a)

Removes all metadata coming from a source.

eat_blank
(?id:string,?at_beginning:bool,?max_blank:float,
 ?min_noise:float,?threshold:float,?track_sensitive:bool,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Eat blanks, i.e., drop the contents of the stream until it is not blank anymore.

fallback
(?id:string,?replay_metadata:bool,?track_sensitive:bool,
 ?transitions:[(source('a),source('a))->source('a)],
 [source('a)])->source('a)

At the beginning of each track, select the first ready child.

fallback.skip
(input:source('a),source('a))->source('a)

Special track insensitive fallback that always skips current song before switching.

insert_metadata
(?id:string,source('a))->
((([(string*string)])->unit)*source('a))

Dynamically insert metadata in a stream. Returns a pair (f,s) where s is a new source and f is a function of type (metadata)->unit, used to insert metadata in s.

map_metadata
(?id:string,?insert_missing:bool,?strip:bool,
 ?update:bool,(([(string*string)])->[(string*string)]),
 source('a))->source('a)

Rewrite metadata on the fly using a function.

merge_tracks
(?id:string,source('a))->source('a)

Merge consecutive tracks from the input source.

mksafe
(?id:string,source('a))->source('a)

Turn a source into an infaillible source by adding blank when the source is not available.

on_blank
(?id:string,?max_blank:float,?min_noise:float,
 ?on_noise:(()->unit),?threshold:float,
 ?track_sensitive:bool,(()->unit),
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Calls a given handler when detecting a blank.

on_end
(?id:string,?delay:float,
 ((float,[(string*string)])->unit),source('a))->
source('a)

Call a given handler when there is less than a given amount of time remaining before then end of track.

on_metadata
(?id:string,(([(string*string)])->unit),source('a))->
source('a)

Call a given handler on metadata packets.

on_track
(?id:string,(([(string*string)])->unit),source('a))->
source('a)

Call a given handler on new tracks.

once
(source('a))->source('a)

Creates a source that plays only one track of the input source.

prepend
(?id:string,?merge:bool,
 source(audio='#a,video='#b,midi='#c),
 (([(string*string)])->
  source(audio='#a,video='#b,midi='#c)))->
source(audio='#a,video='#b,midi='#c)

Prepend an extra track before every track. Set the metadata 'liq_prepend' to 'false' to inhibit prepending on one track.

random
(?id:string,?replay_metadata:bool,?track_sensitive:bool,
 ?transitions:[(source('a),source('a))->source('a)],
 ?weights:[int],[source('a)])->source('a)

At the beginning of every track, select a random ready child.

rewrite_metadata
([(string*string)],?insert_missing:bool,?update:bool,
 ?strip:bool,source('a))->source('a)

Rewrite metadata on the fly using a list of (target,rules).

rotate
(?id:string,?replay_metadata:bool,?track_sensitive:bool,
 ?transitions:[(source('a),source('a))->source('a)],
 ?weights:[int],[source('a)])->source('a)

Rotate between the sources.

say_metadata
(source(?A),?pattern:string)->source(?A)

Append speech-synthesized tracks reading the metadata.

sequence
(?id:string,?merge:bool,[source('a)])->source('a)

Play only one track of every successive source, except for the last one which is played as much as available. Sources are released after being used, allowing them to shutdown cleanly and free their resources.

server.insert_metadata
(?id:string,source('a))->source('a)

Register a server/telnet command to update a source's metadata. Returns a new source, which will receive the updated metadata. The command has the following format: insert key1=“val1”,key2=“val2”,...

skip_blank
(?id:string,?threshold:float,?max_blank:float,
 ?min_noise:float,?track_sensitive:bool,
 source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Skip track when detecting a blank.

smart_crossfade
(?start_next:float,?fade_in:float,?fade_out:float,
 ?default:((source(audio='#a+1,video=0,midi=0),
            source(audio='#a+1,video=0,midi=0))->
           source(audio='#a+1,video=0,midi=0)),
 ?high:float,?medium:float,?margin:float,?width:float,
 ?conservative:bool,source(audio='#a+1,video=0,midi=0))->
source(audio='#a+1,video=0,midi=0)

Crossfade between tracks, taking the respective volume levels into account in the choice of the transition.

smooth_add
(?delay:float,?p:float,
 normal:source(audio='#a,video='#b,midi=0),
 special:source(audio='#a,video='#b,midi=0))->
source(audio='#a,video='#b,midi=0)

Mixes two streams, with faded transitions between the state when only the normal stream is available and when the special stream gets added on top of it.

source.dynamic
(?id:string,(()->[source('a)]))->source('a)

WARNING: This is only EXPERIMENTAL!

Dynamically change the underlying source.

store_metadata
(?id:string,?size:int,source('a))->source('a)

Keep track of the last N metadata packets in the stream, and make the history available via a server command.

strip_blank
(?id:string,?max_blank:float,?min_noise:float,
 ?threshold:float,?track_sensitive:bool,
 source(audio='#a,video='#b,midi='#c))->
active_source(audio='#a,video='#b,midi='#c)

Make the source unavailable when it is streaming blank.

switch
(?id:string,?replay_metadata:bool,?single:[bool],
 ?track_sensitive:bool,
 ?transitions:[(source('a),source('a))->source('a)],
 [((()->bool)*source('a))])->source('a)

At the beginning of a track, select the first source whose predicate is true.

Source / Video Processing

video.add_text.gd
(?id:string,?color:int,?cycle:bool,?font:string,
 ?metadata:string,?size:int,?speed:int,?x:int,?y:int,'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either string or ()->string

Display a text (using the SDL library).

video.add_text.gstreamer
(?id:string,?color:int,?cycle:bool,?font:string,
 ?metadata:string,?size:int,?speed:int,?x:int,?y:int,'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either string or ()->string

Display a text (using the SDL library).

video.add_text.sdl
(?id:string,?color:int,?cycle:bool,?font:string,
 ?metadata:string,?size:int,?speed:int,?x:int,?y:int,'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either string or ()->string

Display a text (using the SDL library).

video.fade.final
(?id:string,?duration:float,?transition:string,
 ?type:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Fade a stream to black.

video.fade.in
(?id:string,?duration:float,?override:string,
 ?transition:string,?type:string,
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Fade the beginning of tracks. Metadata 'liq_video_fade_in' can be used to set the duration for a specific track (float in seconds).

video.fade.initial
(?id:string,?duration:float,?transition:string,
 ?type:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Fade the beginning of a stream.

video.fade.out
(?id:string,?duration:float,?override:string,
 ?transition:string,?type:string,
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Fade the end of tracks. Metadata 'liq_video_fade_out' can be used to set the duration for a specific track (float in seconds).

video.fill
(?id:string,?color:int,
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Fill frame with a color.

video.frei0r._3_point_color_balance
(?id:string,?black_color:int,?gray_color:int,
 ?source_image_on_left_side:bool,?split_preview:bool,
 ?white_color:int,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Adjust color balance with 3 color points (by Maksim Golovkin).

video.frei0r._3dflippo
(?id:string,?center_position:'a,?center_position:'b,
 ?don't_blank_mask:bool,?fill_with_image_or_black:bool,
 ?invert_rotation_assignment:bool,?x_axis_rotation:'c,
 ?x_axis_rotation_rate:'d,?y_axis_rotation:'e,
 ?y_axis_rotation_rate:'f,?z_axis_rotation:'g,
 ?z_axis_rotation_rate:'h,
 source(audio='#i,video='#j+1,midi='#k))->
source(audio='#i,video='#j+1,midi='#k)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h is either float or ()->float

Frame rotation in 3d-space (by c.e. prelz AS FLUIDO <fluido(at)fluido.as>).

video.frei0r.addition
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform an RGB[A] addition operation of the pixel sources (by Jean-Sebastien Senecal).

video.frei0r.addition_alpha
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform an RGB[A] addition_alpha operation of the pixel sources (by Jean-Sebastien Senecal).

video.frei0r.alpha0ps
(?id:string,?display:'a,?display_input_alpha:bool,
 ?invert:bool,?operation:'b,?shrink_grow_blur_amount:'c,
 ?threshold:'d,source(audio='#e,video='#f+1,midi='#g))->
source(audio='#e,video='#f+1,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

Display and manipulation of the alpha channel (by Marko Cebokli).

video.frei0r.alpha_injection
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Averages Input 1 and uses this as Alpha Channel on Input 2 (by Richard Spindler).

video.frei0r.alphaatop
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

The alpha ATOP operation (by Jean-Sebastien Senecal).

video.frei0r.alphagrad
(?id:string,?max:'a,?min:'b,?operation:'c,?position:'d,
 ?tilt:'e,?transition_width:'f,
 source(audio='#g,video='#h+1,midi='#i))->
source(audio='#g,video='#h+1,midi='#i)
where 'a, 'b, 'c, 'd, 'e, 'f is either float or ()->float

Fills alpha channel with a gradient (by Marko Cebokli).

video.frei0r.alphain
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

The alpha IN operation (by Jean-Sebastien Senecal).

video.frei0r.alphaout
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

The alpha OUT operation (by Jean-Sebastien Senecal).

video.frei0r.alphaover
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

The alpha OVER operation (by Jean-Sebastien Senecal).

video.frei0r.alphaspot
(?id:string,?max:'a,?min:'b,?operation:'c,?position_x:'d,
 ?position_y:'e,?shape:'f,?size_x:'g,?size_y:'h,?tilt:'i,
 ?transition_width:'j,
 source(audio='#k,video='#l+1,midi='#m))->
source(audio='#k,video='#l+1,midi='#m)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j is either float or ()->float

Draws simple shapes into the alpha channel (by Marko Cebokli).

video.frei0r.alphaxor
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

The alpha XOR operation (by Jean-Sebastien Senecal).

video.frei0r.b
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Extracts Blue from Image (by Richard Spindler).

video.frei0r.baltan
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Delayed alpha smoothed blit of time (by Kentaro, Jaromil).

video.frei0r.blend
(?id:string,?blend:'a,
 source(audio='#b,video='#c+1,midi='#d),
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Perform a blend operation between two sources (by Jean-Sebastien Senecal).

video.frei0r.bluescreen0r
(?id:string,?color:int,?distance:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Color to alpha (blit SRCALPHA) (by Hedde Bosman).

video.frei0r.brightness
(?id:string,?brightness:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Adjusts the brightness of a source image (by Jean-Sebastien Senecal).

video.frei0r.burn
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform an RGB[A] dodge operation between the pixel sources, using the generalised algorithm: D = saturation of 255 or depletion of 0, of ((255 - A) * 256) / (B + 1) (by Jean-Sebastien Senecal).

video.frei0r.bw0r
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Turns image black/white (by coma(at)gephex.org).

video.frei0r.c0rners
(?id:string,?alpha_operation:'a,?corner_1_x:'b,
 ?corner_1_y:'c,?corner_2_x:'d,?corner_2_y:'e,
 ?corner_3_x:'f,?corner_3_y:'g,?corner_4_x:'h,
 ?corner_4_y:'i,?enable_stretch:bool,?feather_alpha:'j,
 ?interpolator:'k,?stretch_x:'l,?stretch_y:'m,
 ?transparent_background:bool,
 source(audio='#n,video='#o+1,midi='#p))->
source(audio='#n,video='#o+1,midi='#p)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm is either float or ()->float

Four corners geometry engine (by Marko Cebokli).

video.frei0r.cairoaffineblend
(?id:string,?anchor_x:'a,?anchor_y:'b,?blend_mode:string,
 ?opacity:'c,?rotation:'d,?x:'e,?x_scale:'f,?y:'g,
 ?y_scale:'h,source(audio='#i,video='#j+1,midi='#k),
 source(audio='#i,video='#j+1,midi='#k))->
source(audio='#i,video='#j+1,midi='#k)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h is either float or ()->float

Composites second input on first input applying user-defined transformation, opacity and blend mode (by Janne Liljeblad).

video.frei0r.cairoblend
(?id:string,?blend_mode:string,?opacity:'a,
 source(audio='#b,video='#c+1,midi='#d),
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Composites second input on the first input with user-defined blend mode and opacity (by Janne Liljeblad).

video.frei0r.cairogradient
(?id:string,?blend_mode:string,?end_color:int,
 ?end_opacity:'a,?end_x:'b,?end_y:'c,?offset:'d,
 ?pattern:string,?start_color:int,?start_opacity:'e,
 ?start_x:'f,?start_y:'g,
 source(audio='#h,video='#i+1,midi='#j))->
source(audio='#h,video='#i+1,midi='#j)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g is either float or ()->float

Draws a gradient on top of image. Filter is given gradient start and end points, colors and opacities (by Janne Liljeblad).

video.frei0r.cairoimagegrid
(?id:string,?columns:'a,?rows:'b,
 source(audio='#c,video='#d+1,midi='#e))->
source(audio='#c,video='#d+1,midi='#e)
where 'a, 'b is either float or ()->float

Draws a grid of input images (by Janne Liljeblad).

video.frei0r.cartoon
(?id:string,?diffspace:'a,?triplevel:'b,
 source(audio='#c,video='#d+1,midi='#e))->
source(audio='#c,video='#d+1,midi='#e)
where 'a, 'b is either float or ()->float

Cartoonify video, do a form of edge detect (by Dries Pruimboom, Jaromil).

video.frei0r.color_distance
(?id:string,?color:int,
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Calculates the distance between the selected color and the current pixel and uses that value as new pixel value (by Richard Spindler).

video.frei0r.color_only
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform a conversion to color only of the source input1 using the hue and saturation values of input2 (by Jean-Sebastien Senecal).

video.frei0r.coloradj_rgb
(?id:string,?action:'a,?alpha_controlled:bool,?b:'b,
 ?g:'c,?keep_luma:bool,?luma_formula:'d,?r:'e,
 source(audio='#f,video='#g+1,midi='#h))->
source(audio='#f,video='#g+1,midi='#h)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

Simple color adjustment (by Marko Cebokli).

video.frei0r.colorhalftone
(?id:string,?cyan_angle:'a,?dot_radius:'b,
 ?magenta_angle:'c,?yellow_angle:'d,
 source(audio='#e,video='#f+1,midi='#g))->
source(audio='#e,video='#f+1,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

Filters image to resemble a halftone print in which tones are represented as variable sized dots (by Janne Liljeblad).

video.frei0r.colorize
(?id:string,?hue:'a,?lightness:'b,?saturation:'c,
 source(audio='#d,video='#e+1,midi='#f))->
source(audio='#d,video='#e+1,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Colorizes image to selected hue, saturation and lightness (by Janne Liljeblad).

video.frei0r.colortap
(?id:string,?table:string,
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Applies a pre-made color effect to image (by Janne Liljeblad).

video.frei0r.composition
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Composites Image 2 onto Image 1 according to its Alpha Channel (by Richard Spindler).

video.frei0r.contrast0r
(?id:string,?contrast:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Adjusts the contrast of a source image (by Jean-Sebastien Senecal).

video.frei0r.darken
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform a darken operation between two sources (minimum value of both sources) (by Jean-Sebastien Senecal).

video.frei0r.defish0r
(?id:string,?amount:'a,?aspect_type:'b,?defish:bool,
 ?interpolator:'c,?manual_aspect:'d,?manual_scale:'e,
 ?scaling:'f,?type:'g,
 source(audio='#h,video='#i+1,midi='#j))->
source(audio='#h,video='#i+1,midi='#j)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g is either float or ()->float

Non rectilinear lens mappings (by Marko Cebokli).

video.frei0r.delay0r
(?id:string,?delaytime:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Video delay (by Martin Bayer).

video.frei0r.delaygrab
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Delayed frame blitting mapped on a time bitmap (by Bill Spinhover, Andreas Schiffler, Jaromil).

video.frei0r.difference
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform an RGB[A] difference operation between the pixel sources (by Jean-Sebastien Senecal).

video.frei0r.distort0r
(?id:string,?amplitude:'a,?frequency:'b,
 source(audio='#c,video='#d+1,midi='#e))->
source(audio='#c,video='#d+1,midi='#e)
where 'a, 'b is either float or ()->float

Plasma (by Gephex crew).

video.frei0r.dither
(?id:string,?levels:'a,?matrixid:'b,
 source(audio='#c,video='#d+1,midi='#e))->
source(audio='#c,video='#d+1,midi='#e)
where 'a, 'b is either float or ()->float

Dithers the image and reduces the number of available colors (by Janne Liljeblad).

video.frei0r.divide
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform an RGB[A] divide operation between the pixel sources: input1 is the numerator, input2 the denominator (by Jean-Sebastien Senecal).

video.frei0r.dodge
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform an RGB[A] dodge operation between the pixel sources, using the generalised algorithm: D = saturation of 255 or (A * 256) / (256 - B) (by Jean-Sebastien Senecal).

video.frei0r.edgeglow
(?id:string,?lredscale:'a,?lthresh:'b,?lupscale:'c,
 source(audio='#d,video='#e+1,midi='#f))->
source(audio='#d,video='#e+1,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Edgeglow filter (by Salsaman).

video.frei0r.emboss
(?id:string,?azimuth:'a,?elevation:'b,?width45:'c,
 source(audio='#d,video='#e+1,midi='#f))->
source(audio='#d,video='#e+1,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Creates embossed relief image of source image (by Janne Liljeblad).

video.frei0r.equaliz0r
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Equalizes the intensity histograms (by Jean-Sebastien Senecal (Drone)).

video.frei0r.facebl0r
(?id:string,?classifier:string,?ellipse:'a,?largest:'b,
 ?neighbors:'c,?recheck:'d,?search_scale:'e,?smallest:'f,
 ?threads:'g,source(audio='#h,video='#i+1,midi='#j))->
source(audio='#h,video='#i+1,midi='#j)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g is either float or ()->float

Automatic face blur (by ZioKernel, Biilly, Jilt, Jaromil, ddennedy).

video.frei0r.flippo
(?id:string,?x_axis:bool,?y_axis:bool,
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Flipping in x and y axis (by Carlo Emilio, Jean-Sebastien Senecal).

video.frei0r.g
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Extracts Green from Image (by Richard Spindler).

video.frei0r.gamma
(?id:string,?gamma:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Adjusts the gamma value of a source image (by Jean-Sebastien Senecal).

video.frei0r.glow
(?id:string,?blur:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Creates a Glamorous Glow (by Richard Spindler).

video.frei0r.grain_extract
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform an RGB[A] grain-extract operation between the pixel sources (by Jean-Sebastien Senecal).

video.frei0r.grain_merge
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform an RGB[A] grain-merge operation between the pixel sources (by Jean-Sebastien Senecal).

video.frei0r.hardlight
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform an RGB[A] hardlight operation between the pixel sources (by Jean-Sebastien Senecal).

video.frei0r.hqdn3d
(?id:string,?spatial:'a,?temporal:'b,
 source(audio='#c,video='#d+1,midi='#e))->
source(audio='#c,video='#d+1,midi='#e)
where 'a, 'b is either float or ()->float

High quality 3D denoiser from Mplayer (by Marko Cebokli, Daniel Moreno).

video.frei0r.hue
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform a conversion to hue only of the source input1 using the hue of input2 (by Jean-Sebastien Senecal).

video.frei0r.hueshift0r
(?id:string,?hue:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Shifts the hue of a source image (by Jean-Sebastien Senecal).

video.frei0r.iir_blur
(?id:string,?amount:'a,?edge:bool,?type:'b,
 source(audio='#c,video='#d+1,midi='#e))->
source(audio='#c,video='#d+1,midi='#e)
where 'a, 'b is either float or ()->float

Three types of fast IIR blurring (by Marko Cebokli).

video.frei0r.invert0r
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Inverts all colors of a source image (by Gephex crew).

video.frei0r.ising0r
(?id:string,?border_growth:'a,?spontaneous_growth:'b,
 ?temperature:'c)->source(audio=0,video=1,midi=0)
where 'a, 'b, 'c is either float or ()->float

Generates ising noise (by Gephex crew).

video.frei0r.k_means_clustering
(?id:string,?dist_weight:'a,?num:'b,
 source(audio='#c,video='#d+1,midi='#e))->
source(audio='#c,video='#d+1,midi='#e)
where 'a, 'b is either float or ()->float

Clusters of a source image by color and spatial distance (by binarymillenium).

video.frei0r.lens_correction
(?id:string,?brightness:'a,?correctionnearcenter:'b,
 ?correctionnearedges:'c,?xcenter:'d,?ycenter:'e,
 source(audio='#f,video='#g+1,midi='#h))->
source(audio='#f,video='#g+1,midi='#h)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

Allows compensation of lens distortion (by Richard Spindler).

video.frei0r.letterb0xed
(?id:string,?border_width:'a,?transparency:bool,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Adds Black Borders at top and bottom for Cinema Look (by Richard Spindler).

video.frei0r.levels
(?id:string,?black_output:'a,?channel:'b,?gamma:'c,
 ?histogram_position:'d,?input_black_level:'e,
 ?input_white_level:'f,?show_histogram:bool,
 ?white_output:'g,source(audio='#h,video='#i+1,midi='#j))->
source(audio='#h,video='#i+1,midi='#j)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g is either float or ()->float

Adjust luminance or color channel intensity (by Maksim Golovkin).

video.frei0r.light_graffiti
(?id:string,?backgroundweight:'a,?blackreference:'b,
 ?dim:'c,?longalpha:'d,?loweroverexposure:'e,
 ?nonlineardim:'f,?reset:'g,?saturation:'h,
 ?sensitivity:'i,?statsbrightness:'j,?statsdifference:'k,
 ?statsdiffsum:'l,?thresholdbrightness:'m,
 ?thresholddifference:'n,?thresholddiffsum:'o,
 ?transparentbackground:'p,
 source(audio='#q,video='#r+1,midi='#s))->
source(audio='#q,video='#r+1,midi='#s)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, 'o, 'p is either float or ()->float

Creates light graffitis from a video by keeping the brightest spots (by Simon A. Eugster (Granjow)).

video.frei0r.lighten
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform a lighten operation between two sources (maximum value of both sources) (by Jean-Sebastien Senecal).

video.frei0r.lissajous0r
(?id:string,?ratiox:'a,?ratioy:'b)->
source(audio=0,video=1,midi=0)
where 'a, 'b is either float or ()->float

Generates Lissajous0r images (by Martin Bayer).

video.frei0r.luminance
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Creates a luminance map of the image (by Richard Spindler).

video.frei0r.mask0mate
(?id:string,?blur:'a,?bottom:'b,?invert:bool,?left:'c,
 ?right:'d,?top:'e,
 source(audio='#f,video='#g+1,midi='#h))->
source(audio='#f,video='#g+1,midi='#h)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

Creates an square alpha-channel mask (by Richard Spindler).

video.frei0r.medians
(?id:string,?size:'a,?type:string,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Implements several median-type filters (by Marko Cebokli).

video.frei0r.multiply
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform an RGB[A] multiply operation between the pixel sources (by Jean-Sebastien Senecal).

video.frei0r.nervous
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Flushes frames in time in a nervous way (by Tannenbaum, Kentaro, Jaromil).

video.frei0r.nikon_d90_stairstepping_fix
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Removes the Stairstepping from Nikon D90 videos (720p only) by interpolation (by Simon A. Eugster (Granjow)).

video.frei0r.nois0r
(?id:string)->source(audio=0,video=1,midi=0)

Generates white noise images (by Martin Bayer).

video.frei0r.nosync0r
(?id:string,?hsync:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Broken tv (by Martin Bayer).

video.frei0r.onecol0r
(?id:string,?color:int)->source(audio=0,video=1,midi=0)

Image with just one color (by Martin Bayer).

video.frei0r.opencvfacedetect
(?id:string,?alpha:'a,?antialias:'b,?classifier:string,
 ?color_1:int,?color_2:int,?color_3:int,?color_4:int,
 ?color_5:int,?neighbors:'c,?recheck:'d,?scale:'e,
 ?search_scale:'f,?shape:'g,?smallest:'h,?stroke:'i,
 ?threads:'j,source(audio='#k,video='#l+1,midi='#m))->
source(audio='#k,video='#l+1,midi='#m)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j is either float or ()->float

Detect faces and draw shapes on them (by binarymillenium, ddennedy).

video.frei0r.overlay
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform an RGB[A] overlay operation between the pixel sources, using the generalised algorithm: D = A * (B + (2 * B) * (255 - A)) (by Jean-Sebastien Senecal).

video.frei0r.partik0l
(?id:string,?down:'a,?up:'b)->
source(audio=0,video=1,midi=0)
where 'a, 'b is either float or ()->float

Particles generated on prime number sinusoidal blossoming (by Jaromil).

video.frei0r.perspective
(?id:string,?bottom_left:(float*float),
 ?bottom_right:(float*float),?top_left:(float*float),
 ?top_right:(float*float),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Distorts the image for a pseudo perspective (by Richard Spindler).

video.frei0r.pixeliz0r
(?id:string,?blocksizex:'a,?blocksizey:'b,
 source(audio='#c,video='#d+1,midi='#e))->
source(audio='#c,video='#d+1,midi='#e)
where 'a, 'b is either float or ()->float

Pixelize input image (by Gephex crew).

video.frei0r.plasma
(?id:string,?_1_move:'a,?_1_speed:'b,?_2_move:'c,
 ?_2_speed:'d,?_3_speed:'e,?_4_speed:'f)->
source(audio=0,video=1,midi=0)
where 'a, 'b, 'c, 'd, 'e, 'f is either float or ()->float

Demo scene 8bit plasma (by Jaromil).

video.frei0r.posterize
(?id:string,?levels:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Posterizes image by reducing the number of colors used in image (by Janne Liljeblad).

video.frei0r.pr0be
(?id:string,?_256_scale:bool,?big_window:bool,
 ?measurement:'a,?show_alpha:bool,?x:'b,?x_size:'c,?y:'d,
 ?y_size:'e,source(audio='#f,video='#g+1,midi='#h))->
source(audio='#f,video='#g+1,midi='#h)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

Measure video values (by Marko Cebokli).

video.frei0r.pr0file
(?id:string,?_256_scale:bool,?alpha_trace:bool,
 ?b_trace:bool,?channel:'a,?color:'b,?crosshair_color:'c,
 ?display_average:bool,?display_maximum:bool,
 ?display_minimum:bool,?display_rms:bool,?g_trace:bool,
 ?length:'d,?marker_1:'e,?marker_2:'f,?pb_trace:bool,
 ?pr_trace:bool,?r_trace:bool,?tilt:'g,?x:'h,?y:'i,
 ?y_trace:bool,source(audio='#j,video='#k+1,midi='#l))->
source(audio='#j,video='#k+1,midi='#l)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i is either float or ()->float

2D video oscilloscope (by Marko Cebokli).

video.frei0r.primaries
(?id:string,?factor:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Reduce image to primary colors (by Hedde Bosman).

video.frei0r.r
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Extracts Red from Image (by Richard Spindler).

video.frei0r.rgb_parade
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Displays a histogram of R, G and B of the video-data (by Albert Frisch).

video.frei0r.rgbnoise
(?id:string,?noise:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Adds RGB noise to image (by Janne Liljeblad).

video.frei0r.saturat0r
(?id:string,?saturation:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Adjusts the saturation of a source image (by Jean-Sebastien Senecal).

video.frei0r.saturation
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform a conversion to saturation only of the source input1 using the saturation level of input2 (by Jean-Sebastien Senecal).

video.frei0r.scale0tilt
(?id:string,?clip_bottom:'a,?clip_left:'b,?clip_right:'c,
 ?clip_top:'d,?scale_x:'e,?scale_y:'f,?tilt_x:'g,
 ?tilt_y:'h,source(audio='#i,video='#j+1,midi='#k))->
source(audio='#i,video='#j+1,midi='#k)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h is either float or ()->float

Scales, Tilts and Crops an Image (by Richard Spindler).

video.frei0r.scanline0r
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Interlaced blak lines (by Martin Bayer).

video.frei0r.screen
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform an RGB[A] screen operation between the pixel sources, using the generalised algorithm: D = 255 - (255 - A) * (255 - B) (by Jean-Sebastien Senecal).

video.frei0r.select0r
(?id:string,?color_to_select:int,?delta_b___i___i:'a,
 ?delta_g___b___chroma:'b,?delta_r___a___hue:'c,
 ?edge_mode:'d,?invert_selection:bool,?operation:'e,
 ?selection_subspace:'f,?slope:'g,?subspace_shape:'h,
 source(audio='#i,video='#j+1,midi='#k))->
source(audio='#i,video='#j+1,midi='#k)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h is either float or ()->float

Color based alpha selection (by Marko Cebokli).

video.frei0r.sharpness
(?id:string,?amount:'a,?size:'b,
 source(audio='#c,video='#d+1,midi='#e))->
source(audio='#c,video='#d+1,midi='#e)
where 'a, 'b is either float or ()->float

Unsharp masking (port from Mplayer) (by Marko Cebokli, Remi Guyomarch).

video.frei0r.sigmoidaltransfer
(?id:string,?brightness:'a,?sharpness:'b,
 source(audio='#c,video='#d+1,midi='#e))->
source(audio='#c,video='#d+1,midi='#e)
where 'a, 'b is either float or ()->float

Desaturates image and creates a particular look that could be called Stamp, Newspaper or Photocopy (by Janne Liljeblad).

video.frei0r.sobel
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Sobel filter (by Jean-Sebastien Senecal (Drone)).

video.frei0r.softglow
(?id:string,?blur:'a,?blurblend:'b,?brightness:'c,
 ?sharpness:'d,source(audio='#e,video='#f+1,midi='#g))->
source(audio='#e,video='#f+1,midi='#g)
where 'a, 'b, 'c, 'd is either float or ()->float

Does softglow effect on highlights (by Janne Liljeblad).

video.frei0r.softlight
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform an RGB[A] softlight operation between the pixel sources (by Jean-Sebastien Senecal).

video.frei0r.sop_sat
(?id:string,?aoffset:'a,?apower:'b,?aslope:'c,
 ?boffset:'d,?bpower:'e,?bslope:'f,?goffset:'g,
 ?gpower:'h,?gslope:'i,?roffset:'j,?rpower:'k,?rslope:'l,
 ?saturation:'m,source(audio='#n,video='#o+1,midi='#p))->
source(audio='#n,video='#o+1,midi='#p)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm is either float or ()->float

Slope/Offset/Power and Saturation color corrections according to the ASC CDL (Color Decision List) (by Simon A. Eugster (Granjow)).

video.frei0r.spillsupress
(?id:string,?supresstype:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Remove green or blue spill light from subjects shot in front of green or blue screen (by Janne Liljeblad).

video.frei0r.squareblur
(?id:string,?kernel_size:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Variable-size square blur (by Drone).

video.frei0r.subtract
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform an RGB[A] subtract operation of the pixel source input2 from input1 (by Jean-Sebastien Senecal).

video.frei0r.tehroxx0r
(?id:string,?interval:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Something videowall-ish (by Coma).

video.frei0r.test_pat_b
(?id:string,?aspect_type:'a,?manual_aspect:'b,?type:'c)->
source(audio=0,video=1,midi=0)
where 'a, 'b, 'c is either float or ()->float

Generates test card lookalikes (by Marko Cebokli).

video.frei0r.test_pat_c
(?id:string,?color_space:'a,?cross_section:'b,
 ?fullscreen:bool,?third_axis_value:'c)->
source(audio=0,video=1,midi=0)
where 'a, 'b, 'c is either float or ()->float

Generates cross sections of color spaces (by Marko Cebokli).

video.frei0r.test_pat_g
(?id:string,?aspect_type:'a,?manual_aspect:'b,
 ?negative:bool,?size_1:'c,?size_2:'d,?type:'e)->
source(audio=0,video=1,midi=0)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

Generates geometry test pattern images (by Marko Cebokli).

video.frei0r.test_pat_i
(?id:string,?amplitude:'a,?channel:'b,?negative:bool,
 ?tilt:'c,?type:'d,?width:'e)->
source(audio=0,video=1,midi=0)
where 'a, 'b, 'c, 'd, 'e is either float or ()->float

Generates spatial impulse and step test patterns (by Marko Cebokli).

video.frei0r.test_pat_l
(?id:string,?channel:'a,?type:'b)->
source(audio=0,video=1,midi=0)
where 'a, 'b is either float or ()->float

Generates linearity checking patterns (by Marko Cebokli).

video.frei0r.test_pat_r
(?id:string,?amplitude:'a,?aspect_type:'b,?channel:'c,
 ?freq_1:'d,?freq_2:'e,?lin_p_swp:bool,?manual_aspect:'f,
 ?type:'g)->source(audio=0,video=1,midi=0)
where
  'a, 'b, 'c, 'd, 'e, 'f, 'g is either float or ()->float

Generates resolution test patterns (by Marko Cebokli).

video.frei0r.threelay0r
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Dynamic 3 level thresholding (by Hedde Bosman).

video.frei0r.threshold0r
(?id:string,?threshold:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Thresholds a source image (by Jean-Sebastien Senecal).

video.frei0r.timeout_indicator
(?id:string,?color:int,?time:'a,?transparency:'b,
 source(audio='#c,video='#d+1,midi='#e))->
source(audio='#c,video='#d+1,midi='#e)
where 'a, 'b is either float or ()->float

Timeout indicators e.g. for slides (by Simon A. Eugster).

video.frei0r.tint0r
(?id:string,?map_black_to:int,?map_white_to:int,
 ?tint_amount:'a,source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Tint a source image with specified color (by Maksim Golovkin).

video.frei0r.transparency
(?id:string,?transparency:'a,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Tunes the alpha channel (by Richard Spindler).

video.frei0r.twolay0r
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Dynamic thresholding (by Martin Bayer).

video.frei0r.uv_map
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Uses Input 1 as UV Map to distort Input 2 (by Richard Spindler).

video.frei0r.value
(?id:string,source(audio='#a,video='#b+1,midi='#c),
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Perform a conversion to value only of the source input1 using the value of input2 (by Jean-Sebastien Senecal).

video.frei0r.vectorscope
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Displays the vectorscope of the video-data (by Albert Frisch).

video.frei0r.vertigo
(?id:string,?phaseincrement:'a,?zoomrate:'b,
 source(audio='#c,video='#d+1,midi='#e))->
source(audio='#c,video='#d+1,midi='#e)
where 'a, 'b is either float or ()->float

Alpha blending with zoomed and rotated images (by Fukuchi Kentarou).

video.frei0r.vignette
(?id:string,?aspect:'a,?clearcenter:'b,?soft:'c,
 source(audio='#d,video='#e+1,midi='#f))->
source(audio='#d,video='#e+1,midi='#f)
where 'a, 'b, 'c is either float or ()->float

Lens vignetting effect, applies natural vignetting (by Simon A. Eugster (Granjow)).

video.frei0r.white_balance
(?id:string,?color_temperature:'a,?neutral_color:int,
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

Do simple color correction, in a physically meaningful way (by Steinar H. Gunderson).

video.frei0r.xfade0r
(?id:string,?fader:'a,
 source(audio='#b,video='#c+1,midi='#d),
 source(audio='#b,video='#c+1,midi='#d))->
source(audio='#b,video='#c+1,midi='#d)
where 'a is either float or ()->float

A simple xfader (by Martin Bayer).

video.greyscale
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Convert video to greyscale.

video.invert
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Invert video.

video.lomo
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Emulate the “Lomo effect”.

video.opacity
(?id:string,float,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Scale opacity of video.

video.opacity.blur
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Blur opacity of video.

video.rotate
(?id:string,?angle:'a,?speed:'b,
 source(audio='#c,video='#d+1,midi='#e))->
source(audio='#c,video='#d+1,midi='#e)
where 'a, 'b is either float or ()->float

Rotate video.

video.scale
(?id:string,?scale:float,?x:int,?xscale:float,?y:int,
 ?yscale:float,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Scale and translate video.

video.sepia
(?id:string,source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Convert video to sepia.

video.tile
(?id:string,?normalize:bool,?proportional:bool,
 ?weights:[int],[source(audio='#a,video='#b+1,midi='#c)])->
source(audio='#a,video='#b+1,midi='#c)

Tile sources (same as add but produces tiles of videos).

video.transparent
(?id:string,?color:int,?precision:float,
 source(audio='#a,video='#b+1,midi='#c))->
source(audio='#a,video='#b+1,midi='#c)

Set a color to be transparent.

Source / Visualization

rms
(?id:string,?duration:'a,
 source(audio='#b,video='#c,midi='#d))->
((()->float)*source(audio='#b,video='#c,midi='#d))
where 'a is either float or ()->float

Get current audio RMS volume of the source. Returns a pair (f,s) where s is a new source and f is a function of type () -> float and returns the current RMS of the source.

rms.stereo
(?id:string,?duration:'a,
 source(audio='#b+2,video='#c,midi='#d))->
((()->(float*float))*
 source(audio='#b+2,video='#c,midi='#d))
where 'a is either float or ()->float

Get current audio RMS volume of the source. Returns a pair (f,s) where s is a new source and f is a function of type () -> float and returns the current RMS of the source.

server.rms
(?id:string,source(audio='#a,video='#b,midi='#c))->
source(audio='#a,video='#b,midi='#c)

Register a command that outputs the RMS of the returned source.

video.volume
(?id:string,source(audio='#a+1,video=0,midi=0))->
source(audio='#a+1,video=1,midi=0)

Graphical visualization of the sound.

visu.volume
(?id:string,source(audio='#a+1,video=0,midi=0))->
source(audio='#a+1,video=0,midi=0)

Graphical visualization of the volume.

vumeter
(?id:string,?scroll:bool,
 source(audio='#a+1,video='#b,midi='#c))->
source(audio='#a+1,video='#b,midi='#c)

VU meter (display the audio volume).

Bool

!=
('a,'a)->bool where 'a is an orderable type

Comparison of comparable values.

<
('a,'a)->bool where 'a is an orderable type

Comparison of comparable values.

<=
('a,'a)->bool where 'a is an orderable type

Comparison of comparable values.

==
('a,'a)->bool where 'a is an orderable type

Comparison of comparable values.

>
('a,'a)->bool where 'a is an orderable type

Comparison of comparable values.

>=
('a,'a)->bool where 'a is an orderable type

Comparison of comparable values.

and
(bool,bool)->bool

Return the conjunction of its arguments

not
(bool)->bool

Returns the negation of its argument.

or
(bool,bool)->bool

Return the disjunction of its arguments

random.bool
()->bool

Generate a random value.

Control

add_timeout
(?fast:bool,float,(()->float))->unit

Call a function in N seconds. If the result of the function is positive or null, the task will be scheduled again after this amount of time (in seconds).

ignore
('a)->unit

Convert anything to unit, preventing warnings.

Interaction

add_skip_command
(source('a))->unit

Add a skip function to a source when it does not have one by default.

audioscrobbler.nowplaying
(user:string,password:string,?host:string,?port:int,
 ?length:bool,[(string*string)])->unit

Submit a now playing song using the audioscrobbler protocol.

audioscrobbler.submit
(?source:string,user:string,password:string,?host:string,
 ?port:int,?length:bool,[(string*string)])->unit

Submit a played song using the audioscrobbler protocol.

http.get
(?headers:[(string*string)],?timeout:float,string)->
((((string*int)*string)*[(string*string)])*string)

Perform a full Http GET request and return (status,headers),data.

http.post
(?data:string,?headers:[(string*string)],?timeout:float,
 string)->
((((string*int)*string)*[(string*string)])*string)

Perform a full Http POST request and return (status,headers),data.

icy.update_metadata
(?host:string,?port:int,?user:string,?password:string,
 mount:string,?protocol:string,?encoding:string,
 ?headers:[(string*string)],[(string*string)])->unit

Update metata on an icecast mountpoint using the ICY protocol.

interactive.bool
(string,bool)->()->bool

Read a boolean from an interactive input.

interactive.float
(string,float)->()->float

Read a float from an interactive input.

interactive.string
(string,string)->()->string

Read a string from an interactive input.

osc.bool
(string,bool)->()->bool

Read from an OSC path.

osc.float
(string,float)->()->float

Read from an OSC path.

osc.float_pair
(string,(float*float))->()->(float*float)

Read from an OSC path.

osc.on_bool
(string,((bool)->unit))->unit

Register a callback on OSC messages.

osc.on_float
(string,((float)->unit))->unit

Register a callback on OSC messages.

osc.on_float_pair
(string,(((float*float))->unit))->unit

Register a callback on OSC messages.

osc.on_string
(string,((string)->unit))->unit

Register a callback on OSC messages.

osc.on_string_pair
(string,(((string*string))->unit))->unit

Register a callback on OSC messages.

osc.send_bool
(host:string,port:int,string,bool)->unit

Send a value to an OSC client.

osc.send_float
(host:string,port:int,string,float)->unit

Send a value to an OSC client.

osc.send_float_pair
(host:string,port:int,string,(float*float))->unit

Send a value to an OSC client.

osc.send_string
(host:string,port:int,string,string)->unit

Send a value to an OSC client.

osc.send_string_pair
(host:string,port:int,string,(string*string))->unit

Send a value to an OSC client.

osc.string
(string,string)->()->string

Read from an OSC path.

osc.string_pair
(string,(string*string))->()->(string*string)

Read from an OSC path.

print
(?newline:bool,'a)->unit

Print on standard output.

server.register
(?namespace:string,?description:string,?usage:string,
 string,((string)->string))->unit

Register a command. You can then execute this function through the server, either telnet or socket.

Liquidsoap

add_decoder
(name:string,description:string,?mimes:[string],
 test:((string)->int),string)->unit

Register an external decoder. The encoder should output in WAV format to his standard output (stdout) and read data from its standard input (stdin).

add_metadata_resolver
(string,((string)->[(string*string)]))->unit

Register an external file metadata decoder.

add_oblivious_decoder
(name:string,description:string,test:((string)->int),
 ?buffer:float,((string)->string))->unit

Register an external file decoder. The encoder should output in WAV format to his standard output (stdout) and read data from the file it receives. The estimated remaining duration for this decoder will be unknown until the buffer last seconds of the file. If possible, it is recommended to decode from stdin and use add_decoder.

add_protocol
(?temporary:bool,string,((string,float)->[string]))->unit

Register a new protocol.

clock
(?sync:bool,?id:string,source('a))->source('a)

Assign a new clock to the given source (and to other time-dependent sources) and return the source. It is a conveniency wrapper around clock.assign_new(), allowing more concise scripts in some cases.

clock.assign_new
(?id:string,?sync:bool,[source('a)])->unit

Create a new clock and assign it to a list of sources.

clock.unify
([source('a)])->unit

Enforce that a list of sources all belong to the same clock.

configure.default_font
string

Liquidsoap's default font file.

configure.libdir
string

Liquidsoap's library directory.

configure.logdir
string

Liquidsoap's logging directory.

configure.rundir
string

Liquidsoap's PID file directory.

enable_replaygain_metadata
(?extract_replaygain:string)->unit

Enable replay gain metadata resolver. This resolver will process any file decoded by liquidsoap and add a replay_gain metadata when this value could be computed. For a finer-grained replay gain processing, use the replay_gain protocol.

file.duration
(string)->float

Compute the duration in seconds of audio data contained in a file. The computation may be expensive. Returns -1. if computation failed, typically if the file was not recognized as valid audio.

file.mime
(string)->string

Get the MIME type of a file, according to libmagic.

garbage_collect
()->unit

Trigger full major garbage collection.

get
(default:'a,string)->'a
where 'a is bool, int, float, string or [string]

Get a setting's value.

get_clock_status
()->[(string*int)]

Get the current time for all allocated clocks.

harbor.http.register
(port:int,method:string,string,
 ((protocol:string,data:string,headers:[(string*string)],
   string)->string))->unit

Register a HTTP handler on the harbor. The given function receives as argument the full requested uri (e.g. “foo?var=bar”), http protocol version, possible input data and the list of HTTP headers and returns the answer sent to the client, including HTTP headers. Registered uri can be regular expressions (e.g. “.+\.php”) and can override default metadata handlers.

harbor.http.remove
(method:string,port:int,string)->unit

Remove a registered HTTP handler on the harbor.

liquidsoap.version
string

Liquidsoap version string.

log
(?label:string,?level:int,string)->unit

Log a message.

log_clocks
(?delay:float,?interval:float,string)->unit

Create a log of clock times for all the clocks initially present. The log is in a simple format which you can directly use with gnuplot.

metadata.export
([(string*string)])->[(string*string)]

Filter-out internal metadata.

playlist.parse
(string)->[([(string*string)]*string)]

Try to parse a local playlist. Return a list of (metadata,URI) items, where metadata is a list of (key,value) bindings.

replaygain_protocol
(string,'a)->[string]

Register the replaygain protocol.

request.create
(?indicators:[string],?persistent:bool,string)->
request('a)

Create a request. Creation may fail if there is no available RID, which cannot be detected currently: in that case one will obtain a request that will fail to be resolved.

request.create.raw
(?indicators:[string],?persistent:bool,string)->
request(audio=0,video=0,midi=0)

Create a raw request, i.e. for files that should not be decoded for streaming. Creation may fail if there is no available RID, which cannot be detected currently: in that case one will obtain a request that will fail to be resolved.

request.destroy
(?force:bool,request('a))->unit

Destroying a request causes any temporary associated file to be deleted, and releases its RID. Persistent requests resist to destroying, unless forced.

request.filename
(request('a))->string

Return a valid local filename if the request is ready, and the empty string otherwise.

request.metadata
(request('a))->[(string*string)]

Get the metadata associated to a request.

request.ready
(request('a))->bool

Check if a request is ready, i.e. is associated to a valid local file. Unless the initial URI was such a file, a request has to be resolved before being ready.

request.resolve
(?timeout:float,request('a))->bool

Resolve a request, i.e. attempt to get a valid local file. The operation can take some time. Return true if the resolving was successful, false otherwise (timeout or invalid URI).

server.execute
(string,?string)->[string]

Execute a liquidsoap server command.

set
(string,'a)->unit
where 'a is bool, int, float, string or [string]

Change some setting. Use liquidsoap --conf-descr and liquidsoap --conf-descr-key KEY on the command-line to get some information about available settings.

source.fallible
(source('a))->bool

Indicate if a source may fail, i.e. may not be ready to stream.

source.id
(source('a))->string

Get one source's identifier.

source.init
([source(audio=*,video=*,midi=*)])->
[source(audio=*,video=*,midi=*)]

Simultaneously initialize sources, return the sublist of sources that failed to initialized.

source.is_ready
(source('a))->bool

Indicate if a source is ready to stream, or currently streaming.

source.remaining
(source('a))->float

Estimation of remaining time in the current track.

source.seek
(source('a),float)->float

Seek forward, in seconds. Returns the amount of time effectively seeked.

source.shutdown
(source('a))->unit

Desactivate a source.

source.skip
(source('a))->unit

Skip to the next track.

List

_[_]
(string,[(string*string)])->string

l[k] returns the first v such that (k,v) is in the list l (or “” if no such v exists).

list.add
('a,['a])->['a]

Add an element at the top of a list.

list.append
(['a],['a])->['a]

Catenate two lists.

list.assoc
(string,[(string*string)])->string

Alias for the l[k] notation.

list.filter
((('a)->bool),['a])->['a]

Filter a list according to a filtering function.

list.fold
((('a,'b)->'a),'a,['b])->'a

Fold a function on every element of a list: list.fold(f,x1,[e1,..,en]) is f(...f(f(x1,e1),e2)...,en).

list.hd
([string])->string

Return the head (first element) of a list, or “” if the list is empty.

list.iter
((('a)->unit),['a])->unit

Call a function on every element of a list.

list.length
(['a])->int

Get the length of a list, i.e. its number of elements.

list.map
((('a)->'b),['a])->['b]

Map a function on every element of a list.

list.mem
('a,['a])->bool where 'a is an orderable type

Check if an element belongs to a list.

list.mem_assoc
('a,[('a*'b)])->bool where 'a is an orderable type

list.mem_assoc(key,l) returns true if l contains a pair (key,value)

list.nth
(['a],int)->'a

Get the n-th element of a list (the first element is at position 0).

list.randomize
(['a])->['a]

Shuffle the content of a list.

list.remove
('a,['a])->['a]

Remove a value from a list.

list.remove_assoc
(string,[(string*string)])->[(string*string)]

Remove a pair from an associative list

list.rev
(['a])->['a]

Revert list order.

list.sort
((('a,'a)->int),['a])->['a]

Sort a list according to a comparison function.

list.tl
(['a])->['a]

Return the list without its first element.

Math

*
('a,'a)->'a where 'a is a number type

Multiplication of numbers.

+
('a,'a)->'a where 'a is a number type

Addition of numbers.

-
('a,'a)->'a where 'a is a number type

Substraction of numbers.

/
('a,'a)->'a where 'a is a number type

Division of numbers.

abs
('a)->'a where 'a is a number type

Absolute value.

bool_of_float
(float)->bool

Convert a float to a bool.

bool_of_int
(int)->bool

Convert an int to a bool.

dB_of_lin
(float)->float

Convert linear scale into decibels.

float_of_int
(int)->float

Convert an int to a float.

int_of_float
(float)->int

Convert a float to a int.

lin_of_dB
(float)->float

Convert decibels into linear scale.

mod
(int,int)->int

Integer remainder. If y is not zero, x == (x / y) * y + x mod y, and abs(x mod y) <= abs(y)-1.

pow
('a,'a)->'a where 'a is a number type

Exponentiation of numbers.

random.float
(?min:float,?max:float)->float

Generate a random value.

random.int
(?min:float,?max:float)->int

Generate a random value.

~-
('a)->'a where 'a is a number type

Returns the opposite of its argument.

Pair

fst
(('a*'b))->'a

Get the first component of a pair.

snd
(('a*'b))->'b

Get the second component of a pair.

String

%
(string,[(string*string)])->string

pattern % [...,(k,v),...] changes in the pattern occurences of: - $(k) into v; - $(if $(k2),"a","b") into “a” if k2 is found in the list, “b” otherwise.

^
(string,string)->string

Concatenate strings.

base64.decode
(string)->string

Decode a Base64 encoded string.

base64.encode
(string)->string

Encode a string in Base64.

bool_of_string
(?default:bool,string)->bool

Convert a string to a bool.

float_of_string
(?default:float,string)->float

Convert a string to a float.

int_of_string
(?default:int,string)->int

Convert a string to a int.

json_of
(?compact:bool,'a)->string

Convert a value to a json string.

of_json
(default:'a,string)->'a

Parse a json string into a liquidsoap value.

quote
(string)->string

Escape shell metacharacters.

string.capitalize
(?capitalize:bool,?space_sensitive:bool,string)->string

Return a string with the first character set to upper case (capitalize), or to lower case (uncapitalize).

string.case
(?lower:bool,string)->string

Convert a string to lower or upper case.

string.concat
(?separator:string,[string])->string

Concatenate strings.

string.escape
(?special_chars:[string],?escape_char:((string)->string),
 string)->string

Escape special charaters in a string. String is parsed char by char. See string.utf8.escape for an UTF8-aware parsing function.

string.extract
(pattern:string,string)->[(string*string)]

Extract substrings from a string. Perl compatible regular expressions are recognized. Hence, special characters should be escaped. Returns a list of (index,value). If the list does not have a pair associated to some index, it means that the corresponding pattern was not found.

string.length
(string)->int

Get the length of a string.

string.match
(pattern:string,string)->bool

Match a string with an expression. Perl compatible regular expressions are recognized. Hence, special characters should be escaped.

string.recode
(?in_enc:string,?out_enc:string,string)->string

Convert a string. Effective only if Camomile is enabled.

string.replace
(pattern:string,((string)->string),string)->string

Replace substrings in a string. Will replace all substrings matched in the pattern by the string returned by the replace function.

string.split
(separator:string,string)->[string]

Split a string at 'separator'. Perl compatible regular expressions are recognized. Hence, special characters should be escaped.

string.utf8.escape
(?special_chars:[string],?escape_char:((string)->string),
 string)->string

Escape special charaters in an UTF8 string.

string_of
('a)->string

Return the representation of a value.

url.decode
(?plus:bool,string)->string

Decode an encoded url (e.g. “%20” becomes “ ”).

url.encode
(?plus:bool,string)->string

Encode an url (e.g. “ ” becomes “%20”).

url.split
(string)->(string*[(string*string)])

Split an url of the form foo?arg=bar&arg2=bar2 into (“foo”,[(“arg”,“bar”),(“arg2”,“bar2”)]).

url.split_args
(string)->[(string*string)]

Split the arguments of an url of the form arg=bar&arg2=bar2 into [(“arg”,“bar”),(“arg2”,“bar2”)].

System

argv
(?default:string,int)->string

Get command-line parameters.

basename
(string)->string

Get the base name of a path.

dirname
(string)->string

Get the directory name of a path.

environment
()->[(string*string)]

Return the process environment.

exe_ext
string

Executable file extension.

exec_at
(?freq:float,pred:(()->bool),(()->unit))->unit

Execute a given action when a predicate is true. This will be run in background.

file.exists
(string)->bool

Returns true if the file or directory exists.

file.mime_default
(string)->string

Alias of file.mime (because it is available)

file.watch
(string,(()->unit))->()->unit

Call a function when a file is modified. Returns unwatch function.

get_mime
(string)->string

Generic mime test. First try to use file.mime if it exist. Otherwise try to get the value using the file binary. Returns “” (empty string) if no value can be found.

get_process_lines
(string)->[string]

Perform a shell call and return the list of its output lines.

get_process_output
(string)->string

Perform a shell call and return its output.

getenv
(string)->string

Get the value associated to a variable in the process environment. Return “” if variable is not set.

getopt
(?default:string,string)->string

Parse command line options: getopt("-o") returns “1” if “-o” was passed without any parameter, “0” otherwise. getopt(default="X","-o") returns “Y” if “-o Y” was passed, “X” otherwise. The result is removed from the list of arguments, affecting subsequent calls to argv() and getopt().

getpid
()->int

Get the process' pid.

gettimeofday
()->float

Return the current time since 00:00:00 GMT, Jan. 1, 1970, in seconds.

is_directory
(string)->bool

Returns true if the directory exists.

on_shutdown
((()->unit))->unit

Register a function to be called when Liquidsoap shuts down.

os.type
string

Type of OS running liquidsoap.

path.concat
(string,string)->string

Concatenate two paths, using the appropriate directory separator.

read
(?hide:bool)->string

Read some value from standard input (console).

reopen.stderr
(string)->unit

Reopen standard error on the given file

reopen.stdin
(string)->unit

Reopen standard input on the given file

reopen.stdout
(string)->unit

Reopen standard output on the given file

restart
()->unit

Restart the application.

setenv
(string,string)->unit

Set the value associated to a variable in the process environment.

shutdown
()->unit

Shutdown the application.

source.is_up
(source('a))->bool

Check whether a source is up.

source.on_shutdown
(source('a),(()->unit))->unit

Register a function to be called when source shuts down.

system
(string)->unit

Shell command call. Set verbose to true to log process' output and errors.

test_process
(string)->bool

Return true if process exited with 0 code. Command should return quickly.

Uncategorized

playlist.merge
(?id:string,?random:bool,string)->source('a)

Play the whole playlist as one track.