# Autotuner

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
note: | 0 | formant_ratio: | 1.0

``

    with_fx :autotuner do
      play 50
    end

Autotune/phase vocoder effect. Used without any arguments, it tries to detect the pitch and shift it to the nearest exact note. This can help with out of tune singing, but it’s also an interesting effect in it’s own right. When used with the target_pitch: arg, it tries to shift the input to match that pitch instead. This gives that classic “robot singing” sound that people associate with vocoders. This can then be changed using the control method to create new melodies.

`with_fx :autotuner do |c|`

`sample "~/Downloads/acappella.wav" # any sample with a voice is good`

`sleep 4`

`# listen to standard auto-tune behaviour for 4 seconds`

`64.times do`

`# now start changing note: to get robot voice behaviour`

`control c, note: (scale :a2, :minor_pentatonic, num_octaves: 2).choose`

`sleep 0.5`

`end`

`end`

Introduced in v3.2

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
note: | Midi note to shift pitch to. The quality of the sound depends on how stable the pitch of the input is. Default: 0 Must be a value between 0 and 127 inclusively May be changed whilst playing

formant_ratio:

This effect separates pitched content of an input from the formant sounds (percussive, non-pitched sounds like “ssss” and “ttttt”). Changing the formant ratio shifts the non-pitched sounds - lower pitched formants (0.5) sound like someone with a deep voice, higher values (e.g. 2.0 and above) sound like a high pitched voice.

Default: 1.0
Must be a value between 0 and 10 inclusively
May be changed whilst playing

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Band EQ Filter

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
freq: | 100 | res: | 0.6 | db: | 0.6

``

    with_fx :band_eq do
      play 50
    end

Attenuate or Boost a frequency band

Introduced in v2.8

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
freq: | Centre frequency of the band in MIDI. Default: 100 Must be greater than zero May be changed whilst playing Has slide options to shape changes
res: | Width of the band as a value between 0 and 1 Default: 0.6 Must be zero or greater,must be a value less than 1 May be changed whilst playing Has slide options to shape changes
db: | Amount of boost or attenuation of the frequency band. A positive value boosts frequencies in the band, a negative value attenuates them. Default: 0.6 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Bitcrusher

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
sample_rate: | 10000 | bits: | 8 | cutoff: | 0

``

    with_fx :bitcrusher do
      play 50
    end

Creates lo-fi output by decimating and deconstructing the incoming audio by lowering both the sample rate and bit depth. The default sample rate for CD audio is 44100, so use values less than that for that crunchy chip-tune sound full of artefacts and bitty distortion. Similarly, the default bit depth for CD audio is 16, so use values less than that for lo-fi sound.

Introduced in v2.3

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

sample_rate:

The sample rate the audio will be resampled at. This represents the number of times per second the audio is sampled. The higher the sample rate, the closer to the original the sound will be, the lower the more low-fi it will sound. The highest sample rate is 44100 (full quality) and the lowest is ~100 (extremely low quality). Try values in between such as 1000, 3000, 8000…

Default: 10000
Must be greater than zero
May be changed whilst playing
Has slide options to shape changes

bits: | The bit depth of the resampled audio. Lower bit depths make the audio sound grainy and less defined. The highest bit depth is 16 (full quality) and the lowest is 1 (lowest quality). Default: 8 Must be greater than zero May be changed whilst playing Has slide options to shape changes
cutoff: | MIDI note representing the highest frequencies allowed to be present in the sound. A low value like 30 makes the sound round and dull, a high value like 100 makes the sound buzzy and crispy. Default: 0 Must be zero or greater,must be a value less than 131 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Band Pass Filter

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
centre: | 100 | res: | 0.6

``

    with_fx :bpf do
      play 50
    end

Combines low pass and high pass filters to only allow a ‘band’ of frequencies through. If the band is very narrow (a low res value like 0.0001) then the BPF will reduce the original sound, almost down to a single frequency (controlled by the centre opt).

With higher values for res we can simulate other filters e.g. telephone lines, by cutting off low and high frequencies.

Use FX `:band_eq` with a negative db for the opposite effect - to attenuate a given band of frequencies.

Introduced in v2.3

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
centre: | Centre frequency for the filter as a MIDI note. Default: 100 Must be a value greater than or equal to 0 May be changed whilst playing Has slide options to shape changes
res: | Filter resonance as a value between 0 and 1. Large amounts of resonance (a res: near 1) can create a whistling sound around the cutoff frequency. Smaller values produce less resonance. Default: 0.6 Must be zero or greater,must be a value less than 1 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Compressor

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
threshold: | 0.2 | clamp_time: | 0.01 | slope_above: | 0.5 | slope_below: | 1
relax_time: | 0.01

``

    with_fx :compressor do
      play 50
    end

Compresses the dynamic range of the incoming signal. Equivalent to automatically turning the amp down when the signal gets too loud and then back up again when it’s quiet. Useful for ensuring the containing signal doesn’t overwhelm other aspects of the sound. Also a general purpose hard-knee dynamic range processor which can be tuned via the opts to both expand and compress the signal.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
threshold: | Threshold value determining the break point between slope_below and slope_above. Default: 0.2 Must be zero or greater May be changed whilst playing Has slide options to shape changes
clamp_time: | Time taken for the amplitude adjustments to kick in fully (in seconds). This is usually pretty small (not much more than 10 milliseconds). Also known as the time of the attack phase Default: 0.01 Must be zero or greater May be changed whilst playing Has slide options to shape changes
slope_above: | Slope of the amplitude curve above the threshold. A value of 1 means that the output of signals with amplitude above the threshold will be unaffected. Greater values will magnify and smaller values will attenuate the signal. Default: 0.5 May be changed whilst playing Has slide options to shape changes
slope_below: | Slope of the amplitude curve below the threshold. A value of 1 means that the output of signals with amplitude below the threshold will be unaffected. Greater values will magnify and smaller values will attenuate the signal. Default: 1 May be changed whilst playing Has slide options to shape changes
relax_time: | Time taken for the amplitude adjustments to be released. Usually a little longer than clamp_time. If both times are too short, you can get some (possibly unwanted) artefacts. Also known as the time of the release phase. Default: 0.01 Must be zero or greater May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Distortion

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
distort: | 0.5

``

    with_fx :distortion do
      play 50
    end

Distorts the signal reducing clarity in favour of raw crunchy noise.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
distort: | Amount of distortion to be applied (as a value between 0 and 1) Default: 0.5 Must be a value greater than or equal to 0,must be a value less than 1 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Echo

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
phase: | 0.25 | decay: | 2 | max_phase: | 2

``

    with_fx :echo do
      play 50
    end

