# TB-303 Emulation

note: | 52 | amp: | 1 | pan: | 0 | attack: | 0
decay: | 0 | sustain: | 0 | release: | 1 | attack_level: | 1
decay_level: | sustain_level | sustain_level: | 1 | env_curve: | 2 | cutoff: | 120
cutoff_min: | 30 | cutoff_attack: | attack | cutoff_decay: | decay | cutoff_sustain: | sustain
cutoff_release: | release | cutoff_attack_level: | 1 | cutoff_decay_level: | cutoff_sustain_level | cutoff_sustain_level: | 1
res: | 0.9 | wave: | 0 | pulse_width: | 0.5

``

    use_synth :tb303

Emulation of the classic Roland TB-303 Bass Line synthesiser. Overdrive the res (i.e. use very large values) for that classic late 80s acid sound.

Introduced in v2.0

## Options

note: | Note to play. Either a MIDI number or a symbol representing a note. For example: `30`, `52`, `:C`, `:C2`, `:Eb4`, or `:Ds3` Default: 52 Must be zero or greater May be changed whilst playing Has slide options to shape changes
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
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
attack: | Amount of time (in beats) for sound to reach full amplitude (attack_level). A short attack (i.e. 0.01) makes the initial part of the sound very percussive like a sharp tap. A longer attack (i.e 1) fades the sound in gently. Full length of sound is attack + decay + sustain + release. Default: 0 Must be zero or greater Can not be changed once set Scaled with current BPM value
decay: | Amount of time (in beats) for the sound to move from full amplitude (attack_level) to the sustain amplitude (sustain_level). Default: 0 Must be zero or greater Can not be changed once set Scaled with current BPM value
sustain: | Amount of time (in beats) for sound to remain at sustain level amplitude. Longer sustain values result in longer sounds. Full length of sound is attack + decay + sustain + release. Default: 0 Must be zero or greater Can not be changed once set Scaled with current BPM value
release: | Amount of time (in beats) for sound to move from sustain level amplitude to silent. A short release (i.e. 0.01) makes the final part of the sound very percussive (potentially resulting in a click). A longer release (i.e 1) fades the sound out gently. Full length of sound is attack + decay + sustain + release. Default: 1 Must be zero or greater Can not be changed once set Scaled with current BPM value
attack_level: | Amplitude level reached after attack phase and immediately before decay phase Default: 1 Must be zero or greater Can not be changed once set
decay_level: | Amplitude level reached after decay phase and immediately before sustain phase. Defaults to sustain_level unless explicitly set Default: sustain_level Must be zero or greater Can not be changed once set
sustain_level: | Amplitude level reached after decay phase and immediately before release phase. Default: 1 Must be zero or greater Can not be changed once set
env_curve: | Select the shape of the curve between levels in the envelope. 1=linear, 2=exponential, 3=sine, 4=welch, 6=squared, 7=cubed Default: 2 Must be one of the following values: [1, 2, 3, 4, 6, 7] Can not be changed once set
cutoff: | The maximum cutoff value as a MIDI note Default: 120 Must be a value less than or equal to 130 May be changed whilst playing Has slide options to shape changes
cutoff_min: | The minimum cutoff value. Default: 30 Must be a value less than or equal to 130 May be changed whilst playing Has slide options to shape changes
cutoff_attack: | Attack time for cutoff filter. Amount of time (in beats) for sound to reach full cutoff value. Default value is set to match amp envelope’s attack value. Default: attack Must be zero or greater Can not be changed once set Scaled with current BPM value
cutoff_decay: | Decay time for cutoff filter. Amount of time (in beats) for sound to move from full cutoff value (cutoff attack level) to the cutoff sustain level. Default value is set to match amp envelope’s decay value. Default: decay Must be zero or greater Can not be changed once set Scaled with current BPM value
cutoff_sustain: | Amount of time for cutoff value to remain at sustain level in beats. Default value is set to match amp envelope’s sustain value. Default: sustain Must be zero or greater Can not be changed once set Scaled with current BPM value
cutoff_release: | Amount of time (in beats) for sound to move from cutoff sustain value to cutoff min value. Default value is set to match amp envelope’s release value. Default: release Must be zero or greater Can not be changed once set Scaled with current BPM value
cutoff_attack_level: | The peak cutoff (value of cutoff at peak of attack) as a value between 0 and 1 where 0 is the :cutoff_min and 1 is the :cutoff value Default: 1 Must be a value between 0 and 1 inclusively Can not be changed once set
cutoff_decay_level: | The level of cutoff after the decay phase as a value between 0 and 1 where 0 is the :cutoff_min and 1 is the :cutoff value Default: cutoff_sustain_level Must be a value between 0 and 1 inclusively Can not be changed once set
cutoff_sustain_level: | The sustain cutoff (value of cutoff at sustain time) as a value between 0 and 1 where 0 is the :cutoff_min and 1 is the :cutoff value. Default: 1 Must be a value between 0 and 1 inclusively Can not be changed once set
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.9 Must be zero or greater,must be a value less than 1 May be changed whilst playing Has slide options to shape changes
wave: | Wave type - 0 saw, 1 pulse, 2 triangle. Different waves will produce different sounds. Default: 0 Must be one of the following values: [0, 1, 2] May be changed whilst playing
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

## 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