# 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