Standard echo with variable phase duration (time between echoes) and decay (length of echo fade out). If you wish to have a phase duration longer than 2s, you need to specify the longest phase duration you’d like with the arg max_phase. Be warned, echo FX with very long phases can consume a lot of memory and take longer to initialise.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
phase: | The time between echoes in beats. Default: 0.25 Must be greater than zero May be changed whilst playing Has slide options to shape changes Scaled with current BPM value
decay: | The time it takes for the echoes to fade away in beats. Default: 2 Must be greater than zero May be changed whilst playing Has slide options to shape changes Scaled with current BPM value
max_phase: | The maximum phase duration in beats. Default: 2 Must be greater than zero Can not be changed once set Scaled with current BPM value

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# EQ

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
low_shelf: | 0 | low_shelf_note: | 43.349957 | low_shelf_slope: | 1 | low: | 0
low_note: | 59.2130948 | low_q: | 0.6 | mid: | 0 | mid_note: | 83.2130948
mid_q: | 0.6 | high: | 0 | high_note: | 104.9013539 | high_q: | 0.6
high_shelf: | 0 | high_shelf_note: | 114.2326448 | high_shelf_slope: | 1

``

    with_fx :eq do
      play 50
    end

Basic parametric EQ

Introduced in v3.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
low_shelf: | Gain - boost or cut the centre frequency. The low shelf defines the characteristics of the lowest part of the eq FX. A value of 0 will neither boost or cut the low_shelf frequencies. A value of 1 will boost by 15 dB and a value of -1 will cut/attenuate by -15 dB. Default: 0 May be changed whilst playing Has slide options to shape changes
low_shelf_note: | Centre frequency of low shelf in MIDI notes. Default: 43.349957 Must be a value greater than 1 May be changed whilst playing Has slide options to shape changes
low_shelf_slope: | Low shelf boost/cut slope. When set to 1 (the default), the shelf slope is as steep as it can be and remain monotonically increasing or decreasing gain with frequency. Default: 1 Must be a value greater than or equal to 0,must be a value less than or equal to 1 May be changed whilst playing Has slide options to shape changes
low: | Gain - boost or cut the centre frequency of the bass part of the sound. The low shelf defines the characteristics of the bass of the eq FX. A value of 0 will neither boost or cut the bass frequencies. A value of 1 will boost by 15 dB and a value of -1 will cut/attenuate by -15 dB. Default: 0 May be changed whilst playing Has slide options to shape changes
low_note: | Centre frequency of the low eq parameter in MIDI notes. Default: 59.2130948 Must be a value greater than 1 May be changed whilst playing Has slide options to shape changes

low_q:

The Q factor for the low eq parameter.

The Q factor controls the width of frequencies that will be affected by the low parameter of this eq FX. A low Q factor gives a wide bandwidth affecting a larger range of frequencies. A high Q factor will give a narrow bandwidth affecting a much smaller range of frequencies.

Here’s a list of various Q factors and an approximate corresponding frequency width:

0.7 -> 2 octaves 1 -> 1 1/3 octaves 1.4 -> 1 octave 2.8 -> 1/2 octave 4.3 -> 1/3 octave 8.6 -> 1/6 octave

A decent range of Q factors for naturally sounding boosts/cuts is 0.6 to 1.

Default: 0.6
Must be a value greater than or equal to 0.001,must be a value less than or equal to 100
May be changed whilst playing
Has slide options to shape changes

mid: | Gain - boost or cut the centre frequency of the middle part of the sound. The mid shelf defines the characteristics of the bass of the eq FX. A value of 0 will neither boost or cut the bass frequencies. A value of 1 will boost by 15 dB and a value of -1 will cut/attenuate by -15 dB. Default: 0 May be changed whilst playing Has slide options to shape changes
mid_note: | Centre frequency of the mid eq parameter in MIDI notes. Default: 83.2130948 Must be a value greater than 1 May be changed whilst playing Has slide options to shape changes

mid_q:

The Q factor for the mid eq parameter.

The Q factor controls the width of frequencies that will be affected by the mid parameter of this eq FX. A mid Q factor gives a wide bandwidth affecting a larger range of frequencies. A high Q factor will give a narrow bandwidth affecting a much smaller range of frequencies.

Here’s a list of various Q factors and an approximate corresponding frequency width:

0.7 -> 2 octaves 1 -> 1 1/3 octaves 1.4 -> 1 octave 2.8 -> 1/2 octave 4.3 -> 1/3 octave 8.6 -> 1/6 octave

A decent range of Q factors for naturally sounding boosts/cuts is 0.6 to 1.

Default: 0.6
Must be a value greater than or equal to 0.001,must be a value less than or equal to 100
May be changed whilst playing
Has slide options to shape changes

high: | Gain - boost or cut the centre frequency of the high part of the sound. The high shelf defines the characteristics of the treble of the eq FX. A value of 0 will neither boost or cut the treble frequencies. A value of 1 will boost by 15 dB and a value of -1 will cut/attenuate by -15 dB. Default: 0 May be changed whilst playing Has slide options to shape changes
high_note: | Centre frequency of the high eq parameter in MIDI notes. Default: 104.9013539 Must be a value greater than 1 May be changed whilst playing Has slide options to shape changes

high_q:

The Q factor for the high eq parameter.

The Q factor controls the width of frequencies that will be affected by the high parameter of this eq FX. A high Q factor gives a wide bandwidth affecting a larger range of frequencies. A high Q factor will give a narrow bandwidth affecting a much smaller range of frequencies.

Here’s a list of various Q factors and an approximate corresponding frequency width:

0.7 -> 2 octaves 1 -> 1 1/3 octaves 1.4 -> 1 octave 2.8 -> 1/2 octave 4.3 -> 1/3 octave 8.6 -> 1/6 octave

A decent range of Q factors for naturally sounding boosts/cuts is 0.6 to 1.

Default: 0.6
Must be a value greater than or equal to 0.001,must be a value less than or equal to 100
May be changed whilst playing
Has slide options to shape changes

high_shelf: | Gain - boost or cut the centre frequency. The high shelf defines the characteristics of the highest part of the eq FX. A value of 0 will neither boost or cut the high_shelf frequencies. A value of 1 will boost by 15 dB and a value of -1 will cut/attenuate by -15 dB. Default: 0 May be changed whilst playing Has slide options to shape changes
high_shelf_note: | Centre frequency of high shelf in MIDI notes. Default: 114.2326448 Must be a value greater than 1 May be changed whilst playing Has slide options to shape changes
high_shelf_slope: | High shelf boost/cut slope. When set to 1 (the default), the shelf slope is as steep as it can be and remain monotonically increasing or decreasing gain with frequency. Default: 1 Must be a value greater than or equal to 0,must be a value less than or equal to 1 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Flanger

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
phase: | 4 | phase_offset: | 0 | wave: | 4 | invert_wave: | 0
stereo_invert_wave: | 0 | delay: | 5 | max_delay: | 20 | depth: | 5
decay: | 2 | feedback: | 0 | invert_flange: | 0

``

    with_fx :flanger do
      play 50
    end

Mix the incoming signal with a copy of itself which has a rate modulating faster and slower than the original. Creates a swirling/whooshing effect.

