# Whammy

amp: | 1 | 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
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