Introduced in v2.3

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
phase: | Phase duration in beats of flanger modulation. Default: 4 Must be greater than zero May be changed whilst playing Has slide options to shape changes Scaled with current BPM value
phase_offset: | Initial modulation phase offset (a value between 0 and 1). Default: 0 Must be a value between 0 and 1 inclusively Can not be changed once set
wave: | Wave type - 0 saw, 1 pulse, 2 triangle, 3 sine, 4 cubic. Different waves will produce different flanging modulation effects. Default: 4 Must be one of the following values: [0, 1, 2, 3, 4] May be changed whilst playing
invert_wave: | Invert flanger control waveform (i.e. flip it on the y axis). 0=uninverted wave, 1=inverted wave. Default: 0 Must be one of the following values: [0, 1] May be changed whilst playing
stereo_invert_wave: | Make the flanger control waveform in the left ear an inversion of the control waveform in the right ear. 0=uninverted wave, 1=inverted wave. This happens after the standard wave inversion with param :invert_wave. Default: 0 Must be one of the following values: [0, 1] May be changed whilst playing
delay: | Amount of delay time between original and flanged version of audio. Default: 5 May be changed whilst playing Has slide options to shape changes
max_delay: | Max delay time. Used to set internal buffer size. Default: 20 Must be zero or greater Can not be changed once set
depth: | Flange depth - greater depths produce a more prominent effect. Default: 5 May be changed whilst playing Has slide options to shape changes
decay: | Flange decay time in ms Default: 2 Must be zero or greater May be changed whilst playing Has slide options to shape changes
feedback: | Amount of feedback. Default: 0 Must be a value between 0 and 1 inclusively May be changed whilst playing Has slide options to shape changes
invert_flange: | Invert flanger signal. 0=no inversion, 1=inverted signal. Default: 0 Must be one of the following values: [0, 1] May be changed whilst playing

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# GVerb

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
spread: | 0.5 | damp: | 0.5 | pre_damp: | 0.5 | dry: | 1
room: | 10 | release: | 3 | ref_level: | 0.7 | tail_level: | 0.5

``

    with_fx :gverb do
      play 50
    end

Make the incoming signal sound more spacious or distant as if it were played in a large room or cave. Similar to reverb but with a more spacious feel.

Introduced in v2.9

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

spread:

Stereo spread. Amount of stereo spread the reverb has over the left and right channels. A value of 0 means no spread at all - left and right stereo values of the incoming signal are preserved. A value of 1 means full spread - the left and right channels are fully mixed within the reverb - bleeding into each other.

Default: 0.5
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

damp: | High frequency rolloff. 0 is no damping (the reverb will ring out more) and 1 dampens the reverb signal completely Default: 0.5 Must be a value between 0 and 1 inclusively May be changed whilst playing Has slide options to shape changes
pre_damp: | High frequency rolloff of input signal. 0 is no damping (the reverb will ring out more) and 1 dampens the reverb signal completely Default: 0.5 Must be a value between 0 and 1 inclusively May be changed whilst playing Has slide options to shape changes
dry: | Amount of original dry signal present in the effect. This is distinct from mix. Default: 1 Must be a value greater than or equal to 0 May be changed whilst playing Has slide options to shape changes
room: | The room size in squared metres Default: 10 Must be a value greater than or equal to 1 May be changed whilst playing
release: | Time for reverberation to complete in seconds Default: 3 Must be a value greater than 0 May be changed whilst playing
ref_level: | Reflection level Default: 0.7 Must be a value greater than or equal to 0 May be changed whilst playing
tail_level: | Tail level amount Default: 0.5 Must be a value greater than or equal to 0 May be changed whilst playing

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# High Pass Filter

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
cutoff: | 100

``

    with_fx :hpf do
      play 50
    end

Dampens the parts of the signal that are lower than the cutoff point (typically the bass of the sound) and keeps the higher parts (typically the crunchy fizzy harmonic overtones). Choose a lower cutoff to keep more of the bass/mid and a higher cutoff to make the sound more light and crispy.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
cutoff: | MIDI note representing the highest frequencies allowed to be present in the sound. A low value like 30 makes the sound round and dull, a high value like 100 makes the sound buzzy and crispy. Default: 100 Must be zero or greater,must be a value less than 131 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Techno from IXI Lang

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
phase: | 4 | phase_offset: | 0 | cutoff_min: | 60 | cutoff_max: | 120
res: | 0.8

``

    with_fx :ixi_techno do
      play 50
    end

Moving resonant low pass filter between min and max cutoffs. Great for sweeping effects across long synths or samples.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
phase: | The phase duration (in beats) for filter modulation cycles Default: 4 Must be greater than zero May be changed whilst playing Has slide options to shape changes Scaled with current BPM value
phase_offset: | Initial modulation phase offset (a value between 0 and 1). Default: 0 Must be a value between 0 and 1 inclusively Can not be changed once set
cutoff_min: | Minimum (MIDI) note that filter will move to whilst wobbling. Choose a lower note for a higher range of movement. Full range of movement is the distance between cutoff_max and cutoff_min Default: 60 Must be zero or greater,must be a value less than 130 May be changed whilst playing Has slide options to shape changes
cutoff_max: | Maximum (MIDI) note that filter will move to whilst wobbling. Choose a higher note for a higher range of movement. Full range of movement is the distance between cutoff_max and cutoff_min Default: 120 Must be zero or greater,must be a value less than 130 May be changed whilst playing Has slide options to shape changes
res: | Filter resonance as a value between 0 and 1. Large amounts of resonance (a res: near 1) can create a whistling sound around the cutoff frequency. Smaller values produce less resonance. Default: 0.8 Must be zero or greater,must be a value less than 1 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# krush

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
gain: | 5 | cutoff: | 100 | res: | 0

``

    with_fx :krush do
      play 50
    end

Krush that sound!

Introduced in v2.6

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
gain: | Amount of crushing to serve Default: 5 Must be greater than zero May be changed whilst playing Has slide options to shape changes
cutoff: | MIDI note representing the highest frequencies allowed to be present in the sound. A low value like 30 makes the sound round and dull, a high value like 100 makes the sound buzzy and crispy. Default: 100 Must be zero or greater,must be a value less than 131 May be changed whilst playing Has slide options to shape changes
res: | Filter resonance as a value between 0 and 1. Large amounts of resonance (a res: near 1) can create a whistling sound around the cutoff frequency. Smaller values produce less resonance. Default: 0 Must be zero or greater,must be a value less than 1 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Level Amplifier

amp: | 1

``

    with_fx :level do
      play 50
    end

Amplitude modifier. All FX have their own amp built in, so it may be the case that you don’t specifically need an isolated amp FX. However, it is useful to be able to control the overall amplitude of a number of running synths. All sounds created in the FX block will have their amplitudes multipled by the amp level of this FX. For example, use an amp of 0 to silence all internal synths.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Low Pass Filter

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
cutoff: | 100

``

    with_fx :lpf do
      play 50
    end

Dampens the parts of the signal that are higher than the cutoff point (typically the crunchy fizzy harmonic overtones) and keeps the lower parts (typically the bass/mid of the sound). Choose a higher cutoff to keep more of the high frequencies/treble of the sound and a lower cutoff to make the sound more dull and only keep the bass.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
cutoff: | MIDI note representing the highest frequencies allowed to be present in the sound. A low value like 30 makes the sound round and dull, a high value like 100 makes the sound buzzy and crispy. Default: 100 Must be zero or greater,must be a value less than 131 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Mono

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
pan: | 0

``

    with_fx :mono do
      play 50
    end

Sum left and right channels. Useful with stereo samples that you need as a mono sound, or for use with panslicer.

Introduced in v2.10

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

pan:

Position of sound in stereo. With headphones on, this means how much of the sound is in the left ear, and how much is in the right ear. With a value of -1, the sound is completely in the left ear, a value of 0 puts the sound equally in both ears and a value of 1 puts the sound in the right ear. Values in between -1 and 1 move the sound accordingly.

Default: 0
Must be a value between -1 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Normalised Band Pass Filter

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
centre: | 100 | res: | 0.6

``

    with_fx :nbpf do
      play 50
    end

Like the Band Pass Filter but normalised. The normaliser is useful here as some volume is lost when filtering the original signal.

Introduced in v2.3

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
centre: | Centre frequency for the filter as a MIDI note. Default: 100 Must be a value greater than or equal to 0 May be changed whilst playing Has slide options to shape changes
res: | Filter resonance as a value between 0 and 1. Large amounts of resonance (a res: near 1) can create a whistling sound around the cutoff frequency. Smaller values produce less resonance. Default: 0.6 Must be zero or greater,must be a value less than 1 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Normalised High Pass Filter

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
cutoff: | 100

``

    with_fx :nhpf do
      play 50
    end

A high pass filter chained to a normaliser. Ensures that the signal is both filtered by a standard high pass filter and then normalised to ensure the amplitude of the final output is constant. A high pass filter will reduce the amplitude of the resulting signal (as some of the sound has been filtered out) the normaliser can compensate for this loss (although will also have the side effect of flattening all dynamics). See doc for hpf.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
cutoff: | MIDI note representing the highest frequencies allowed to be present in the sound. A low value like 30 makes the sound round and dull, a high value like 100 makes the sound buzzy and crispy. Default: 100 Must be zero or greater,must be a value less than 131 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Normalised Low Pass Filter.

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
cutoff: | 100

``

    with_fx :nlpf do
      play 50
    end

A low pass filter chained to a normaliser. Ensures that the signal is both filtered by a standard low pass filter and then normalised to ensure the amplitude of the final output is constant. A low pass filter will reduce the amplitude of the resulting signal (as some of the sound has been filtered out) the normaliser can compensate for this loss (although will also have the side effect of flattening all dynamics). See doc for lpf.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
cutoff: | MIDI note representing the highest frequencies allowed to be present in the sound. A low value like 30 makes the sound round and dull, a high value like 100 makes the sound buzzy and crispy. Default: 100 Must be zero or greater,must be a value less than 131 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Normaliser

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
level: | 1

``

    with_fx :normaliser do
      play 50
    end

Raise or lower amplitude of sound to a specified level. Evens out the amplitude of incoming sound across the frequency spectrum by flattening all dynamics.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
level: | The peak output amplitude level at which to normalise the input. Default: 1 Must be a value greater than or equal to 0 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Normalised Resonant Band Pass Filter

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
centre: | 100 | res: | 0.5

``

    with_fx :nrbpf do
      play 50
    end

Like the Band Pass Filter but normalised, with a resonance (slight volume boost) around the target frequency. This can produce an interesting whistling effect, especially when used with larger values for the res opt.

The normaliser is useful here as some volume is lost when filtering the original signal.

Introduced in v2.3

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
centre: | Centre frequency for the filter as a MIDI note. Default: 100 Must be a value greater than or equal to 0 May be changed whilst playing Has slide options to shape changes
res: | Filter resonance as a value between 0 and 1. Large amounts of resonance (a res: near 1) can create a whistling sound around the cutoff frequency. Smaller values produce less resonance. Default: 0.5 Must be zero or greater,must be a value less than 1 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Normalised Resonant High Pass Filter

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
cutoff: | 100 | res: | 0.5

``

    with_fx :nrhpf do
      play 50
    end

Dampens the parts of the signal that are lower than the cutoff point (typically the bass of the sound) and keeps the higher parts (typically the crunchy fizzy harmonic overtones). The resonant part of the resonant high pass filter emphasises/resonates the frequencies around the cutoff point. The amount of emphasis is controlled by the res opt with a higher res resulting in greater resonance. High amounts of resonance (rq ~1) can create a whistling sound around the cutoff frequency.

Choose a lower cutoff to keep more of the bass/mid and a higher cutoff to make the sound more light and crispy.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
cutoff: | MIDI note representing the highest frequencies allowed to be present in the sound. A low value like 30 makes the sound round and dull, a high value like 100 makes the sound buzzy and crispy. Default: 100 Must be zero or greater,must be a value less than 131 May be changed whilst playing Has slide options to shape changes
res: | Filter resonance as a value between 0 and 1. Large amounts of resonance (a res: near 1) can create a whistling sound around the cutoff frequency. Smaller values produce less resonance. Default: 0.5 Must be zero or greater,must be a value less than 1 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Normalised Resonant Low Pass Filter

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
cutoff: | 100 | res: | 0.5

``

    with_fx :nrlpf do
      play 50
    end

Dampens the parts of the signal that are higher than the cutoff point (typically the crunchy fizzy harmonic overtones) and keeps the lower parts (typically the bass/mid of the sound). The resonant part of the resonant low pass filter emphasises/resonates the frequencies around the cutoff point. The amount of emphasis is controlled by the res opt with a higher res resulting in greater resonance. High amounts of resonance (rq ~1) can create a whistling sound around the cutoff frequency.

Choose a higher cutoff to keep more of the high frequencies/treble of the sound and a lower cutoff to make the sound more dull and only keep the bass.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
cutoff: | MIDI note representing the highest frequencies allowed to be present in the sound. A low value like 30 makes the sound round and dull, a high value like 100 makes the sound buzzy and crispy. Default: 100 Must be zero or greater,must be a value less than 131 May be changed whilst playing Has slide options to shape changes
res: | Filter resonance as a value between 0 and 1. Large amounts of resonance (a res: near 1) can create a whistling sound around the cutoff frequency. Smaller values produce less resonance. Default: 0.5 Must be zero or greater,must be a value less than 1 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Octaver

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
super_amp: | 1 | sub_amp: | 1 | subsub_amp: | 1

``

    with_fx :octaver do
      play 50
    end

This effect adds three pitches based on the input sound. The first is the original sound transposed up an octave (super_amp), the second is the original sound transposed down an octave (sub_amp) and the third is the original sound transposed down two octaves (subsub_amp).

The way the transpositions are done adds some distortion/fuzz, particularly to the lower octaves, whilst the upper octave has a ‘cheap’ quality. This effect is often used in guitar effects pedals but it can work with other sounds too. There’s a great description of the science behind this on Wikipedia here: https://en.wikipedia.org/wiki/Octave_effect

Introduced in v2.2

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
super_amp: | Volume of the signal 1 octave above the input Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
sub_amp: | Volume of the signal 1 octave below the input Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
subsub_amp: | Volume of the signal 2 octaves below the input Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Pan

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
pan: | 0

``

    with_fx :pan do
      play 50
    end

Specify where in the stereo field the sound should be heard. A value of -1 for pan will put the sound in the left speaker, a value of 1 will put the sound in the right speaker and values in between will shift the sound accordingly.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

pan:

Position of sound in stereo. With headphones on, this means how much of the sound is in the left ear, and how much is in the right ear. With a value of -1, the sound is completely in the left ear, a value of 0 puts the sound equally in both ears and a value of 1 puts the sound in the right ear. Values in between -1 and 1 move the sound accordingly.

Default: 0
Must be a value between -1 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Pan Slicer

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
phase: | 0.25 | amp_min: | 0 | amp_max: | 1 | pulse_width: | 0.5
phase_offset: | 0 | wave: | 1 | invert_wave: | 0 | probability: | 0
prob_pos: | 0 | seed: | 0 | smooth: | 0 | smooth_up: | 0
smooth_down: | 0 | pan_min: | -1 | pan_max: | 1

``

    with_fx :panslicer do
      play 50
    end

Slice the pan automatically from left to right. Behaves similarly to slicer and wobble FX but modifies stereo panning of sound in left and right speakers. Default slice wave form is square (hard slicing between left and right) however other wave forms can be set with the `wave:` opt.

Introduced in v2.6

## Options

amp: | The amplitude of the resulting effect. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
phase: | The phase duration (in beats) of the slices Default: 0.25 Must be greater than zero May be changed whilst playing Has slide options to shape changes Scaled with current BPM value
amp_min: | write me Default: 0 Can not be changed once set Has slide options to shape changes
amp_max: | write me Default: 1 Can not be changed once set Has slide options to shape changes
pulse_width: | The width of the pulse wave as a value between 0 and 1. A width of 0.5 will produce a square wave. Different values will change the timbre of the sound. Only valid if wave is type pulse. Default: 0.5 Must be a value between 0 and 1 exclusively May be changed whilst playing Has slide options to shape changes
phase_offset: | Initial phase offset. Default: 0 Must be a value between 0 and 1 inclusively Can not be changed once set
wave: | Control waveform used to modulate the amplitude. 0=saw, 1=pulse, 2=tri, 3=sine Default: 1 Must be one of the following values: [0, 1, 2, 3] May be changed whilst playing
invert_wave: | Invert control waveform (i.e. flip it on the y axis). 0=uninverted wave, 1=inverted wave. Default: 0 Must be one of the following values: [0, 1] May be changed whilst playing
probability: | Probability (as a value between 0 and 1) that a given slice will be replaced by the value of the prob_pos opt (which defaults to 0, i.e. silence) Default: 0 Must be a value between 0 and 1 inclusively May be changed whilst playing Has slide options to shape changes
prob_pos: | Position of the slicer that will be jumped to when the probability test passes as a value between 0 and 1 Default: 0 Must be a value between 0 and 1 inclusively May be changed whilst playing Has slide options to shape changes
seed: | Seed value for rand num generator used for probability test Default: 0 Can not be changed once set
smooth: | Amount of time in seconds to transition from the current value to the next. Allows you to round off harsh edges in the slicer wave which may cause clicks. Default: 0 Must be zero or greater May be changed whilst playing Has slide options to shape changes
smooth_up: | Amount of time in seconds to transition from the current value to the next only when the value is going up. This smoothing happens before the main smooth mechanism. Default: 0 Must be zero or greater May be changed whilst playing Has slide options to shape changes
smooth_down: | Amount of time in seconds to transition from the current value to the next only when the value is going down. This smoothing happens before the main smooth mechanism. Default: 0 Must be zero or greater May be changed whilst playing Has slide options to shape changes
pan_min: | Minimum pan value (-1 is the left speaker only) Default: -1 Must be a value between -1 and 1 inclusively May be changed whilst playing Has slide options to shape changes
pan_max: | Maximum pan value (+1 is the right speaker only) Default: 1 Must be a value between -1 and 1 inclusively May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Ping Pong Echo

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
phase: | 0.25 | feedback: | 0.5 | max_phase: | 1 | pan_start: | 1

``

    with_fx :ping_pong do
      play 50
    end

Echo FX with each delayed echo swapping between left and right channels. Has variable phase duration (time between echoes) and feedback (proportion of sound fed into each echo). If you wish to have a phase duration longer than 1s, you need to specify the longest phase duration you’d like with the arg max_phase. Be warned, `:ping_pong` FX with very long phases can consume a lot of memory and take longer to initialise. Also, large values for feedback will cause the echo to last for a very long time.

Note: sliding the `phase:` opt with `phase_slide:` will also cause each echo during the slide to change in pitch, in much the same way that a sample’s pitch changes when altering its rate.

Introduced in v3.2

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
phase: | The time between echoes in beats. Default: 0.25 Must be greater than zero May be changed whilst playing Has slide options to shape changes Scaled with current BPM value
feedback: | Proportion of sound fed into each successive echo from the previous one. Default: 0.5 Must be greater than zero,must be a value less than 1 May be changed whilst playing Has slide options to shape changes
max_phase: | The maximum phase duration in beats. Default: 1 Must be greater than zero Can not be changed once set Scaled with current BPM value

pan_start:

Starting position of sound in the stereo field. With headphones on, this means how much of the sound starts in the left ear, and how much starts in the right ear. With a value of -1, the sound starts completely in the left ear, a value of 0 starts the sound equally in both ears, and a value of 1 starts the sound completely in the right ear. Values in between -1 and 1 move the sound accordingly. Each echo will swap between left and right at the same distance away from 0 (the centre) that this `pan_start:` opt is set to. For example, with a value of -1, the sound starts completely in the left ear, and the echoes after this will swap between fully right and fully left (1 and -1). With a value of 0, since the sound starts in the centre of the stereo field, each echo also stays in the centre, meaning the panning effect is cancelled out.

Default: 1
Must be a value between -1 and 1 inclusively
Can not be changed once set

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Pitch shift

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
window_size: | 0.2 | pitch: | 0 | pitch_dis: | 0.0 | time_dis: | 0.0

``

    with_fx :pitch_shift do
      play 50
    end

Changes the pitch of a signal without affecting tempo. Does this mainly through the pitch parameter which takes a midi number to transpose by. You can also play with the other params to produce some interesting textures and sounds.

Introduced in v2.5

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

window_size:

Pitch shift works by chopping the input into tiny slices, then playing these slices at a higher or lower rate. If we make the slices small enough and overlap them, it sounds like the original sound with the pitch changed.

The window_size is the length of the slices and is measured in seconds. It needs to be around 0.2 (200ms) or greater for pitched sounds like guitar or bass, and needs to be around 0.02 (20ms) or lower for percussive sounds like drum loops. You can experiment with this to get the best sound for your input.

Default: 0.2
Must be a value greater than 5.0e-05
May be changed whilst playing
Has slide options to shape changes

pitch: | Pitch adjustment in semitones. 1 is up a semitone, 12 is up an octave, -12 is down an octave etc. Maximum upper limit of 24 (up 2 octaves). Lower limit of -72 (down 6 octaves). Decimal numbers can be used for fine tuning. Default: 0 Must be a value greater than or equal to -72,must be a value less than or equal to 24 May be changed whilst playing Has slide options to shape changes

pitch_dis:

Pitch dispersion - how much random variation in pitch to add. Using a low value like 0.001 can help to “soften up” the metallic sounds, especially on drum loops. To be really technical, pitch_dispersion is the maximum random deviation of the pitch from the pitch ratio (which is set by the pitch param)

Default: 0.0
Must be a value greater than or equal to 0
May be changed whilst playing
Has slide options to shape changes

time_dis:

Time dispersion - how much random delay before playing each grain (measured in seconds). Again, low values here like 0.001 can help to soften up metallic sounds introduced by the effect. Large values are also fun as they can make soundscapes and textures from the input, although you will most likely lose the rhythm of the original. NB - This won’t have an effect if it’s larger than window_size.

Default: 0.0
Must be a value greater than or equal to 0
May be changed whilst playing
Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Resonant Band Pass Filter

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
centre: | 100 | res: | 0.5

``

    with_fx :rbpf do
      play 50
    end

Like the Band Pass Filter but with a resonance (slight volume boost) around the target frequency. This can produce an interesting whistling effect, especially when used with larger values for the res opt.

Introduced in v2.3

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
centre: | Centre frequency for the filter as a MIDI note. Default: 100 Must be a value greater than or equal to 0 May be changed whilst playing Has slide options to shape changes
res: | Filter resonance as a value between 0 and 1. Large amounts of resonance (a res: near 1) can create a whistling sound around the cutoff frequency. Smaller values produce less resonance. Default: 0.5 Must be zero or greater,must be a value less than 1 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Record

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
buffer: |

``

    with_fx :record do
      play 50
    end

Recorder!

Introduced in v3.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
buffer: | The buffer to record into. Must either be a buffer object, buffer name, list of buffer name and size or the buffer id as a number. Default: Must be a buffer description. such as a buffer, :foo, "foo", or [:foo, 4] Can not be changed once set

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Reverb

amp: | 1 | mix: | 0.4 | pre_mix: | 1 | pre_amp: | 1
room: | 0.6 | damp: | 0.5

``

    with_fx :reverb do
      play 50
    end

Make the incoming signal sound more spacious or distant as if it were played in a large room or cave. Signal may also be dampened by reducing the amplitude of the higher frequencies.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 0.4
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
room: | The room size - a value between 0 (no reverb) and 1 (maximum reverb). Default: 0.6 Must be a value between 0 and 1 inclusively May be changed whilst playing Has slide options to shape changes
damp: | High frequency dampening - a value between 0 (no dampening) and 1 (maximum dampening) Default: 0.5 Must be a value between 0 and 1 inclusively May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Resonant High Pass Filter

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
cutoff: | 100 | res: | 0.5

``

    with_fx :rhpf do
      play 50
    end

Dampens the parts of the signal that are lower than the cutoff point (typically the bass of the sound) and keeps the higher parts (typically the crunchy fizzy harmonic overtones). The resonant part of the resonant high pass filter emphasises/resonates the frequencies around the cutoff point. The amount of emphasis is controlled by the res opt with a higher res resulting in greater resonance. High amounts of resonance (rq ~1) can create a whistling sound around the cutoff frequency.

Choose a lower cutoff to keep more of the bass/mid and a higher cutoff to make the sound more light and crispy.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
cutoff: | MIDI note representing the highest frequencies allowed to be present in the sound. A low value like 30 makes the sound round and dull, a high value like 100 makes the sound buzzy and crispy. Default: 100 Must be zero or greater,must be a value less than 131 May be changed whilst playing Has slide options to shape changes
res: | Filter resonance as a value between 0 and 1. Large amounts of resonance (a res: near 1) can create a whistling sound around the cutoff frequency. Smaller values produce less resonance. Default: 0.5 Must be zero or greater,must be a value less than 1 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Ring Modulator

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
freq: | 30 | mod_amp: | 1

``

    with_fx :ring_mod do
      play 50
    end

Attack of the Daleks! Ring mod is a classic effect often used on soundtracks to evoke robots or aliens as it sounds hollow or metallic. We take a ‘carrier’ signal (a sine wave controlled by the freq opt) and modulate its amplitude using the signal given inside the fx block. This produces a wide variety of sounds - the best way to learn is to experiment!

Introduced in v2.3

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
freq: | Frequency of the carrier signal (as a midi note). Default: 30 Must be greater than zero May be changed whilst playing Has slide options to shape changes
mod_amp: | Amplitude of the modulation Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Resonant Low Pass Filter

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
cutoff: | 100 | res: | 0.5

``

    with_fx :rlpf do
      play 50
    end

Dampens the parts of the signal that are higher than the cutoff point (typically the crunchy fizzy harmonic overtones) and keeps the lower parts (typically the bass/mid of the sound). The resonant part of the resonant low pass filter emphasises/resonates the frequencies around the cutoff point. The amount of emphasis is controlled by the res opt with a higher res resulting in greater resonance. High amounts of resonance (rq ~1) can create a whistling sound around the cutoff frequency.

Choose a higher cutoff to keep more of the high frequencies/treble of the sound and a lower cutoff to make the sound more dull and only keep the bass.

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
cutoff: | MIDI note representing the highest frequencies allowed to be present in the sound. A low value like 30 makes the sound round and dull, a high value like 100 makes the sound buzzy and crispy. Default: 100 Must be zero or greater,must be a value less than 131 May be changed whilst playing Has slide options to shape changes
res: | Filter resonance as a value between 0 and 1. Large amounts of resonance (a res: near 1) can create a whistling sound around the cutoff frequency. Smaller values produce less resonance. Default: 0.5 Must be zero or greater,must be a value less than 1 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Slicer

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
phase: | 0.25 | amp_min: | 0 | amp_max: | 1 | pulse_width: | 0.5
phase_offset: | 0 | wave: | 1 | invert_wave: | 0 | probability: | 0
prob_pos: | 0 | seed: | 0 | smooth: | 0 | smooth_up: | 0
smooth_down: | 0

``

    with_fx :slicer do
      play 50
    end

Modulates the amplitude of the input signal with a specific control wave and phase duration. With the default pulse wave, slices the signal in and out, with the triangle wave, fades the signal in and out and with the saw wave, phases the signal in and then dramatically out. Control wave may be inverted with the arg invert_wave for more variety.

Introduced in v2.0

## Options

amp: | The amplitude of the resulting effect. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
phase: | The phase duration (in beats) of the slices Default: 0.25 Must be greater than zero May be changed whilst playing Has slide options to shape changes Scaled with current BPM value
amp_min: | Minimum amplitude of the slicer Default: 0 Must be zero or greater May be changed whilst playing Has slide options to shape changes
amp_max: | Maximum amplitude of the slicer Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
pulse_width: | The width of the pulse wave as a value between 0 and 1. A width of 0.5 will produce a square wave. Different values will change the timbre of the sound. Only valid if wave is type pulse. Default: 0.5 Must be a value between 0 and 1 exclusively May be changed whilst playing Has slide options to shape changes
phase_offset: | Initial phase offset. Default: 0 Must be a value between 0 and 1 inclusively Can not be changed once set
wave: | Control waveform used to modulate the amplitude. 0=saw, 1=pulse, 2=tri, 3=sine Default: 1 Must be one of the following values: [0, 1, 2, 3] May be changed whilst playing
invert_wave: | Invert control waveform (i.e. flip it on the y axis). 0=uninverted wave, 1=inverted wave. Default: 0 Must be one of the following values: [0, 1] May be changed whilst playing
probability: | Probability (as a value between 0 and 1) that a given slice will be replaced by the value of the prob_pos opt (which defaults to 0, i.e. silence) Default: 0 Must be a value between 0 and 1 inclusively May be changed whilst playing Has slide options to shape changes
prob_pos: | Position of the slicer that will be jumped to when the probability test passes as a value between 0 and 1 Default: 0 Must be a value between 0 and 1 inclusively May be changed whilst playing Has slide options to shape changes
seed: | Seed value for rand num generator used for probability test Default: 0 Can not be changed once set
smooth: | Amount of time in seconds to transition from the current value to the next. Allows you to round off harsh edges in the slicer wave which may cause clicks. Default: 0 Must be zero or greater May be changed whilst playing Has slide options to shape changes
smooth_up: | Amount of time in seconds to transition from the current value to the next only when the value is going up. This smoothing happens before the main smooth mechanism. Default: 0 Must be zero or greater May be changed whilst playing Has slide options to shape changes
smooth_down: | Amount of time in seconds to transition from the current value to the next only when the value is going down. This smoothing happens before the main smooth mechanism. Default: 0 Must be zero or greater May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Sound Out

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
output: | 1 | mode: | 0

``

    with_fx :sound_out do
      play 50
    end

Outputs a mono signal to a soundcard output of your choice. By default will mix the incoming stereo signal (generated within the FX block) into a single mono channel. However, with the `mode:` opt, it is possible to alternatively send either the incoming left or right channel out directly.

Introduced in v3.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
output: | Sound card output to send audio to. Indexing starts at 1, so the third output is output 3. Default: 1 May be changed whilst playing
mode: | Output mixing mode. 0 is a mixed-down mono version of the stereo input, 1 is the left channel only, 2 is the right channel only. Default: 0 May be changed whilst playing

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Sound Out Stereo

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
output: | 1 | mode: | 0

``

    with_fx :sound_out_stereo do
      play 50
    end

Outputs a two-channel stereo signal to two consecutive soundcard outputs of your choice. By default will route the left and right channels of the incoming stereo signal (generated within the FX block) into separate left and right output channels. However, with the `mode:` opt, it is possible to alternatively cross over the channels or mix the incoming stereo channels into a single mono output and duplicate that on both left and right output channels.

Introduced in v3.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
output: | First of two consecutive sound card outputs to send audio to. Indexing starts at 1 and two outputs are used. Therefore an output of 2 will send audio to both outputs 2 and 3 Default: 1 May be changed whilst playing
mode: | Output mixing mode. Mode 0 is standard - left audio on the first channel, right on the second. Mode 1 is inverse - right audio on the first channel, left on the second. Mode 2 is mono - a mixed mono version of both channels is sent to both audio outputs. Default: 0 May be changed whilst playing

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Hyperbolic Tangent

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
krunch: | 5

``

    with_fx :tanh do
      play 50
    end

Forces all audio through a hyperbolic tangent function which has the effect of acting like distorted limiter. It works by folding loud signals back in on itself. The louder the input signal, the more folding occurs - resulting in increased strange harmonics and distortion. This folding also has the effect of limiting the outgoing signal, therefore to increase the output amplitude use the `amp:` opt and to increase the folding/distortion use the `pre_amp:` opt.

Introduced in v2.9

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
krunch: | Higher values progressively destroy the sound. Achieved through a balanced manipulation of pre_amp and amp such that the tanh is pushed harder with higher krunch values yet the overall amplitude stays similar. Default: 5 May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Tremolo

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
phase: | 4 | phase_offset: | 0 | wave: | 2 | invert_wave: | 0
depth: | 0.5

``

    with_fx :tremolo do
      play 50
    end

Modulate the volume of the sound.

Introduced in v3.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
phase: | Phase duration in beats of tremolo modulation. Default: 4 Must be greater than zero May be changed whilst playing Has slide options to shape changes Scaled with current BPM value
phase_offset: | Initial modulation phase offset (a value between 0 and 1). Default: 0 Must be a value between 0 and 1 inclusively Can not be changed once set
wave: | Wave type - 0 saw, 1 pulse, 2 triangle, 3 sine, 4 cubic. Different waves will produce different tremolo modulation effects. Default: 2 Must be one of the following values: [0, 1, 2, 3, 4] May be changed whilst playing
invert_wave: | Invert tremolo control waveform (i.e. flip it on the y axis). 0=uninverted wave, 1=inverted wave. Default: 0 Must be one of the following values: [0, 1] May be changed whilst playing
depth: | Tremolo depth - greater depths produce a more prominent effect. Default: 0.5 Must be a value between 0 and 1 inclusively May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Vowel

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
vowel_sound: | 1 | voice: | 0

``

    with_fx :vowel do
      play 50
    end

This effect filters the input to match a human voice singing a certain vowel sound. Human singing voice sounds are easily achieved with a source of a saw wave with a little vibrato.

Introduced in v2.10

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
vowel_sound: | 1,2,3,4,5 => A,E,I,O,U Default: 1 Must be one of the following values: [1, 2, 3, 4, 5] May be changed whilst playing
voice: | 0,1,2,3,4 => Soprano,Alto,Counter Tenor, Tenor, Bass Default: 0 Must be one of the following values: [0, 1, 2, 3, 4] May be changed whilst playing

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Whammy

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
transpose: | 12 | max_delay_time: | 1 | deltime: | 0.05 | grainsize: | 0.075

``

    with_fx :whammy do
      play 50
    end

A cheap sounding transposition effect, with a slightly robotic edge. Good for adding alien sounds and harmonies to everything from beeps to guitar samples. It’s similar to pitch shift although not as smooth sounding.

Introduced in v2.10

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
transpose: | This is how much to transpose the input, expressed as a midi pitch. Default: 12 May be changed whilst playing Has slide options to shape changes
max_delay_time: | The max delay time to be used for the effect. This shouldn’t need to be adjusted. Default: 1 Must be zero or greater Can not be changed once set
deltime: | The delay time to be used for the effect. This shouldn’t need to be adjusted. Default: 0.05 Must be zero or greater Can not be changed once set
grainsize: | The size of the initial grain used for transposition. This shouldn’t need to be adjusted. Default: 0.075 Must be zero or greater Can not be changed once set

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0

# Wobble

amp: | 1 | mix: | 1 | pre_mix: | 1 | pre_amp: | 1
phase: | 0.5 | cutoff_min: | 60 | cutoff_max: | 120 | res: | 0.8
phase_offset: | 0 | wave: | 0 | invert_wave: | 0 | pulse_width: | 0.5
filter: | 0 | probability: | 0 | prob_pos: | 0 | seed: | 0
smooth: | 0 | smooth_up: | 0 | smooth_down: | 0

``

    with_fx :wobble do
      play 50
    end

Versatile wobble FX. Will repeatedly modulate a range of filters (rlpf, rhpf) between two cutoff values using a range of control wave forms (saw, pulse, tri, sine). You may alter the phase duration of the wobble, and the resonance of the filter. Combines well with the dsaw synth for crazy dub wobbles. Cutoff value is at cutoff_min at the start of phase

Introduced in v2.0

## Options

amp: | The amplitude of the sound. Typically a value between 0 and 1. Higher amplitudes may be used, but won’t make the sound louder, they will just reduce the quality of all the sounds currently being played (due to compression.) Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes

mix:

The amount (percentage) of FX present in the resulting sound represented as a value between 0 and 1. For example, a mix of 0 means that only the original sound is heard, a mix of 1 means that only the FX is heard (typically the default) and a mix of 0.5 means that half the original and half of the FX is heard.

Default: 1
Must be a value between 0 and 1 inclusively
May be changed whilst playing
Has slide options to shape changes

pre_mix:

The amount (percentage) of the original signal that is fed into the internal FX system as a value between 0 and 1. With a pre_mix: of 0 the FX is completely bypassed unlike a mix: of 0 where the internal FX is still being fed the original signal but the output of the FX is ignored. The difference between the two is subtle but important and is evident when the FX has a residual component such as echo or reverb. When switching mix: from 0 to 1, the residual component of the FX’s output from previous audio is present in the output signal. With pre_mix: there is no residual component of the previous audio in the output signal.

Default: 1
Must be zero or greater
May be changed whilst playing
Has slide options to shape changes

pre_amp: | Amplification applied to the input signal immediately before it is passed to the FX. Default: 1 Must be zero or greater May be changed whilst playing Has slide options to shape changes
phase: | The phase duration (in beats) for filter modulation cycles Default: 0.5 Must be greater than zero May be changed whilst playing Has slide options to shape changes Scaled with current BPM value
cutoff_min: | Minimum (MIDI) note that filter will move to whilst wobbling. Choose a lower note for a higher range of movement. Full range of movement is the distance between cutoff_max and cutoff_min Default: 60 Must be zero or greater,must be a value less than 130 May be changed whilst playing Has slide options to shape changes
cutoff_max: | Maximum (MIDI) note that filter will move to whilst wobbling. Choose a higher note for a higher range of movement. Full range of movement is the distance between cutoff_max and cutoff_min Default: 120 Must be zero or greater,must be a value less than 130 May be changed whilst playing Has slide options to shape changes
res: | Filter resonance as a value between 0 and 1. Large amounts of resonance (a res: near 1) can create a whistling sound around the cutoff frequency. Smaller values produce less resonance. Default: 0.8 Must be zero or greater,must be a value less than 1 May be changed whilst playing Has slide options to shape changes
phase_offset: | Initial modulation phase offset (a value between 0 and 1). Default: 0 Must be a value between 0 and 1 inclusively Can not be changed once set
wave: | Wave shape of wobble. Use 0 for saw wave, 1 for pulse, 2 for triangle wave and 3 for a sine wave. Default: 0 Must be one of the following values: [0, 1, 2, 3] May be changed whilst playing
invert_wave: | Invert control waveform (i.e. flip it on the y axis). 0=uninverted wave, 1=inverted wave. Default: 0 Must be one of the following values: [0, 1] May be changed whilst playing
pulse_width: | Only valid if wave is type pulse. Default: 0.5 Must be zero or greater May be changed whilst playing Has slide options to shape changes
filter: | Filter used for wobble effect. Use 0 for a resonant low pass filter or 1 for a resonant high pass filter Default: 0 Must be one of the following values: [0, 1] May be changed whilst playing
probability: | Probability (as a value between 0 and 1) that a given wobble will be replaced by the value of the prob_pos opt (which defaults to 0, i.e. min_cutoff) Default: 0 Must be a value between 0 and 1 inclusively May be changed whilst playing Has slide options to shape changes
prob_pos: | Position of the wobble that will be jumped to when the probability test passes as a value between 0 and 1 Default: 0 Must be a value between 0 and 1 inclusively May be changed whilst playing Has slide options to shape changes
seed: | Seed value for rand num generator used for probability test Default: 0 Can not be changed once set
smooth: | Amount of time in seconds to transition from the current value to the next. Allows you to round off harsh edges in the slicer wave which may cause clicks. Default: 0 Must be zero or greater May be changed whilst playing Has slide options to shape changes
smooth_up: | Amount of time in seconds to transition from the current value to the next only when the value is going up. This smoothing happens before the main smooth mechanism. Default: 0 Must be zero or greater May be changed whilst playing Has slide options to shape changes
smooth_down: | Amount of time in seconds to transition from the current value to the next only when the value is going down. This smoothing happens before the main smooth mechanism. Default: 0 Must be zero or greater May be changed whilst playing Has slide options to shape changes

## Slide Options

Any parameter that is slidable has three additional options named _slide, _slide_curve, and _slide_shape. For example, 'amp' is slidable, so you can also set amp_slide, amp_slide_curve, and amp_slide_shape with the following effects:

_slide: | Amount of time (in beats) for the parameter value to change. A long parameter_slide value means that the parameter takes a long time to slide from the previous value to the new value. A parameter_slide of 0 means that the parameter instantly changes to the new value. Default: 0
_slide_shape: | Shape of curve. 0: step, 1: linear, 3: sine, 4: welch, 5: custom (use *_slide_curve: opt e.g. amp_slide_curve:), 6: squared, 7: cubed. Default: 5
_slide_curve: | Shape of the slide curve (only honoured if slide shape is 5). 0 means linear and positive and negative numbers curve the segment up and down respectively. Default: 0