diff --git a/FoxDot/lib/Extensions/SonicPi/__init__.py b/FoxDot/lib/Extensions/SonicPi/__init__.py index dac7fe86..e5e8931f 100644 --- a/FoxDot/lib/Extensions/SonicPi/__init__.py +++ b/FoxDot/lib/Extensions/SonicPi/__init__.py @@ -84,7 +84,7 @@ def _load_synths(data, create_filename): def LoadSonicPiSynthsDev(sonic_pi_dir): """ Load the sonic pi synths from a live sonic-pi repo """ synthinfo = os.path.join(sonic_pi_dir, - 'app/server/sonicpi/lib/sonicpi/synths/synthinfo') + 'app/server/ruby/lib/sonicpi/synths/synthinfo') datastr = check_output(["ruby", RUBY_SCRIPT, synthinfo]) data = json.loads(datastr) _load_synths( @@ -112,10 +112,10 @@ def create_filename(fullname): def GenerateSonicPiData(sonic_pi_dir): """ Generate the sonic-pi json metadata from a sonic-pi source repo """ synthinfo = os.path.join(sonic_pi_dir, - 'app/server/sonicpi/lib/sonicpi/synths/synthinfo') + 'app/server/ruby/lib/sonicpi/synths/synthinfo') datastr = check_output(["ruby", RUBY_SCRIPT, synthinfo]) ref = check_output(["git", "rev-parse", "HEAD"], cwd=sonic_pi_dir).strip() data = json.loads(datastr) - data['__ref__'] = ref + data['__ref__'] = ref.decode() with open(SONIC_PI_FILE, 'w') as ofile: json.dump(data, ofile, separators=(',', ':')) diff --git a/FoxDot/lib/Extensions/SonicPi/generate_sonic_pi.py b/FoxDot/lib/Extensions/SonicPi/generate_sonic_pi.py index bddbc737..d8e23ce8 100644 --- a/FoxDot/lib/Extensions/SonicPi/generate_sonic_pi.py +++ b/FoxDot/lib/Extensions/SonicPi/generate_sonic_pi.py @@ -1,4 +1,4 @@ -from FoxDot.lib.Custom.SonicPi import GenerateSonicPiData +from FoxDot.lib.Extensions.SonicPi import GenerateSonicPiData if __name__ == '__main__': import sys diff --git a/FoxDot/lib/Extensions/SonicPi/sonicpi.json b/FoxDot/lib/Extensions/SonicPi/sonicpi.json index d5ca4f6a..4782c902 100644 --- a/FoxDot/lib/Extensions/SonicPi/sonicpi.json +++ b/FoxDot/lib/Extensions/SonicPi/sonicpi.json @@ -1 +1 @@ -{"zawa":{"category":"general","user_facing":true,"name":"Zawa","doc":"Saw wave with oscillating timbre. Produces moving saw waves with a unique character controllable with the control oscillator (usage similar to mod synths).","synth_name":"zawa","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"invert_wave":0,"amp_slide":0,"pan_slide":0,"range_slide_shape":1,"pulse_width_slide_shape":1,"note_slide_curve":0,"note_slide":0,"res_slide":0,"decay_level":"sustain_level","pulse_width_slide":0,"decay":0,"res":0.9,"range_slide":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"range_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"res_slide_curve":0,"phase_slide_shape":1,"note_slide_shape":1,"pulse_width":0.5,"phase":1,"amp":1,"wave":3,"pan_slide_curve":0,"pulse_width_slide_curve":0,"phase_slide_curve":0,"phase_slide":0,"phase_offset":0,"res_slide_shape":1,"range":24,"release":1,"amp_slide_shape":1,"disable_wave":0,"cutoff_slide":0}},"fx_slicer":{"user_facing":true,"name":"Slicer","doc":"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.","synth_name":"fx_slicer","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"invert_wave":0,"amp_slide":0,"probability":0,"mix_slide_curve":0,"amp_max_slide_curve":0,"smooth_down_slide_shape":1,"pre_amp_slide_curve":0,"smooth_slide_curve":0,"pre_mix":1,"amp_max_slide":0,"smooth_down_slide_curve":0,"prob_pos_slide_curve":0,"smooth_up_slide_curve":0,"pulse_width_slide":0,"amp_min_slide":0,"smooth_down":0,"mix":1,"pre_amp_slide_shape":1,"probability_slide":0,"pre_mix_slide":0,"pulse_width_slide_shape":1,"probability_slide_shape":1,"probability_slide_curve":0,"prob_pos":0,"pre_amp":1,"amp_slide_curve":0,"amp_min_slide_curve":0,"prob_pos_slide_shape":1,"smooth_up_slide_shape":1,"amp_max":1,"wave":1,"phase_slide_shape":1,"mix_slide_shape":1,"amp_max_slide_shape":1,"pulse_width":0.5,"phase":0.25,"amp":1,"pre_mix_slide_shape":1,"pulse_width_slide_curve":0,"amp_min_slide_shape":1,"smooth_slide":0,"phase_slide_curve":0,"smooth_slide_shape":1,"phase_slide":0,"phase_offset":0,"pre_mix_slide_curve":0,"smooth_up":0,"smooth":0,"smooth_up_slide":0,"amp_min":0,"seed":0,"smooth_down_slide":0,"amp_slide_shape":1,"prob_pos_slide":0,"pre_amp_slide":0,"mix_slide":0}},"fx_replace_echo":{"user_facing":true,"name":"Echo","doc":"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.","synth_name":"fx_echo","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"max_phase":2,"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"decay_slide_shape":1,"decay":2,"decay_slide_curve":0,"decay_slide":0,"mix":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"pre_amp":1,"amp_slide_curve":0,"phase_slide_shape":1,"mix_slide_shape":1,"phase":0.25,"amp":1,"pre_mix_slide_shape":1,"phase_slide_curve":0,"phase_slide":0,"pre_mix_slide_curve":0,"amp_slide_shape":1,"pre_amp_slide":0,"mix_slide":0}},"fx_bitcrusher":{"user_facing":true,"name":"Bitcrusher","doc":"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.","synth_name":"fx_bitcrusher","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":0,"amp_slide":0,"mix_slide_curve":0,"bits_slide_shape":1,"pre_amp_slide_curve":0,"pre_mix":1,"cutoff_slide_shape":1,"mix":1,"sample_rate_slide":0,"pre_amp_slide_shape":1,"pre_mix_slide":0,"cutoff_slide_curve":0,"pre_amp":1,"bits":8,"amp_slide_curve":0,"bits_slide":0,"sample_rate_slide_curve":0,"mix_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"sample_rate_slide_shape":1,"pre_mix_slide_curve":0,"bits_slide_curve":0,"cutoff_slide":0,"sample_rate":10000,"amp_slide_shape":1,"pre_amp_slide":0,"mix_slide":0}},"fx_replace_wobble":{"user_facing":true,"name":"Wobble","doc":"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","synth_name":"fx_wobble","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff_min_slide":0,"cutoff_max_slide_curve":0,"invert_wave":0,"amp_slide":0,"probability":0,"mix_slide_curve":0,"pulse_width_slide_shape":1,"wave":0,"smooth_down_slide_shape":1,"pre_amp_slide_curve":0,"smooth_slide_curve":0,"pre_mix":1,"res_slide":0,"cutoff_max":120,"smooth_down_slide_curve":0,"prob_pos_slide_curve":0,"smooth_up_slide_curve":0,"pulse_width_slide":0,"res":0.8,"cutoff_min_slide_shape":1,"smooth_down":0,"mix":1,"cutoff_max_slide_shape":1,"pre_amp_slide_shape":1,"cutoff_min":60,"pre_mix_slide":0,"probability_slide_curve":0,"prob_pos":0,"pre_amp":1,"amp_slide_curve":0,"probability_slide_shape":1,"prob_pos_slide_shape":1,"smooth_up_slide_shape":1,"cutoff_min_slide_curve":0,"probability_slide":0,"res_slide_curve":0,"phase_slide_shape":1,"mix_slide_shape":1,"pulse_width":0.5,"phase":0.5,"amp":1,"cutoff_max_slide":0,"pre_mix_slide_shape":1,"pulse_width_slide_curve":0,"smooth_slide":0,"phase_slide_curve":0,"smooth_slide_shape":1,"phase_slide":0,"phase_offset":0,"pre_mix_slide_curve":0,"smooth_up":0,"smooth":0,"smooth_up_slide":0,"filter":0,"seed":0,"smooth_down_slide":0,"res_slide_shape":1,"amp_slide_shape":1,"prob_pos_slide":0,"pre_amp_slide":0,"mix_slide":0}},"fx_eq":{"user_facing":true,"name":"EQ","doc":"Basic parametric EQ","synth_name":"fx_eq","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"low_shelf_slide_curve":0,"amp_slide":0,"high_shelf_note_slide_shape":1,"mix_slide_curve":0,"low_shelf":0,"high_shelf_slide_shape":1,"low_shelf_note_slide_shape":1,"low_shelf_slope_slide_curve":0,"mid_note_slide_shape":1,"high":0,"pre_amp_slide_curve":0,"high_note_slide_shape":1,"pre_mix":1,"mid_q_slide_curve":0,"high_shelf":0,"high_shelf_slope_slide_curve":0,"high_shelf_slide":0,"high_shelf_note_slide_curve":0,"high_q":0.6,"low_slide_curve":0,"low_note":59.2130948,"low_note_slide":0,"low_shelf_slope_slide_shape":1,"mid_q_slide":0,"mid":0,"mid_q_slide_shape":1,"mix":1,"high_q_slide_shape":1,"pre_amp_slide_shape":1,"high_slide":0,"pre_mix_slide":0,"mid_note_slide":0,"low_shelf_slope":1,"low_shelf_slope_slide":0,"pre_amp":1,"high_note_slide":0,"amp_slide_curve":0,"high_shelf_slope":1,"low_q":0.6,"mid_slide_shape":1,"high_shelf_slope_slide":0,"mid_slide":0,"low_shelf_note_slide_curve":0,"mid_q":0.6,"high_q_slide_curve":0,"low_slide_shape":1,"mid_note":83.2130948,"mix_slide_shape":1,"low_q_slide_shape":1,"low":0,"high_shelf_note":114.2326448,"low_note_slide_curve":0,"high_slide_shape":1,"amp":1,"low_shelf_slide_shape":1,"pre_mix_slide_shape":1,"high_shelf_slide_curve":0,"low_shelf_slide":0,"low_q_slide":0,"low_note_slide_shape":1,"high_shelf_note_slide":0,"low_slide":0,"mid_note_slide_curve":0,"pre_mix_slide_curve":0,"high_slide_curve":0,"mid_slide_curve":0,"high_note_slide_curve":0,"low_q_slide_curve":0,"high_q_slide":0,"high_shelf_slope_slide_shape":1,"high_note":104.9013539,"low_shelf_note":43.349957,"low_shelf_note_slide":0,"amp_slide_shape":1,"pre_amp_slide":0,"mix_slide":0}},"subpulse":{"category":"general","user_facing":true,"name":"Pulse Wave with sub","doc":"A pulse wave with a sub sine wave passed through a low pass filter. The pulse wave is thick and heavy with lower notes and is a great ingredient for bass sounds - especially with the sub wave.","synth_name":"subpulse","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"pan_slide":0,"pulse_width_slide_shape":1,"note_slide_curve":0,"sub_detune":-12,"sub_amp_slide_curve":0,"sub_amp_slide_shape":1,"note_slide":0,"decay_level":"sustain_level","sub_detune_slide_shape":1,"pulse_width_slide":0,"decay":0,"sub_detune_slide_curve":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"sub_detune_slide":0,"pan":0,"amp_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"pulse_width":0.5,"amp":1,"pan_slide_curve":0,"pulse_width_slide_curve":0,"env_curve":2,"sub_amp":1,"sub_amp_slide":0,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"basic_mixer":{"category":"general","user_facing":false,"name":"Basic Mixer","doc":"Please write documentation!","synth_name":"basic_mixer","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"amp":1,"amp_slide_curve":0,"amp_slide":0.1,"amp_slide_shape":1}},"chipbass":{"category":"general","user_facing":true,"name":"Chip Bass","doc":"A 16 step triangle wave modelled after the 2A03 chip found in voice 3 of the NES games console. This can be used for retro sounding basslines. For complete authenticity with the 2A03 bear in mind that the triangle channel on that chip didn't have a volume control.","synth_name":"chipbass","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"env_curve":2,"pan_slide":0,"amp_slide":0,"note_resolution":0.1,"decay":0,"note_slide_curve":0,"attack_level":1,"decay_level":"sustain_level","pan_slide_shape":1,"sustain_level":1,"note":60,"release":1,"attack":0,"sustain":0,"note_slide":0,"amp_slide_shape":1,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"pan":0,"amp_slide_curve":0}},"chipnoise":{"category":"general","user_facing":true,"name":"Chip Noise","doc":"Generates noise whose values are either -1 or 1 (like a pulse or square wave) with one of 16 particular frequencies. This is similar to the noise channel on the 2A03 chip used in the NES games console, although it lacks the same Pseudo-Random Number Generator (PRNG) and doesn't implement the 2A03's lesser used noise mode. The amplitude envelope defaults to moving by step to keep that 16 bit feel and this synth also has a slight soft clipping to better imitate the original sound of the device. Use for retro effects, hand claps, snare drums and hi-hats.","synth_name":"chipnoise","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"env_curve":0,"decay_level":"sustain_level","freq_band_slide":0,"amp_slide":0,"pan_slide":0,"decay":0,"attack_level":1,"sustain_level":1,"pan_slide_shape":1,"freq_band_slide_shape":1,"attack":0,"freq_band_slide_curve":0,"sustain":1,"amp_slide_shape":0,"release":0,"amp":1,"freq_band":0,"pan_slide_curve":0,"pan":0,"amp_slide_curve":1}},"tb303":{"category":"general","user_facing":true,"name":"TB-303 Emulation","doc":"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.","synth_name":"tb303","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff_min_slide":0,"cutoff":120,"amp_slide":0,"pan_slide":0,"pulse_width_slide_shape":1,"note_slide_curve":0,"note_slide":0,"res_slide":0,"decay_level":"sustain_level","cutoff_release":"release","cutoff_attack_level":1,"cutoff_sustain_level":1,"decay":0,"res":0.9,"cutoff_min_slide_shape":1,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"cutoff_min":30,"pulse_width_slide_curve":0,"pan":0,"amp_slide_curve":0,"cutoff_sustain":"sustain","cutoff_slide_curve":0,"sustain_level":1,"res_slide_curve":0,"note_slide_shape":1,"cutoff_attack":"attack","pulse_width":0.5,"amp":1,"wave":0,"pan_slide_curve":0,"pulse_width_slide":0,"env_curve":2,"cutoff_min_slide_curve":0,"res_slide_shape":1,"cutoff_decay_level":"cutoff_sustain_level","cutoff_decay":"decay","release":1,"amp_slide_shape":1,"cutoff_slide":0}},"piano":{"category":"general","user_facing":true,"name":"SynthPiano","doc":"A basic piano synthesiser. Note that due to the plucked nature of this synth the envelope opts such as `attack:`, `sustain:` and `release:` do not work as expected. They can only shorten the natural length of the note, not prolong it. Also, the `note:` opt will only honour whole tones.","synth_name":"piano","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"hard":0.5,"note_slide":0,"decay_level":"sustain_level","decay":0,"pan_slide_shape":1,"note":52,"attack":0,"sustain":0,"attack_level":1,"vel":0.2,"pan":0,"amp_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"stereo_width":0,"release":1,"amp_slide_shape":1}},"fx_nbpf":{"user_facing":true,"name":"Normalised Band Pass Filter","doc":"Like the Band Pass Filter but normalised. The normaliser is useful here as some volume is lost when filtering the original signal.","synth_name":"fx_nbpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"centre_slide_shape":1,"res":0.6,"centre_slide":0,"mix":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"pre_amp":1,"amp_slide_curve":0,"centre":100,"res_slide_curve":0,"mix_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"centre_slide_curve":0,"pre_mix_slide_curve":0,"res_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"mix_slide":0}},"basic_mono_player":{"category":"general","user_facing":false,"name":"Basic Mono Sample Player (no env)","doc":"","synth_name":"basic_mono_player","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"hpf_slide_curve":0,"lpf_slide_shape":1,"amp_slide":0,"pan_slide":0,"lpf_slide":0,"pan_slide_shape":1,"rate":1,"lpf":-1,"hpf_slide_shape":1,"amp_slide_shape":1,"hpf_slide":0,"amp":1,"lpf_slide_curve":0,"pan_slide_curve":0,"hpf":-1,"pan":0,"amp_slide_curve":0}},"fx_pan":{"user_facing":true,"name":"Pan","doc":"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.","synth_name":"fx_pan","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"pre_amp_slide_shape":1,"pre_amp":1,"amp_slide":0,"pan_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pan_slide_shape":1,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"pan_slide_curve":0,"mix_slide":0,"pan":0,"amp_slide_curve":0}},"fx_octaver":{"user_facing":true,"name":"Octaver","doc":"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).\n\n 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","synth_name":"fx_octaver","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"super_amp_slide_curve":0,"amp_slide":0,"mix_slide_curve":0,"sub_amp_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"subsub_amp_slide":0,"subsub_amp_slide_shape":1,"sub_amp_slide_shape":1,"mix":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"pre_amp":1,"amp_slide_curve":0,"super_amp_slide_shape":1,"mix_slide_shape":1,"super_amp":1,"amp":1,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"sub_amp":1,"subsub_amp_slide_curve":0,"subsub_amp":1,"sub_amp_slide":0,"amp_slide_shape":1,"pre_amp_slide":0,"mix_slide":0,"super_amp_slide":0}},"fx_tanh":{"user_facing":true,"name":"Hyperbolic Tangent","doc":"Please write documentation!","synth_name":"fx_tanh","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"pre_amp_slide_shape":1,"pre_amp":1,"amp_slide":0,"krunch_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"krunch":5,"krunch_slide_curve":0,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"mix_slide":0,"krunch_slide_shape":1,"amp_slide_curve":0}},"sound_in":{"category":"general","user_facing":true,"name":"Sound In","doc":"Treat sound card input as a synth. If your audio card has inputs, you may use this synth to feed the incoming audio into Sonic Pi. This synth will read in a single mono audio stream - for example from a standard microphone or guitar. See `:sound_in_stereo` for a similar synth capable of reading in a stereo signal.\n\nAs with all Sonic Pi synths, there is a default envelope which determines the duration of the lifetime of the synth. Therefore, to get a continuous stream of audio, you need to place consecutive calls to this synth in iteration or a `live_loop`. For example:\n\n```\nlive_loop :playback do\n```\n\n```\n synth :sound_in, sustain: 8\n```\n\n```\n sleep 8\n```\n\n```\nend\n```\n\nNote that if the microphone and speaker are close together (on a laptop or in a small room) you will potentially get a harsh feedback sound.\n\nAlso, note that audio in isn't yet supported on Raspberry Pi.","synth_name":"sound_in","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"env_curve":0,"decay_level":"sustain_level","amp_slide":0,"pan_slide":0,"decay":0,"input":1,"attack_level":1,"sustain_level":1,"pan_slide_shape":1,"attack":0,"sustain":1,"amp_slide_shape":1,"release":0,"amp":1,"pan_slide_curve":0,"pan":0,"amp_slide_curve":0}},"fx_nrlpf":{"user_facing":true,"name":"Normalised Resonant Low Pass Filter","doc":"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.\n\n 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.","synth_name":"fx_nrlpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"mix":1,"res":0.5,"cutoff_slide_shape":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"cutoff_slide_curve":0,"pre_amp":1,"amp_slide_curve":0,"res_slide_curve":0,"mix_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide":0,"res_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"cutoff_slide":0}},"supersaw":{"category":"general","user_facing":true,"name":"Supersaw","doc":"Thick swirly saw waves sparkling and moving about to create a rich trancy sound.","synth_name":"supersaw","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":130,"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"note_slide":0,"res_slide":0,"decay_level":"sustain_level","decay":0,"res":0.7,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"res_slide_curve":0,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"env_curve":2,"res_slide_shape":1,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"sound_in_stereo":{"category":"general","user_facing":true,"name":"Sound In Stereo","doc":"Treat sound card input as a synth. If your audio card has inputs, you may use this synth to feed the incoming audio into Sonic Pi. This synth will read in a stereo audio stream - for example from a stereo microphone or external stereo keyboard. See `:sound_in` for a similar synth capable of reading in a mono signal. The stereo input is expected to be on consecutive sound card channels.\n\nAs with all Sonic Pi synths, there is a default envelope which determines the duration of the lifetime of the synth. Therefore, to get a continuous stream of audio, you need to place consecutive calls to this synth in iteration or a `live_loop`. For example:\n\n```\nlive_loop :playback do\n```\n\n```\n synth :sound_in_stereo, sustain: 8\n```\n\n```\n sleep 8\n```\n\n```\nend\n```\n\nNote that if the microphone and speaker are close together (on a laptop or in a small room) you will potentially get a harsh feedback sound.\n\nAlso, note that audio in isn't yet supported on Raspberry Pi.","synth_name":"sound_in_stereo","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"env_curve":0,"decay_level":"sustain_level","amp_slide":0,"pan_slide":0,"decay":0,"input":1,"attack_level":1,"sustain_level":1,"pan_slide_shape":1,"attack":0,"sustain":1,"amp_slide_shape":1,"release":0,"amp":1,"pan_slide_curve":0,"pan":0,"amp_slide_curve":0}},"tri":{"category":"general","user_facing":true,"name":"Triangle Wave","doc":"A simple triangle wave with a low pass filter.","synth_name":"tri","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"pan_slide":0,"pulse_width_slide_shape":1,"note_slide_curve":0,"note_slide":0,"decay_level":"sustain_level","pulse_width_slide":0,"decay":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"pulse_width":0.5,"amp":1,"pan_slide_curve":0,"pulse_width_slide_curve":0,"env_curve":2,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"fx_gverb":{"user_facing":true,"name":"GVerb","doc":"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.","synth_name":"fx_gverb","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"pre_damp_slide_shape":1,"amp_slide":0,"pre_damp_slide_curve":0,"mix_slide_curve":0,"ref_level":0.7,"pre_amp_slide_curve":0,"pre_mix":1,"amp":1,"dry_slide":0,"dry_slide_shape":1,"pre_mix_slide_shape":1,"mix":1,"damp":0.5,"spread":0.5,"pre_amp_slide_shape":1,"pre_mix_slide":0,"tail_level":0.5,"pre_amp":1,"amp_slide_curve":0,"pre_damp":0.5,"pre_damp_slide":0,"damp_slide":0,"mix_slide_shape":1,"spread_slide_curve":0,"damp_slide_shape":1,"spread_slide_shape":1,"dry":1,"pre_amp_slide":0,"room":10,"pre_mix_slide_curve":0,"damp_slide_curve":0,"release":3,"amp_slide_shape":1,"spread_slide":0,"mix_slide":0,"dry_slide_curve":0}},"tech_saws":{"category":"general","user_facing":true,"name":"TechSaws","doc":"Slightly modified supersaw implementation beased on http://sccode.org/1-4YS","synth_name":"tech_saws","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":130,"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"note_slide":0,"res_slide":0,"decay_level":"sustain_level","decay":0,"res":0.7,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"res_slide_curve":0,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"env_curve":2,"res_slide_shape":1,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"fx_ring_mod":{"user_facing":true,"name":"Ring Modulator","doc":"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!","synth_name":"fx_ring_mod","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"freq_slide_curve":0,"amp_slide":0,"mod_amp_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"mod_amp_slide_shape":1,"mod_amp":1,"mix":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"pre_amp":1,"amp_slide_curve":0,"freq_slide_shape":1,"mix_slide_shape":1,"amp":1,"freq":30,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"mod_amp_slide":0,"amp_slide_shape":1,"freq_slide":0,"pre_amp_slide":0,"mix_slide":0}},"pnoise":{"category":"general","user_facing":true,"name":"Pink Noise","doc":"Noise whose spectrum falls off in power by 3 dB per octave. Useful for generating percussive sounds such as snares and hand claps. Also useful for simulating wind or sea effects.","synth_name":"pnoise","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":110,"amp_slide":0,"pan_slide":0,"res_slide":0,"decay_level":"sustain_level","decay":0,"res":0,"pan_slide_shape":1,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"res_slide_curve":0,"amp":1,"pan_slide_curve":0,"env_curve":2,"res_slide_shape":1,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"fx_echo":{"user_facing":true,"name":"Echo","doc":"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.","synth_name":"fx_echo","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"max_phase":2,"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"decay_slide_shape":1,"decay":2,"decay_slide_curve":0,"decay_slide":0,"mix":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"pre_amp":1,"amp_slide_curve":0,"phase_slide_shape":1,"mix_slide_shape":1,"phase":0.25,"amp":1,"pre_mix_slide_shape":1,"phase_slide_curve":0,"phase_slide":0,"pre_mix_slide_curve":0,"amp_slide_shape":1,"pre_amp_slide":0,"mix_slide":0}},"fx_replace_level":{"user_facing":true,"name":"Level Amplifier","doc":"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.","synth_name":"fx_level","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"amp":1,"amp_slide_curve":0,"amp_slide":0,"amp_slide_shape":1}},"fx_sound_out":{"user_facing":true,"name":"Sound Out","doc":"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. ","synth_name":"fx_sound_out","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"pre_amp_slide_shape":1,"pre_amp":1,"amp_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"output":1,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"mode":0,"pre_mix_slide_shape":1,"mix_slide":0,"amp_slide_curve":0}},"dtri":{"category":"general","user_facing":true,"name":"Detuned Triangle Wave","doc":"A pair of detuned triangle waves passed through a low pass filter. Two pulse waves with slightly different frequencies generates a nice thick sound which can be used as a basis for some nice bass sounds. Thicken the sound by increasing the detune value, or create an octave-playing synth by choosing a detune of 12 (12 MIDI notes is an octave).","synth_name":"dtri","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"note_slide":0,"decay_level":"sustain_level","decay":0,"detune_slide":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"detune_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"env_curve":2,"detune_slide_shape":1,"detune":0.1,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"fx_replace_normaliser":{"user_facing":true,"name":"Normaliser","doc":"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.","synth_name":"fx_normaliser","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"pre_amp_slide_shape":1,"pre_amp":1,"amp_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"level_slide_shape":1,"mix_slide_curve":0,"pre_amp_slide_curve":0,"level_slide":0,"level_slide_curve":0,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"mix_slide":0,"level":1,"amp_slide_curve":0}},"fx_lpf":{"user_facing":true,"name":"Low Pass Filter","doc":"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.","synth_name":"fx_lpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"pre_amp_slide_shape":1,"pre_amp":1,"cutoff_slide_shape":1,"amp_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"cutoff_slide":0,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"mix_slide":0,"cutoff_slide_curve":0,"amp_slide_curve":0}},"pulse":{"category":"general","user_facing":true,"name":"Pulse Wave","doc":"A simple pulse wave with a low pass filter. This defaults to a square wave, but the timbre can be changed dramatically by adjusting the pulse_width arg between 0 and 1. The pulse wave is thick and heavy with lower notes and is a great ingredient for bass sounds.","synth_name":"pulse","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"pan_slide":0,"pulse_width_slide_shape":1,"note_slide_curve":0,"note_slide":0,"decay_level":"sustain_level","pulse_width_slide":0,"decay":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"pulse_width":0.5,"amp":1,"pan_slide_curve":0,"pulse_width_slide_curve":0,"env_curve":2,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"fx_nhpf":{"user_facing":true,"name":"Normalised High Pass Filter","doc":"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.","synth_name":"fx_nhpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"pre_amp_slide_shape":1,"pre_amp":1,"cutoff_slide_shape":1,"amp_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"cutoff_slide":0,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"mix_slide":0,"cutoff_slide_curve":0,"amp_slide_curve":0}},"fx_ixi_techno":{"user_facing":true,"name":"Techno from IXI Lang","doc":"Moving resonant low pass filter between min and max cutoffs. Great for sweeping effects across long synths or samples.","synth_name":"fx_ixi_techno","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff_min_slide":0,"cutoff_max_slide_curve":0,"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"cutoff_max":120,"res":0.8,"cutoff_min_slide_shape":1,"mix":1,"cutoff_max_slide_shape":1,"pre_amp_slide_shape":1,"cutoff_min":60,"pre_mix_slide":0,"pre_amp":1,"amp_slide_curve":0,"cutoff_min_slide_curve":0,"res_slide_curve":0,"phase_slide_shape":1,"mix_slide_shape":1,"phase":4,"amp":1,"cutoff_max_slide":0,"pre_mix_slide_shape":1,"phase_slide_curve":0,"phase_slide":0,"phase_offset":0,"pre_mix_slide_curve":0,"res_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"mix_slide":0}},"fx_nlpf":{"user_facing":true,"name":"Normalised Low Pass Filter.","doc":"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.","synth_name":"fx_nlpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"pre_amp_slide_shape":1,"pre_amp":1,"cutoff_slide_shape":1,"amp_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"cutoff_slide":0,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"mix_slide":0,"cutoff_slide_curve":0,"amp_slide_curve":0}},"fx_krush":{"user_facing":true,"name":"krush","doc":"Krush that sound!","synth_name":"fx_krush","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"gain_slide_shape":1,"cutoff_slide_shape":1,"res":0,"mix":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"cutoff_slide_curve":0,"gain_slide":0,"pre_amp":1,"amp_slide_curve":0,"gain_slide__curve":0,"res_slide_curve":0,"mix_slide_shape":1,"gain":5,"amp":1,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide":0,"res_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"cutoff_slide":0}},"mod_tri":{"category":"general","user_facing":true,"name":"Modulated Triangle Wave","doc":"A triangle wave passed through a low pass filter which modulates between two separate notes via a variety of control waves.","synth_name":"mod_tri","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"mod_range_slide":0,"amp_slide":0,"pan_slide":0,"mod_phase_slide":0,"note_slide_curve":0,"note_slide":0,"mod_phase":0.25,"mod_pulse_width_slide":0,"decay_level":"sustain_level","mod_range_slide_curve":0,"decay":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"mod_invert_wave":0,"pan":0,"amp_slide_curve":0,"mod_pulse_width_slide_curve":0,"mod_pulse_width":0.5,"mod_phase_slide_shape":1,"mod_phase_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"mod_range":5,"amp":1,"mod_phase_offset":0,"pan_slide_curve":0,"env_curve":2,"mod_range_slide_shape":1,"mod_wave":1,"release":1,"amp_slide_shape":1,"mod_pulse_width_slide_shape":1,"cutoff_slide":0}},"fx_nrbpf":{"user_facing":true,"name":"Normalised Resonant Band Pass Filter","doc":"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.\n\n The normaliser is useful here as some volume is lost when filtering the original signal.","synth_name":"fx_nrbpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"centre_slide_shape":1,"res":0.5,"centre_slide":0,"mix":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"pre_amp":1,"amp_slide_curve":0,"centre":100,"res_slide_curve":0,"mix_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"centre_slide_curve":0,"pre_mix_slide_curve":0,"res_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"mix_slide":0}},"fx_replace_nlpf":{"user_facing":true,"name":"Normalised Low Pass Filter.","doc":"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.","synth_name":"fx_nlpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"pre_amp_slide_shape":1,"pre_amp":1,"cutoff_slide_shape":1,"amp_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"cutoff_slide":0,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"mix_slide":0,"cutoff_slide_curve":0,"amp_slide_curve":0}},"fx_reverb":{"user_facing":true,"name":"Reverb","doc":"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.","synth_name":"fx_reverb","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"amp_slide":0,"room_slide_curve":0,"room_slide":0,"pre_amp_slide_curve":0,"pre_mix":1,"damp":0.5,"mix_slide_curve":0,"mix":0.4,"pre_amp_slide_shape":1,"room_slide_shape":1,"pre_amp":1,"amp_slide_curve":0,"damp_slide":0,"mix_slide_shape":1,"amp":1,"damp_slide_shape":1,"pre_mix_slide_shape":1,"room":0.6,"pre_mix_slide_curve":0,"damp_slide_curve":0,"pre_mix_slide":0,"amp_slide_shape":1,"pre_amp_slide":0,"mix_slide":0}},"noise":{"category":"general","user_facing":true,"name":"Noise","doc":"Noise that contains equal amounts of energy at every frequency - comparable to radio static. Useful for generating percussive sounds such as snares and hand claps. Also useful for simulating wind or sea effects.","synth_name":"noise","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":110,"amp_slide":0,"pan_slide":0,"res_slide":0,"decay_level":"sustain_level","decay":0,"res":0,"pan_slide_shape":1,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"res_slide_curve":0,"amp":1,"pan_slide_curve":0,"env_curve":2,"res_slide_shape":1,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"fx_rbpf":{"user_facing":true,"name":"Resonant Band Pass Filter","doc":"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.","synth_name":"fx_rbpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"centre_slide_shape":1,"res":0.5,"centre_slide":0,"mix":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"pre_amp":1,"amp_slide_curve":0,"centre":100,"res_slide_curve":0,"mix_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"centre_slide_curve":0,"pre_mix_slide_curve":0,"res_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"mix_slide":0}},"pluck":{"category":"general","user_facing":true,"name":"SynthPluck","doc":"A basic plucked string synthesiser that uses Karplus-Strong synthesis. Note that due to the plucked nature of this synth the envelope opts such as `attack:`, `sustain:` and `release:` do not work as expected. They can only shorten the natural length of the note, not prolong it. Also, the `note:` opt will only honour whole tones.","synth_name":"pluck","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"pluck_decay":30,"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"note_slide":0,"decay_level":"sustain_level","decay":0,"pan_slide_curve":0,"pan_slide_shape":1,"note":52,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"noise_amp":0.8,"coef":0.3,"sustain_level":1,"note_slide_shape":1,"amp":1,"max_delay_time":0.125,"release":1,"amp_slide_shape":1}},"cnoise":{"category":"general","user_facing":true,"name":"Clip Noise","doc":"Generates noise whose values are either -1 or 1. This produces the maximum energy for the least peak to peak amplitude. Useful for generating percussive sounds such as snares and hand claps. Also useful for simulating wind or sea effects.","synth_name":"cnoise","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":110,"amp_slide":0,"pan_slide":0,"res_slide":0,"decay_level":"sustain_level","decay":0,"res":0,"pan_slide_shape":1,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"res_slide_curve":0,"amp":1,"pan_slide_curve":0,"env_curve":2,"res_slide_shape":1,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"fx_pitch_shift":{"user_facing":true,"name":"Pitch shift","doc":"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.","synth_name":"fx_pitch_shift","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"amp_slide":0,"mix_slide_curve":0,"pitch_dis_slide_shape":1,"pre_amp_slide_curve":0,"pre_mix":1,"pitch":0,"pitch_dis_slide_curve":0,"time_dis_slide":0,"pitch_slide":0,"window_size":0.2,"pitch_dis":0.0,"pitch_slide_shape":1,"mix":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"pre_amp":1,"time_dis_slide_curve":0,"amp_slide_curve":0,"pitch_dis_slide":0,"mix_slide_shape":1,"window_size_slide":0,"amp_slide_shape":1,"amp":1,"time_dis":0.0,"pre_mix_slide_shape":1,"window_size_slide_shape":1,"pre_mix_slide_curve":0,"time_dis_slide_shape":1,"pitch_slide_curve":0,"window_size_slide_curve":0,"pre_amp_slide":0,"mix_slide":0}},"fx_compressor":{"user_facing":true,"name":"Compressor","doc":"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.","synth_name":"fx_compressor","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"threshold_slide_curve":0,"pre_mix":1,"threshold":0.2,"relax_time_slide_curve":0,"relax_time":0.01,"slope_below_slide":0,"clamp_time_slide_curve":0,"relax_time_slide":0,"clamp_time":0.01,"mix":1,"pre_amp_slide_shape":1,"relax_time_slide_shape":1,"pre_mix_slide":0,"slope_above_slide_shape":1,"pre_amp":1,"slope_above_slide":0,"amp_slide_curve":0,"slope_above_slide_curve":0,"slope_above":0.5,"slope_below":1,"mix_slide_shape":1,"clamp_time_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"clamp_time_slide":0,"threshold_slide_shape":1,"pre_mix_slide_curve":0,"slope_below_slide_curve":0,"slope_below_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"threshold_slide":0,"mix_slide":0}},"fx_replace_nhpf":{"user_facing":true,"name":"Normalised High Pass Filter","doc":"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.","synth_name":"fx_nhpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"pre_amp_slide_shape":1,"pre_amp":1,"cutoff_slide_shape":1,"amp_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"cutoff_slide":0,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"mix_slide":0,"cutoff_slide_curve":0,"amp_slide_curve":0}},"mod_beep":{"category":"general","user_facing":true,"name":"Modulated Sine Wave","doc":"A sine wave passed through a low pass filter which modulates between two separate notes via a variety of control waves.","synth_name":"mod_sine","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"mod_range_slide":0,"amp_slide":0,"pan_slide":0,"mod_phase_slide":0,"note_slide_curve":0,"note_slide":0,"mod_phase":0.25,"mod_pulse_width_slide":0,"decay_level":"sustain_level","mod_range_slide_curve":0,"decay":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"mod_invert_wave":0,"pan":0,"amp_slide_curve":0,"mod_pulse_width_slide_curve":0,"mod_pulse_width":0.5,"mod_phase_slide_shape":1,"mod_phase_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"mod_range":5,"amp":1,"mod_phase_offset":0,"pan_slide_curve":0,"env_curve":2,"mod_range_slide_shape":1,"mod_wave":1,"release":1,"amp_slide_shape":1,"mod_pulse_width_slide_shape":1,"cutoff_slide":0}},"fx_flanger":{"user_facing":true,"name":"Flanger","doc":"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.","synth_name":"fx_flanger","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"invert_wave":0,"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"decay_slide_shape":1,"decay_slide":0,"feedback":0,"delay_slide_shape":1,"decay":2,"decay_slide_curve":0,"depth_slide":0,"max_delay":20,"delay":5,"mix":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"feedback_slide_curve":0,"depth_slide_shape":1,"pre_amp":1,"amp_slide_curve":0,"depth_slide_curve":0,"feedback_slide_shape":1,"stereo_invert_wave":0,"wave":4,"phase_slide_shape":1,"mix_slide_shape":1,"phase":4,"amp":1,"delay_slide_curve":0,"pre_mix_slide_shape":1,"invert_flange":0,"phase_slide_curve":0,"phase_slide":0,"phase_offset":0,"feedback_slide":0,"pre_mix_slide_curve":0,"depth":5,"amp_slide_shape":1,"pre_amp_slide":0,"delay_slide":0,"mix_slide":0}},"prophet":{"category":"general","user_facing":true,"name":"The Prophet","doc":"Dark and swirly, this synth uses Pulse Width Modulation (PWM) to create a timbre which continually moves around. This effect is created using the pulse ugen which produces a variable width square wave. We then control the width of the pulses using a variety of LFOs - sin-osc and lf-tri in this case. We use a number of these LFO modulated pulse ugens with varying LFO type and rate (and phase in some cases) to provide the LFO with a different starting point. We then mix all these pulses together to create a thick sound and then feed it through a resonant low pass filter (rlpf). For extra bass, one of the pulses is an octave lower (half the frequency) and its LFO has a little bit of randomisation thrown into its frequency component for that extra bit of variety.\n\nSynth design adapted from:\nThe Prophet Speaks (page 2)\nSteal This Sound, Mitchell Sigman","synth_name":"prophet","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":110,"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"note_slide":0,"res_slide":0,"decay_level":"sustain_level","decay":0,"res":0.7,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"res_slide_curve":0,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"env_curve":2,"res_slide_shape":1,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"__ref__":"98914aaac061c1e7d6216b2a1065f49cb9733d9c","mod_saw":{"category":"general","user_facing":true,"name":"Modulated Saw Wave","doc":"A saw wave passed through a low pass filter which modulates between two separate notes via a variety of control waves.","synth_name":"mod_saw","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"mod_range_slide":0,"amp_slide":0,"pan_slide":0,"mod_phase_slide":0,"note_slide_curve":0,"note_slide":0,"mod_phase":0.25,"mod_pulse_width_slide":0,"decay_level":"sustain_level","mod_range_slide_curve":0,"decay":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"mod_invert_wave":0,"pan":0,"amp_slide_curve":0,"mod_pulse_width_slide_curve":0,"mod_pulse_width":0.5,"mod_phase_slide_shape":1,"mod_phase_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"mod_range":5,"amp":1,"mod_phase_offset":0,"pan_slide_curve":0,"env_curve":2,"mod_range_slide_shape":1,"mod_wave":1,"release":1,"amp_slide_shape":1,"mod_pulse_width_slide_shape":1,"cutoff_slide":0}},"fx_band_eq":{"user_facing":true,"name":"Band EQ Filter","doc":"Attenuate or Boost a frequency band","synth_name":"fx_band_eq","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"freq_slide_curve":0,"amp_slide":0,"mix_slide_curve":0,"db_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"db_slide":0,"res":0.6,"mix":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"pre_amp":1,"amp_slide_curve":0,"freq_slide_shape":1,"db":0.6,"res_slide_curve":0,"mix_slide_shape":1,"amp":1,"freq":100,"pre_mix_slide_shape":1,"db_slide_shape":1,"pre_mix_slide_curve":0,"res_slide_shape":1,"amp_slide_shape":1,"freq_slide":0,"pre_amp_slide":0,"mix_slide":0}},"fx_tremolo":{"user_facing":true,"name":"Tremolo","doc":"Modulate the volume of the sound.","synth_name":"fx_tremolo","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"invert_wave":0,"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"depth_slide":0,"mix":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"pre_amp":1,"amp_slide_curve":0,"depth_slide_curve":0,"depth_slide_shape":1,"wave":2,"phase_slide_shape":1,"mix_slide_shape":1,"phase":4,"amp":1,"pre_mix_slide_shape":1,"phase_slide_curve":0,"phase_slide":0,"phase_offset":0,"pre_mix_slide_curve":0,"depth":5,"amp_slide_shape":1,"pre_amp_slide":0,"mix_slide":0}},"fx_rlpf":{"user_facing":true,"name":"Resonant Low Pass Filter","doc":"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.\n\n 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.","synth_name":"fx_rlpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"mix":1,"res":0.5,"cutoff_slide_shape":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"cutoff_slide_curve":0,"pre_amp":1,"amp_slide_curve":0,"res_slide_curve":0,"mix_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide":0,"res_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"cutoff_slide":0}},"hollow":{"category":"general","user_facing":true,"name":"Hollow","doc":"A hollow breathy sound constructed from random noise","synth_name":"hollow","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":90,"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"note_slide":0,"res_slide":0,"decay_level":"sustain_level","decay":0,"res":0.99,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"noise":1,"cutoff_slide_curve":0,"sustain_level":1,"res_slide_curve":0,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"env_curve":2,"res_slide_shape":1,"norm":0,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"fx_replace_nrhpf":{"user_facing":true,"name":"Normalised Resonant High Pass Filter","doc":"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.\n\n Choose a lower cutoff to keep more of the bass/mid and a higher cutoff to make the sound more light and crispy.","synth_name":"fx_nrhpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"mix":1,"res":0.5,"cutoff_slide_shape":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"cutoff_slide_curve":0,"pre_amp":1,"amp_slide_curve":0,"res_slide_curve":0,"mix_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide":0,"res_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"cutoff_slide":0}},"square":{"category":"general","user_facing":true,"name":"Square Wave","doc":"A simple square wave with a low pass filter. The square wave is thick and heavy with lower notes and is a great ingredient for bass sounds. If you wish to modulate the width of the square wave see the synth pulse.","synth_name":"square","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"note_slide":0,"decay_level":"sustain_level","decay":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"env_curve":2,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"fx_replace_rlpf":{"user_facing":true,"name":"Resonant Low Pass Filter","doc":"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.\n\n 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.","synth_name":"fx_rlpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"mix":1,"res":0.5,"cutoff_slide_shape":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"cutoff_slide_curve":0,"pre_amp":1,"amp_slide_curve":0,"res_slide_curve":0,"mix_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide":0,"res_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"cutoff_slide":0}},"fx_rhpf":{"user_facing":true,"name":"Resonant High Pass Filter","doc":"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.\n\n Choose a lower cutoff to keep more of the bass/mid and a higher cutoff to make the sound more light and crispy.","synth_name":"fx_rhpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"mix":1,"res":0.5,"cutoff_slide_shape":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"cutoff_slide_curve":0,"pre_amp":1,"amp_slide_curve":0,"res_slide_curve":0,"mix_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide":0,"res_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"cutoff_slide":0}},"sine":{"category":"general","user_facing":true,"name":"Sine Wave","doc":"A simple pure sine wave. The sine wave is the simplest, purest sound there is and is the fundamental building block of all noise. The mathematician Fourier demonstrated that any sound could be built out of a number of sine waves (the more complex the sound, the more sine waves needed). Have a play combining a number of sine waves to design your own sounds!","synth_name":"beep","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"env_curve":2,"decay_level":"sustain_level","amp_slide":0,"pan_slide":0,"decay":0,"note_slide_curve":0,"attack_level":1,"sustain_level":1,"pan_slide_shape":1,"note":52,"release":1,"attack":0,"sustain":0,"note_slide":0,"amp_slide_shape":1,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"pan":0,"amp_slide_curve":0}},"fx_replace_distortion":{"user_facing":true,"name":"Distortion","doc":"Distorts the signal reducing clarity in favour of raw crunchy noise.","synth_name":"fx_distortion","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"distort_slide_curve":0,"pre_amp_slide_shape":1,"pre_amp":1,"amp_slide":0,"mix_slide_shape":1,"distort_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"distort":0.5,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"distort_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"mix_slide":0,"amp_slide_curve":0}},"fx_normaliser":{"user_facing":true,"name":"Normaliser","doc":"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.","synth_name":"fx_normaliser","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"pre_amp_slide_shape":1,"pre_amp":1,"amp_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"level_slide_shape":1,"mix_slide_curve":0,"pre_amp_slide_curve":0,"level_slide":0,"level_slide_curve":0,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"mix_slide":0,"level":1,"amp_slide_curve":0}},"fx_replace_reverb":{"user_facing":true,"name":"Reverb","doc":"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.","synth_name":"fx_reverb","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"amp_slide":0,"room_slide_curve":0,"room_slide":0,"pre_amp_slide_curve":0,"pre_mix":1,"damp":0.5,"mix_slide_curve":0,"mix":0.4,"pre_amp_slide_shape":1,"room_slide_shape":1,"pre_amp":1,"amp_slide_curve":0,"damp_slide":0,"mix_slide_shape":1,"amp":1,"damp_slide_shape":1,"pre_mix_slide_shape":1,"room":0.6,"pre_mix_slide_curve":0,"damp_slide_curve":0,"pre_mix_slide":0,"amp_slide_shape":1,"pre_amp_slide":0,"mix_slide":0}},"beep":{"category":"general","user_facing":true,"name":"Sine Wave","doc":"A simple pure sine wave. The sine wave is the simplest, purest sound there is and is the fundamental building block of all noise. The mathematician Fourier demonstrated that any sound could be built out of a number of sine waves (the more complex the sound, the more sine waves needed). Have a play combining a number of sine waves to design your own sounds!","synth_name":"beep","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"env_curve":2,"decay_level":"sustain_level","amp_slide":0,"pan_slide":0,"decay":0,"note_slide_curve":0,"attack_level":1,"sustain_level":1,"pan_slide_shape":1,"note":52,"release":1,"attack":0,"sustain":0,"note_slide":0,"amp_slide_shape":1,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"pan":0,"amp_slide_curve":0}},"fx_hpf":{"user_facing":true,"name":"High Pass Filter","doc":"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.","synth_name":"fx_hpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"pre_amp_slide_shape":1,"pre_amp":1,"cutoff_slide_shape":1,"amp_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"cutoff_slide":0,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"mix_slide":0,"cutoff_slide_curve":0,"amp_slide_curve":0}},"dpulse":{"category":"general","user_facing":true,"name":"Detuned Pulse Wave","doc":"A pair of detuned pulse waves passed through a low pass filter. Two pulse waves with slightly different frequencies generates a nice thick sound which can be used as a basis for some nice bass sounds. Thicken the sound by increasing the detune value, or create an octave-playing synth by choosing a detune of 12 (12 MIDI notes is an octave). Each pulse wave can also have individual widths (although the default is for the detuned pulse to mirror the width of the main pulse).","synth_name":"dpulse","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"pan_slide":0,"pulse_width_slide_shape":1,"note_slide_curve":0,"note_slide":0,"dpulse_width_slide_shape":"pulse_width_slide_shape","decay_level":"sustain_level","pulse_width_slide":0,"decay":0,"detune_slide":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"detune_slide_curve":0,"dpulse_width_slide":"pulse_width_slide","cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"pulse_width":0.5,"amp":1,"pan_slide_curve":0,"pulse_width_slide_curve":0,"env_curve":2,"detune_slide_shape":1,"detune":0.1,"dpulse_width_slide_curve":"pulse_width_slide_curve","release":1,"amp_slide_shape":1,"dpulse_width":"pulse_width","cutoff_slide":0}},"fx_sound_out_stereo":{"user_facing":true,"name":"Sound Out Stereo","doc":"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. ","synth_name":"fx_sound_out_stereo","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"pre_amp_slide_shape":1,"pre_amp":1,"amp_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"output":1,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"mode":0,"pre_mix_slide_shape":1,"mix_slide":0,"amp_slide_curve":0}},"dsaw":{"category":"general","user_facing":true,"name":"Detuned Saw wave","doc":"A pair of detuned saw waves passed through a low pass filter. Two saw waves with slightly different frequencies generates a nice thick sound which is the basis for a lot of famous synth sounds. Thicken the sound by increasing the detune value, or create an octave-playing synth by choosing a detune of 12 (12 MIDI notes is an octave).","synth_name":"dsaw","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"note_slide":0,"decay_level":"sustain_level","decay":0,"detune_slide":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"detune_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"env_curve":2,"detune_slide_shape":1,"detune":0.1,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"fx_record":{"user_facing":true,"name":"Record","doc":"Recorder!","synth_name":"fx_record","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"pre_amp_slide_shape":1,"pre_amp":1,"amp_slide":0,"mix_slide_shape":1,"buffer":null,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"mix_slide":0,"amp_slide_curve":0}},"fx_replace_lpf":{"user_facing":true,"name":"Low Pass Filter","doc":"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.","synth_name":"fx_lpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"pre_amp_slide_shape":1,"pre_amp":1,"cutoff_slide_shape":1,"amp_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"cutoff_slide":0,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"mix_slide":0,"cutoff_slide_curve":0,"amp_slide_curve":0}},"fx_vowel":{"user_facing":true,"name":"Vowel","doc":"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.","synth_name":"fx_vowel","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"pre_amp_slide_shape":1,"pre_amp":1,"amp_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"voice":0,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"vowel_sound":1,"amp":1,"pre_mix_slide_shape":1,"mix_slide":0,"amp_slide_curve":0}},"fx_whammy":{"user_facing":true,"name":"Whammy","doc":"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.","synth_name":"fx_whammy","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"amp_slide":0,"mix_slide_curve":0,"deltime":0.05,"transpose_slide_curve":0,"grainsize":0.075,"pre_amp_slide_curve":0,"pre_mix":1,"transpose_slide_shape":1,"mix":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"pre_amp":1,"amp_slide_curve":0,"transpose_slide":0,"transpose":12,"mix_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"max_delay_time":1,"pre_mix_slide_curve":0,"amp_slide_shape":1,"pre_amp_slide":0,"mix_slide":0}},"chiplead":{"category":"general","user_facing":true,"name":"Chip Lead","doc":"A slightly clipped square (pulse) wave with phases of 12.5%, 25% or 50% modelled after the 2A03 chip found in voices 1 and 2 of the NES games console. This can be used for retro sounding leads and harmonised lines. This also adds an opt 'note_resolution' which locks the note slide to certain pitches which are multiples of the step size. This allows for emulation of the sweep setting on the 2A03.","synth_name":"chiplead","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"note_slide":0,"decay_level":"sustain_level","decay":0,"pan_slide_shape":1,"note":60,"width":0,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"env_curve":2,"note_resolution":0.1,"release":1,"amp_slide_shape":1}},"mono_player":{"category":"general","user_facing":false,"name":"Mono Sample Player","doc":"","synth_name":"mono_player","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"lpf_decay_level":-1,"pitch":0,"threshold":0.2,"lpf_slide_shape":1,"time_dis":0.0,"pitch_slide":0,"window_size":0.2,"clamp_time_slide_curve":0,"relax_time_slide_shape":1,"norm":0,"hpf_env_curve":2,"hpf_max_slide_shape":1,"attack_level":1,"lpf_min":-1,"amp":1,"lpf_slide_curve":0,"threshold_slide_shape":1,"slope_above_slide":0,"release":0,"clamp_time_slide_shape":1,"pre_amp_slide":0,"hpf_release_level":-1,"slope_below":1,"slope_above_slide_shape":1,"rate":1,"hpf_slide":0,"slope_below_slide":0,"window_size_slide":0,"lpf_min_slide_curve":0,"pan_slide_shape":1,"pre_amp_slide_shape":1,"sustain":-1,"hpf_slide_shape":1,"hpf_release":0,"window_size_slide_shape":1,"hpf_init_level":-1,"amp_slide_curve":0,"pitch_dis_slide":0,"slope_above":0.5,"lpf_min_slide":0,"sustain_level":1,"lpf_attack":0,"hpf_decay_level":-1,"pitch_slide_curve":0,"pan_slide_curve":0,"decay":0,"slope_below_slide_curve":0,"hpf_sustain_level":-1,"hpf_slide_curve":0,"pan_slide":0,"pitch_dis_slide_shape":1,"pre_amp_slide_curve":0,"pitch_dis_slide_curve":0,"relax_time_slide_curve":0,"relax_time":0.01,"decay_level":"sustain_level","pitch_slide_shape":1,"start":0,"attack":0,"hpf_decay":0,"hpf_attack_level":-1,"pre_amp":1,"lpf_attack_level":-1,"lpf_sustain_level":-1,"time_dis_slide":0,"env_curve":2,"lpf_slide":0,"lpf_decay":0,"time_dis_slide_shape":1,"threshold_slide_curve":0,"slope_below_slide_shape":1,"amp_slide_shape":1,"threshold_slide":0,"lpf_init_level":-1,"lpf_env_curve":2,"amp_slide":0,"lpf_release_level":-1,"hpf_attack":0,"hpf_max":-1,"relax_time_slide":0,"clamp_time":0.01,"lpf_sustain":-1,"hpf_sustain":-1,"hpf_max_slide_curve":0,"time_dis_slide_curve":0,"hpf":-1,"pan":0,"lpf_min_slide_shape":1,"finish":1,"slope_above_slide_curve":0,"compress":0,"hpf_max_slide":0,"lpf":-1,"clamp_time_slide":0,"pitch_dis":0.0,"window_size_slide_curve":0,"lpf_release":0}},"blade":{"category":"general","user_facing":true,"name":"Blade Runner style strings","doc":"Straight from the 70s, evoking the mists of Blade Runner, this simple electro-style string synth is based on filtered saw waves and a variable vibrato.","synth_name":"synth_violin","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"note_slide":0,"vibrato_onset":0.1,"vibrato_depth_slide_shape":1,"vibrato_delay":0.5,"vibrato_rate_slide_shape":1,"decay_level":"sustain_level","vibrato_depth_slide_curve":0,"decay":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"vibrato_depth":0.15,"cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"env_curve":2,"vibrato_rate_slide_curve":0,"release":1,"amp_slide_shape":1,"vibrato_rate":6,"cutoff_slide":0}},"stereo_player":{"category":"general","user_facing":false,"name":"Stereo Sample Player","doc":"","synth_name":"stereo_player","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"lpf_decay_level":-1,"pitch":0,"threshold":0.2,"lpf_slide_shape":1,"time_dis":0.0,"pitch_slide":0,"window_size":0.2,"clamp_time_slide_curve":0,"relax_time_slide_shape":1,"norm":0,"hpf_env_curve":2,"hpf_max_slide_shape":1,"attack_level":1,"lpf_min":-1,"amp":1,"lpf_slide_curve":0,"threshold_slide_shape":1,"slope_above_slide":0,"release":0,"clamp_time_slide_shape":1,"pre_amp_slide":0,"hpf_release_level":-1,"slope_below":1,"slope_above_slide_shape":1,"rate":1,"hpf_slide":0,"slope_below_slide":0,"window_size_slide":0,"lpf_min_slide_curve":0,"pan_slide_shape":1,"pre_amp_slide_shape":1,"sustain":-1,"hpf_slide_shape":1,"hpf_release":0,"window_size_slide_shape":1,"hpf_init_level":-1,"amp_slide_curve":0,"pitch_dis_slide":0,"slope_above":0.5,"lpf_min_slide":0,"sustain_level":1,"lpf_attack":0,"hpf_decay_level":-1,"pitch_slide_curve":0,"pan_slide_curve":0,"decay":0,"slope_below_slide_curve":0,"hpf_sustain_level":-1,"hpf_slide_curve":0,"pan_slide":0,"pitch_dis_slide_shape":1,"pre_amp_slide_curve":0,"pitch_dis_slide_curve":0,"relax_time_slide_curve":0,"relax_time":0.01,"decay_level":"sustain_level","pitch_slide_shape":1,"start":0,"attack":0,"hpf_decay":0,"hpf_attack_level":-1,"pre_amp":1,"lpf_attack_level":-1,"lpf_sustain_level":-1,"time_dis_slide":0,"env_curve":2,"lpf_slide":0,"lpf_decay":0,"time_dis_slide_shape":1,"threshold_slide_curve":0,"slope_below_slide_shape":1,"amp_slide_shape":1,"threshold_slide":0,"lpf_init_level":-1,"lpf_env_curve":2,"amp_slide":0,"lpf_release_level":-1,"hpf_attack":0,"hpf_max":-1,"relax_time_slide":0,"clamp_time":0.01,"lpf_sustain":-1,"hpf_sustain":-1,"hpf_max_slide_curve":0,"time_dis_slide_curve":0,"hpf":-1,"pan":0,"lpf_min_slide_shape":1,"finish":1,"slope_above_slide_curve":0,"compress":0,"hpf_max_slide":0,"lpf":-1,"clamp_time_slide":0,"pitch_dis":0.0,"window_size_slide_curve":0,"lpf_release":0}},"main_mixer":{"category":"general","user_facing":false,"name":"Main Mixer","doc":"Please write documentation!","synth_name":"mixer","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"amp_slide":0.02,"lpf_bypass":0,"pre_amp_slide_curve":0,"amp":1,"hpf_slide":0.02,"lpf_slide_shape":1,"limiter_bypass":0,"invert_stereo":0,"pre_amp_slide_shape":1,"hpf_slide_shape":1,"pre_amp":1,"hpf":0,"amp_slide_curve":0,"leak_dc_bypass":0,"force_mono":0,"amp_slide_shape":1,"hpf_bypass":0,"lpf_slide_curve":0,"hpf_slide_curve":0,"lpf_slide":0.02,"lpf":135.5,"pre_amp_slide":0.02}},"fx_replace_pan":{"user_facing":true,"name":"Pan","doc":"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.","synth_name":"fx_pan","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"pre_amp_slide_shape":1,"pre_amp":1,"amp_slide":0,"pan_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pan_slide_shape":1,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"pan_slide_curve":0,"mix_slide":0,"pan":0,"amp_slide_curve":0}},"mod_fm":{"category":"general","user_facing":true,"name":"Basic FM synthesis with frequency modulation.","doc":"The FM synth modulating between two notes - the duration of the modulation can be modified using the mod_phase arg, the range (number of notes jumped between) by the mod_range arg and the width of the jumps by the mod_width param. The FM synth is a sine wave with a fundamental frequency which is modulated at audio rate by another sine wave with a specific modulation, division and depth. Useful for generating a wide range of sounds by playing with the `:divisor` and `:depth` params. Great for deep powerful bass and crazy 70s sci-fi sounds.","synth_name":"mod_fm","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"note_slide":0,"mod_pulse_width":0.5,"mod_phase":0.25,"decay_level":"sustain_level","decay":0,"depth_slide":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"mod_invert_wave":0,"pan":0,"amp_slide_curve":0,"depth_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"mod_range":5,"amp":1,"mod_phase_offset":0,"pan_slide_curve":0,"env_curve":2,"depth_slide_shape":1,"divisor":2,"divisor_slide":0,"divisor_slide_curve":0,"divisor_slide_shape":1,"mod_wave":1,"depth":1,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"mod_dsaw":{"category":"general","user_facing":true,"name":"Modulated Detuned Saw Waves","doc":"A pair of detuned saw waves (see the dsaw synth) which are modulated between two fixed notes at a given rate.","synth_name":"mod_dsaw","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"mod_range_slide":0,"amp_slide":0,"pan_slide":0,"mod_phase_slide":0,"note_slide_curve":0,"note_slide":0,"mod_phase":0.25,"mod_pulse_width_slide":0,"decay_level":"sustain_level","mod_range_slide_curve":0,"decay":0,"detune_slide_curve":0,"detune_slide":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"mod_invert_wave":0,"pan":0,"amp_slide_curve":0,"mod_pulse_width_slide_curve":0,"mod_pulse_width":0.5,"mod_phase_slide_shape":1,"mod_phase_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"mod_range":5,"amp":1,"mod_phase_offset":0,"pan_slide_curve":0,"env_curve":2,"detune_slide_shape":1,"mod_range_slide_shape":1,"mod_wave":1,"detune":0.1,"release":1,"amp_slide_shape":1,"mod_pulse_width_slide_shape":1,"cutoff_slide":0}},"fx_replace_compressor":{"user_facing":true,"name":"Compressor","doc":"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.","synth_name":"fx_compressor","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"threshold_slide_curve":0,"pre_mix":1,"threshold":0.2,"relax_time_slide_curve":0,"relax_time":0.01,"slope_below_slide":0,"clamp_time_slide_curve":0,"relax_time_slide":0,"clamp_time":0.01,"mix":1,"pre_amp_slide_shape":1,"relax_time_slide_shape":1,"pre_mix_slide":0,"slope_above_slide_shape":1,"pre_amp":1,"slope_above_slide":0,"amp_slide_curve":0,"slope_above_slide_curve":0,"slope_above":0.5,"slope_below":1,"mix_slide_shape":1,"clamp_time_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"clamp_time_slide":0,"threshold_slide_shape":1,"pre_mix_slide_curve":0,"slope_below_slide_curve":0,"slope_below_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"threshold_slide":0,"mix_slide":0}},"fx_replace_hpf":{"user_facing":true,"name":"High Pass Filter","doc":"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.","synth_name":"fx_hpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"pre_amp_slide_shape":1,"pre_amp":1,"cutoff_slide_shape":1,"amp_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"cutoff_slide":0,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"mix_slide":0,"cutoff_slide_curve":0,"amp_slide_curve":0}},"fx_panslicer":{"user_facing":true,"name":"Pan Slicer","doc":"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.","synth_name":"fx_panslicer","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"invert_wave":0,"amp_slide":0,"probability":0,"mix_slide_curve":0,"amp_max_slide_curve":0,"smooth_down_slide_shape":1,"pre_amp_slide_curve":0,"smooth_slide_curve":0,"pre_mix":1,"amp_max_slide":0,"smooth_down_slide_curve":0,"prob_pos_slide_curve":0,"smooth_up_slide_curve":0,"pulse_width_slide":0,"pan_max_slide":0,"pan_min":-1,"amp_min_slide":0,"smooth_down":0,"mix":1,"pre_amp_slide_shape":1,"probability_slide":0,"pre_mix_slide":0,"pulse_width_slide_shape":1,"probability_slide_shape":1,"probability_slide_curve":0,"prob_pos":0,"pre_amp":1,"pan_max_slide_shape":1,"amp_slide_curve":0,"amp_min_slide_curve":0,"pan_min_slide_curve":0,"prob_pos_slide_shape":1,"smooth_up_slide_shape":1,"pan_max_slide_curve":0,"amp_max":1,"wave":1,"phase_slide_shape":1,"mix_slide_shape":1,"pan_min_slide_shape":1,"amp_max_slide_shape":1,"pulse_width":0.5,"phase":0.25,"amp":1,"pre_mix_slide_shape":1,"pan_max":1,"pulse_width_slide_curve":0,"amp_min_slide_shape":1,"smooth_slide":0,"phase_slide_curve":0,"smooth_slide_shape":1,"phase_slide":0,"phase_offset":0,"pre_mix_slide_curve":0,"smooth_up":0,"pan_min_slide":0,"smooth":0,"smooth_up_slide":0,"amp_min":0,"seed":0,"smooth_down_slide":0,"amp_slide_shape":1,"prob_pos_slide":0,"pre_amp_slide":0,"mix_slide":0}},"fx_replace_slicer":{"user_facing":true,"name":"Slicer","doc":"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.","synth_name":"fx_slicer","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"invert_wave":0,"amp_slide":0,"probability":0,"mix_slide_curve":0,"amp_max_slide_curve":0,"smooth_down_slide_shape":1,"pre_amp_slide_curve":0,"smooth_slide_curve":0,"pre_mix":1,"amp_max_slide":0,"smooth_down_slide_curve":0,"prob_pos_slide_curve":0,"smooth_up_slide_curve":0,"pulse_width_slide":0,"amp_min_slide":0,"smooth_down":0,"mix":1,"pre_amp_slide_shape":1,"probability_slide":0,"pre_mix_slide":0,"pulse_width_slide_shape":1,"probability_slide_shape":1,"probability_slide_curve":0,"prob_pos":0,"pre_amp":1,"amp_slide_curve":0,"amp_min_slide_curve":0,"prob_pos_slide_shape":1,"smooth_up_slide_shape":1,"amp_max":1,"wave":1,"phase_slide_shape":1,"mix_slide_shape":1,"amp_max_slide_shape":1,"pulse_width":0.5,"phase":0.25,"amp":1,"pre_mix_slide_shape":1,"pulse_width_slide_curve":0,"amp_min_slide_shape":1,"smooth_slide":0,"phase_slide_curve":0,"smooth_slide_shape":1,"phase_slide":0,"phase_offset":0,"pre_mix_slide_curve":0,"smooth_up":0,"smooth":0,"smooth_up_slide":0,"amp_min":0,"seed":0,"smooth_down_slide":0,"amp_slide_shape":1,"prob_pos_slide":0,"pre_amp_slide":0,"mix_slide":0}},"fx_nrhpf":{"user_facing":true,"name":"Normalised Resonant High Pass Filter","doc":"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.\n\n Choose a lower cutoff to keep more of the bass/mid and a higher cutoff to make the sound more light and crispy.","synth_name":"fx_nrhpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"mix":1,"res":0.5,"cutoff_slide_shape":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"cutoff_slide_curve":0,"pre_amp":1,"amp_slide_curve":0,"res_slide_curve":0,"mix_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide":0,"res_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"cutoff_slide":0}},"saw":{"category":"general","user_facing":true,"name":"Saw Wave","doc":"A saw wave with a low pass filter. Great for using with FX such as the built in low pass filter (available via the cutoff arg) due to the complexity and thickness of the sound.","synth_name":"saw","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"env_curve":2,"decay_level":"sustain_level","amp_slide":0,"pan_slide":0,"decay":0,"note_slide_curve":0,"attack_level":1,"sustain_level":1,"pan_slide_shape":1,"note":52,"release":1,"attack":0,"sustain":0,"note_slide":0,"amp_slide_shape":1,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"pan":0,"amp_slide_curve":0}},"growl":{"category":"general","user_facing":true,"name":"Growl","doc":"A deep rumbling growl with a bright sine shining through at higher notes.","synth_name":"growl","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":130,"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"note_slide":0,"res_slide":0,"decay_level":"sustain_level","decay":0,"res":0.7,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0.1,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"res_slide_curve":0,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"env_curve":2,"res_slide_shape":1,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"dark_ambience":{"category":"general","user_facing":true,"name":"Dark Ambience","doc":"A slow rolling bass with a sparkle of light trying to escape the darkness. Great for an ambient sound.","synth_name":"dark_ambience","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"detune2_slide_shape":1,"cutoff":110,"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"detune2_slide":0,"detune2":24,"detune1":12,"note_slide":0,"res_slide":0,"ring":0.2,"decay_level":"sustain_level","decay":0,"res":0.7,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"detune1_slide":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"noise":0,"cutoff_slide_curve":0,"sustain_level":1,"res_slide_curve":0,"note_slide_shape":1,"amp":1,"detune1_slide_shape":1,"pan_slide_curve":0,"env_curve":2,"room":70,"detune2_slide_curve":0,"res_slide_shape":1,"reverb_time":100,"detune1_slide_curve":0,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"basic_stereo_player":{"category":"general","user_facing":false,"name":"Basic Stereo Sample Player (no env)","doc":"","synth_name":"basic_stereo_player","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"hpf_slide_curve":0,"lpf_slide_shape":1,"amp_slide":0,"pan_slide":0,"lpf_slide":0,"pan_slide_shape":1,"rate":1,"lpf":-1,"hpf_slide_shape":1,"amp_slide_shape":1,"hpf_slide":0,"amp":1,"lpf_slide_curve":0,"pan_slide_curve":0,"hpf":-1,"pan":0,"amp_slide_curve":0}},"fx_mono":{"user_facing":true,"name":"Mono","doc":"Sum left and right channels. Useful with stereo samples that you need as a mono sound, or for use with panslicer.","synth_name":"fx_mono","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"pre_amp_slide_shape":1,"pre_amp":1,"amp_slide":0,"pan_slide":0,"mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pan_slide_shape":1,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"pan_slide_curve":0,"mix_slide":0,"pan":0,"amp_slide_curve":0}},"hoover":{"category":"general","user_facing":true,"name":"Hoover","doc":"Classic early 90's rave synth - 'a sort of slurry chorussy synth line like the classic Dominator by Human Resource'. Based on Dan Stowell's implementation in SuperCollider and Daniel Turczanski's port to Overtone. Works really well with portamento (see docs for the 'control' method).","synth_name":"hoover","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":130,"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"note_slide":0,"res_slide":0,"decay_level":"sustain_level","decay":0,"res":0.1,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0.05,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"res_slide_curve":0,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"env_curve":2,"res_slide_shape":1,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"fx_level":{"user_facing":true,"name":"Level Amplifier","doc":"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.","synth_name":"fx_level","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"amp":1,"amp_slide_curve":0,"amp_slide":0,"amp_slide_shape":1}},"fx_wobble":{"user_facing":true,"name":"Wobble","doc":"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","synth_name":"fx_wobble","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff_min_slide":0,"cutoff_max_slide_curve":0,"invert_wave":0,"amp_slide":0,"probability":0,"mix_slide_curve":0,"pulse_width_slide_shape":1,"wave":0,"smooth_down_slide_shape":1,"pre_amp_slide_curve":0,"smooth_slide_curve":0,"pre_mix":1,"res_slide":0,"cutoff_max":120,"smooth_down_slide_curve":0,"prob_pos_slide_curve":0,"smooth_up_slide_curve":0,"pulse_width_slide":0,"res":0.8,"cutoff_min_slide_shape":1,"smooth_down":0,"mix":1,"cutoff_max_slide_shape":1,"pre_amp_slide_shape":1,"cutoff_min":60,"pre_mix_slide":0,"probability_slide_curve":0,"prob_pos":0,"pre_amp":1,"amp_slide_curve":0,"probability_slide_shape":1,"prob_pos_slide_shape":1,"smooth_up_slide_shape":1,"cutoff_min_slide_curve":0,"probability_slide":0,"res_slide_curve":0,"phase_slide_shape":1,"mix_slide_shape":1,"pulse_width":0.5,"phase":0.5,"amp":1,"cutoff_max_slide":0,"pre_mix_slide_shape":1,"pulse_width_slide_curve":0,"smooth_slide":0,"phase_slide_curve":0,"smooth_slide_shape":1,"phase_slide":0,"phase_offset":0,"pre_mix_slide_curve":0,"smooth_up":0,"smooth":0,"smooth_up_slide":0,"filter":0,"seed":0,"smooth_down_slide":0,"res_slide_shape":1,"amp_slide_shape":1,"prob_pos_slide":0,"pre_amp_slide":0,"mix_slide":0}},"fx_replace_nrlpf":{"user_facing":true,"name":"Normalised Resonant Low Pass Filter","doc":"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.\n\n 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.","synth_name":"fx_nrlpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"mix":1,"res":0.5,"cutoff_slide_shape":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"cutoff_slide_curve":0,"pre_amp":1,"amp_slide_curve":0,"res_slide_curve":0,"mix_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide":0,"res_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"cutoff_slide":0}},"dull_bell":{"category":"general","user_facing":true,"name":"Dull Bell","doc":"A simple dull discordant bell sound.","synth_name":"dull_bell","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"env_curve":2,"decay_level":"sustain_level","amp_slide":0,"pan_slide":0,"decay":0,"note_slide_curve":0,"attack_level":1,"sustain_level":1,"pan_slide_shape":1,"note":52,"release":1,"attack":0,"sustain":0,"note_slide":0,"amp_slide_shape":1,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"pan":0,"amp_slide_curve":0}},"fx_bpf":{"user_facing":true,"name":"Band Pass Filter","doc":"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).\n\n With higher values for res we can simulate other filters e.g. telephone lines, by cutting off low and high frequencies.\n\nUse FX `:band_eq` with a negative db for the opposite effect - to attenuate a given band of frequencies.","synth_name":"fx_bpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"centre_slide_shape":1,"res":0.6,"centre_slide":0,"mix":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"pre_amp":1,"amp_slide_curve":0,"centre":100,"res_slide_curve":0,"mix_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"centre_slide_curve":0,"pre_mix_slide_curve":0,"res_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"mix_slide":0}},"fm":{"category":"general","user_facing":true,"name":"Basic FM synthesis","doc":"A sine wave with a fundamental frequency which is modulated at audio rate by another sine wave with a specific modulation, division and depth. Useful for generating a wide range of sounds by playing with the divisor and depth params. Great for deep powerful bass and crazy 70s sci-fi sounds.","synth_name":"fm","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"pan_slide":0,"note_slide_curve":0,"note_slide":0,"decay_level":"sustain_level","decay":0,"depth_slide":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"depth_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"env_curve":2,"depth_slide_shape":1,"divisor":2,"divisor_slide":0,"divisor_slide_curve":0,"divisor_slide_shape":1,"depth":1,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"fx_replace_ixi_techno":{"user_facing":true,"name":"Techno from IXI Lang","doc":"Moving resonant low pass filter between min and max cutoffs. Great for sweeping effects across long synths or samples.","synth_name":"fx_ixi_techno","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff_min_slide":0,"cutoff_max_slide_curve":0,"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"cutoff_max":120,"res":0.8,"cutoff_min_slide_shape":1,"mix":1,"cutoff_max_slide_shape":1,"pre_amp_slide_shape":1,"cutoff_min":60,"pre_mix_slide":0,"pre_amp":1,"amp_slide_curve":0,"cutoff_min_slide_curve":0,"res_slide_curve":0,"phase_slide_shape":1,"mix_slide_shape":1,"phase":4,"amp":1,"cutoff_max_slide":0,"pre_mix_slide_shape":1,"phase_slide_curve":0,"phase_slide":0,"phase_offset":0,"pre_mix_slide_curve":0,"res_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"mix_slide":0}},"bnoise":{"category":"general","user_facing":true,"name":"Brown Noise","doc":"Noise whose spectrum falls off in power by 6 dB per octave. Useful for generating percussive sounds such as snares and hand claps. Also useful for simulating wind or sea effects.","synth_name":"bnoise","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":110,"amp_slide":0,"pan_slide":0,"res_slide":0,"decay_level":"sustain_level","decay":0,"res":0,"pan_slide_shape":1,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"res_slide_curve":0,"amp":1,"pan_slide_curve":0,"env_curve":2,"res_slide_shape":1,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"fx_distortion":{"user_facing":true,"name":"Distortion","doc":"Distorts the signal reducing clarity in favour of raw crunchy noise.","synth_name":"fx_distortion","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"distort_slide_curve":0,"pre_amp_slide_shape":1,"pre_amp":1,"amp_slide":0,"mix_slide_shape":1,"distort_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"distort":0.5,"mix":1,"pre_amp_slide":0,"pre_mix":1,"pre_mix_slide":0,"distort_slide":0,"amp_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"mix_slide":0,"amp_slide_curve":0}},"gnoise":{"category":"general","user_facing":true,"name":"Grey Noise","doc":"Generates noise which results from flipping random bits in a word. The spectrum is emphasised towards lower frequencies. Useful for generating percussive sounds such as snares and hand claps. Also useful for simulating wind or sea effects.","synth_name":"gnoise","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":110,"amp_slide":0,"pan_slide":0,"res_slide":0,"decay_level":"sustain_level","decay":0,"res":0,"pan_slide_shape":1,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pan":0,"amp_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"res_slide_curve":0,"amp":1,"pan_slide_curve":0,"env_curve":2,"res_slide_shape":1,"release":1,"amp_slide_shape":1,"cutoff_slide":0}},"mod_sine":{"category":"general","user_facing":true,"name":"Modulated Sine Wave","doc":"A sine wave passed through a low pass filter which modulates between two separate notes via a variety of control waves.","synth_name":"mod_sine","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"mod_range_slide":0,"amp_slide":0,"pan_slide":0,"mod_phase_slide":0,"note_slide_curve":0,"note_slide":0,"mod_phase":0.25,"mod_pulse_width_slide":0,"decay_level":"sustain_level","mod_range_slide_curve":0,"decay":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"mod_invert_wave":0,"pan":0,"amp_slide_curve":0,"mod_pulse_width_slide_curve":0,"mod_pulse_width":0.5,"mod_phase_slide_shape":1,"mod_phase_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"mod_range":5,"amp":1,"mod_phase_offset":0,"pan_slide_curve":0,"env_curve":2,"mod_range_slide_shape":1,"mod_wave":1,"release":1,"amp_slide_shape":1,"mod_pulse_width_slide_shape":1,"cutoff_slide":0}},"mod_pulse":{"category":"general","user_facing":true,"name":"Modulated Pulse","doc":"A pulse wave with a low pass filter modulating between two notes via a variety of control waves (see mod_wave: arg). The pulse wave defaults to a square wave, but the timbre can be changed dramatically by adjusting the pulse_width arg between 0 and 1.","synth_name":"mod_pulse","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"mod_range_slide":0,"amp_slide":0,"pan_slide":0,"mod_phase_slide":0,"note_slide_curve":0,"note_slide":0,"mod_phase":0.25,"mod_pulse_width_slide":0,"decay_level":"sustain_level","mod_range_slide_curve":0,"decay":0,"pan_slide_shape":1,"note":52,"cutoff_slide_shape":1,"attack":0,"sustain":0,"attack_level":1,"pulse_width_slide_curve":0,"mod_invert_wave":0,"pan":0,"amp_slide_curve":0,"mod_pulse_width_slide_curve":0,"pulse_width_slide_shape":1,"mod_pulse_width":0.5,"mod_phase_slide_shape":1,"mod_phase_slide_curve":0,"cutoff_slide_curve":0,"sustain_level":1,"note_slide_shape":1,"mod_range":5,"pulse_width":0.5,"amp":1,"mod_phase_offset":0,"pan_slide_curve":0,"pulse_width_slide":0,"env_curve":2,"mod_range_slide_shape":1,"mod_wave":1,"release":1,"amp_slide_shape":1,"mod_pulse_width_slide_shape":1,"cutoff_slide":0}},"pretty_bell":{"category":"general","user_facing":true,"name":"Pretty Bell","doc":"A pretty bell sound. Works well with short attacks and long decays.","synth_name":"pretty_bell","is_synth":true,"prefix":"sonic-pi-","arg_defaults":{"env_curve":2,"decay_level":"sustain_level","amp_slide":0,"pan_slide":0,"decay":0,"note_slide_curve":0,"attack_level":1,"sustain_level":1,"pan_slide_shape":1,"note":52,"release":1,"attack":0,"sustain":0,"note_slide":0,"amp_slide_shape":1,"note_slide_shape":1,"amp":1,"pan_slide_curve":0,"pan":0,"amp_slide_curve":0}},"fx_replace_rhpf":{"user_facing":true,"name":"Resonant High Pass Filter","doc":"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.\n\n Choose a lower cutoff to keep more of the bass/mid and a higher cutoff to make the sound more light and crispy.","synth_name":"fx_rhpf","is_synth":false,"prefix":"sonic-pi-","arg_defaults":{"cutoff":100,"amp_slide":0,"mix_slide_curve":0,"pre_amp_slide_curve":0,"pre_mix":1,"res_slide":0,"mix":1,"res":0.5,"cutoff_slide_shape":1,"pre_amp_slide_shape":1,"pre_mix_slide":0,"cutoff_slide_curve":0,"pre_amp":1,"amp_slide_curve":0,"res_slide_curve":0,"mix_slide_shape":1,"amp":1,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"mix_slide":0,"res_slide_shape":1,"amp_slide_shape":1,"pre_amp_slide":0,"cutoff_slide":0}}} \ No newline at end of file +{"dull_bell":{"name":"Dull Bell","synth_name":"dull_bell","prefix":"sonic-pi-","doc":"A simple dull discordant bell sound.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2},"user_facing":true,"is_synth":true,"category":"general"},"pretty_bell":{"name":"Pretty Bell","synth_name":"pretty_bell","prefix":"sonic-pi-","doc":"A pretty bell sound. Works well with short attacks and long decays.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2},"user_facing":true,"is_synth":true,"category":"general"},"beep":{"name":"Sine Wave","synth_name":"beep","prefix":"sonic-pi-","doc":"A simple pure sine wave. The sine wave is the simplest, purest sound there is and is the fundamental building block of all noise. The mathematician Fourier demonstrated that any sound could be built out of a number of sine waves (the more complex the sound, the more sine waves needed). Have a play combining a number of sine waves to design your own sounds!","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2},"user_facing":true,"is_synth":true,"category":"general"},"sine":{"name":"Sine Wave","synth_name":"beep","prefix":"sonic-pi-","doc":"A simple pure sine wave. The sine wave is the simplest, purest sound there is and is the fundamental building block of all noise. The mathematician Fourier demonstrated that any sound could be built out of a number of sine waves (the more complex the sound, the more sine waves needed). Have a play combining a number of sine waves to design your own sounds!","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2},"user_facing":true,"is_synth":true,"category":"general"},"saw":{"name":"Saw Wave","synth_name":"saw","prefix":"sonic-pi-","doc":"A saw wave with a low pass filter. Great for using with FX such as the built in low pass filter (available via the cutoff arg) due to the complexity and thickness of the sound.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"pulse":{"name":"Pulse Wave","synth_name":"pulse","prefix":"sonic-pi-","doc":"A simple pulse wave with a low pass filter. This defaults to a square wave, but the timbre can be changed dramatically by adjusting the pulse_width arg between 0 and 1. The pulse wave is thick and heavy with lower notes and is a great ingredient for bass sounds.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"pulse_width":0.5,"pulse_width_slide":0,"pulse_width_slide_shape":1,"pulse_width_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"subpulse":{"name":"Pulse Wave with sub","synth_name":"subpulse","prefix":"sonic-pi-","doc":"A pulse wave with a sub sine wave passed through a low pass filter. The pulse wave is thick and heavy with lower notes and is a great ingredient for bass sounds - especially with the sub wave.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"pulse_width":0.5,"pulse_width_slide":0,"pulse_width_slide_shape":1,"pulse_width_slide_curve":0,"sub_amp":1,"sub_amp_slide":0,"sub_amp_slide_shape":1,"sub_amp_slide_curve":0,"sub_detune":-12,"sub_detune_slide":0,"sub_detune_slide_shape":1,"sub_detune_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"square":{"name":"Square Wave","synth_name":"square","prefix":"sonic-pi-","doc":"A simple square wave with a low pass filter. The square wave is thick and heavy with lower notes and is a great ingredient for bass sounds. If you wish to modulate the width of the square wave see the synth pulse.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"tri":{"name":"Triangle Wave","synth_name":"tri","prefix":"sonic-pi-","doc":"A simple triangle wave with a low pass filter.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"pulse_width":0.5,"pulse_width_slide":0,"pulse_width_slide_shape":1,"pulse_width_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"dsaw":{"name":"Detuned Saw wave","synth_name":"dsaw","prefix":"sonic-pi-","doc":"A pair of detuned saw waves passed through a low pass filter. Two saw waves with slightly different frequencies generates a nice thick sound which is the basis for a lot of famous synth sounds. Thicken the sound by increasing the detune value, or create an octave-playing synth by choosing a detune of 12 (12 MIDI notes is an octave).","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"detune":0.1,"detune_slide":0,"detune_slide_shape":1,"detune_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"dpulse":{"name":"Detuned Pulse Wave","synth_name":"dpulse","prefix":"sonic-pi-","doc":"A pair of detuned pulse waves passed through a low pass filter. Two pulse waves with slightly different frequencies generates a nice thick sound which can be used as a basis for some nice bass sounds. Thicken the sound by increasing the detune value, or create an octave-playing synth by choosing a detune of 12 (12 MIDI notes is an octave). Each pulse wave can also have individual widths (although the default is for the detuned pulse to mirror the width of the main pulse).","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"detune":0.1,"detune_slide":0,"detune_slide_shape":1,"detune_slide_curve":0,"pulse_width":0.5,"pulse_width_slide":0,"pulse_width_slide_shape":1,"pulse_width_slide_curve":0,"dpulse_width":"pulse_width","dpulse_width_slide":"pulse_width_slide","dpulse_width_slide_shape":"pulse_width_slide_shape","dpulse_width_slide_curve":"pulse_width_slide_curve"},"user_facing":true,"is_synth":true,"category":"general"},"dtri":{"name":"Detuned Triangle Wave","synth_name":"dtri","prefix":"sonic-pi-","doc":"A pair of detuned triangle waves passed through a low pass filter. Two pulse waves with slightly different frequencies generates a nice thick sound which can be used as a basis for some nice bass sounds. Thicken the sound by increasing the detune value, or create an octave-playing synth by choosing a detune of 12 (12 MIDI notes is an octave).","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"detune":0.1,"detune_slide":0,"detune_slide_shape":1,"detune_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"fm":{"name":"Basic FM synthesis","synth_name":"fm","prefix":"sonic-pi-","doc":"A sine wave with a fundamental frequency which is modulated at audio rate by another sine wave with a specific modulation, division and depth. Useful for generating a wide range of sounds by playing with the divisor and depth params. Great for deep powerful bass and fun 70s sci-fi sounds.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"divisor":2,"divisor_slide":0,"divisor_slide_shape":1,"divisor_slide_curve":0,"depth":1,"depth_slide":0,"depth_slide_shape":1,"depth_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"mod_fm":{"name":"Basic FM synthesis with frequency modulation.","synth_name":"mod_fm","prefix":"sonic-pi-","doc":"The FM synth modulating between two notes - the duration of the modulation can be modified using the mod_phase arg, the range (number of notes jumped between) by the mod_range arg and the width of the jumps by the mod_width param. The FM synth is a sine wave with a fundamental frequency which is modulated at audio rate by another sine wave with a specific modulation, division and depth. Useful for generating a wide range of sounds by playing with the `:divisor` and `:depth` params. Great for deep powerful bass and fun 70s sci-fi sounds.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"divisor":2,"divisor_slide":0,"divisor_slide_shape":1,"divisor_slide_curve":0,"depth":1,"depth_slide":0,"depth_slide_shape":1,"depth_slide_curve":0,"mod_phase":0.25,"mod_range":5,"mod_pulse_width":0.5,"mod_phase_offset":0,"mod_invert_wave":0,"mod_wave":1},"user_facing":true,"is_synth":true,"category":"general"},"mod_saw":{"name":"Modulated Saw Wave","synth_name":"mod_saw","prefix":"sonic-pi-","doc":"A saw wave passed through a low pass filter which modulates between two separate notes via a variety of control waves.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"mod_phase":0.25,"mod_phase_slide":0,"mod_phase_slide_shape":1,"mod_phase_slide_curve":0,"mod_range":5,"mod_range_slide":0,"mod_range_slide_shape":1,"mod_range_slide_curve":0,"mod_pulse_width":0.5,"mod_pulse_width_slide":0,"mod_pulse_width_slide_shape":1,"mod_pulse_width_slide_curve":0,"mod_phase_offset":0,"mod_invert_wave":0,"mod_wave":1},"user_facing":true,"is_synth":true,"category":"general"},"mod_dsaw":{"name":"Modulated Detuned Saw Waves","synth_name":"mod_dsaw","prefix":"sonic-pi-","doc":"A pair of detuned saw waves (see the dsaw synth) which are modulated between two fixed notes at a given rate.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"mod_phase":0.25,"mod_phase_slide":0,"mod_phase_slide_shape":1,"mod_phase_slide_curve":0,"mod_range":5,"mod_range_slide":0,"mod_range_slide_shape":1,"mod_range_slide_curve":0,"mod_pulse_width":0.5,"mod_pulse_width_slide":0,"mod_pulse_width_slide_shape":1,"mod_pulse_width_slide_curve":0,"mod_phase_offset":0,"mod_invert_wave":0,"mod_wave":1,"detune":0.1,"detune_slide":0,"detune_slide_shape":1,"detune_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"mod_sine":{"name":"Modulated Sine Wave","synth_name":"mod_sine","prefix":"sonic-pi-","doc":"A sine wave passed through a low pass filter which modulates between two separate notes via a variety of control waves.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"mod_phase":0.25,"mod_phase_slide":0,"mod_phase_slide_shape":1,"mod_phase_slide_curve":0,"mod_range":5,"mod_range_slide":0,"mod_range_slide_shape":1,"mod_range_slide_curve":0,"mod_pulse_width":0.5,"mod_pulse_width_slide":0,"mod_pulse_width_slide_shape":1,"mod_pulse_width_slide_curve":0,"mod_phase_offset":0,"mod_invert_wave":0,"mod_wave":1},"user_facing":true,"is_synth":true,"category":"general"},"mod_beep":{"name":"Modulated Sine Wave","synth_name":"mod_sine","prefix":"sonic-pi-","doc":"A sine wave passed through a low pass filter which modulates between two separate notes via a variety of control waves.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"mod_phase":0.25,"mod_phase_slide":0,"mod_phase_slide_shape":1,"mod_phase_slide_curve":0,"mod_range":5,"mod_range_slide":0,"mod_range_slide_shape":1,"mod_range_slide_curve":0,"mod_pulse_width":0.5,"mod_pulse_width_slide":0,"mod_pulse_width_slide_shape":1,"mod_pulse_width_slide_curve":0,"mod_phase_offset":0,"mod_invert_wave":0,"mod_wave":1},"user_facing":true,"is_synth":true,"category":"general"},"mod_tri":{"name":"Modulated Triangle Wave","synth_name":"mod_tri","prefix":"sonic-pi-","doc":"A triangle wave passed through a low pass filter which modulates between two separate notes via a variety of control waves.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"mod_phase":0.25,"mod_phase_slide":0,"mod_phase_slide_shape":1,"mod_phase_slide_curve":0,"mod_range":5,"mod_range_slide":0,"mod_range_slide_shape":1,"mod_range_slide_curve":0,"mod_pulse_width":0.5,"mod_pulse_width_slide":0,"mod_pulse_width_slide_shape":1,"mod_pulse_width_slide_curve":0,"mod_phase_offset":0,"mod_invert_wave":0,"mod_wave":1},"user_facing":true,"is_synth":true,"category":"general"},"mod_pulse":{"name":"Modulated Pulse","synth_name":"mod_pulse","prefix":"sonic-pi-","doc":"A pulse wave with a low pass filter modulating between two notes via a variety of control waves (see mod_wave: arg). The pulse wave defaults to a square wave, but the timbre can be changed dramatically by adjusting the pulse_width arg between 0 and 1.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"mod_phase":0.25,"mod_phase_slide":0,"mod_phase_slide_shape":1,"mod_phase_slide_curve":0,"mod_range":5,"mod_range_slide":0,"mod_range_slide_shape":1,"mod_range_slide_curve":0,"mod_pulse_width":0.5,"mod_pulse_width_slide":0,"mod_pulse_width_slide_shape":1,"mod_pulse_width_slide_curve":0,"mod_phase_offset":0,"mod_invert_wave":0,"mod_wave":1,"pulse_width":0.5,"pulse_width_slide":0,"pulse_width_slide_shape":1,"pulse_width_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"chiplead":{"name":"Chip Lead","synth_name":"chiplead","prefix":"sonic-pi-","doc":"A slightly clipped square (pulse) wave with phases of 12.5%, 25% or 50% modelled after the 2A03 chip found in voices 1 and 2 of the NES games console. This can be used for retro sounding leads and harmonised lines. This also adds an opt 'note_resolution' which locks the note slide to certain pitches which are multiples of the step size. This allows for emulation of the sweep setting on the 2A03.","arg_defaults":{"note":60,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"note_resolution":0.1,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"width":0},"user_facing":true,"is_synth":true,"category":"general"},"chipbass":{"name":"Chip Bass","synth_name":"chipbass","prefix":"sonic-pi-","doc":"A 16 step triangle wave modelled after the 2A03 chip found in voice 3 of the NES games console. This can be used for retro sounding basslines. For complete authenticity with the 2A03 bear in mind that the triangle channel on that chip didn't have a volume control.","arg_defaults":{"note":60,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"note_resolution":0.1,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2},"user_facing":true,"is_synth":true,"category":"general"},"tb303":{"name":"TB-303 Emulation","synth_name":"tb303","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":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_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"cutoff_min":30,"cutoff_min_slide":0,"cutoff_min_slide_shape":1,"cutoff_min_slide_curve":0,"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,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0,"wave":0,"pulse_width":0.5,"pulse_width_slide":0,"pulse_width_slide_shape":1,"pulse_width_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"supersaw":{"name":"Supersaw","synth_name":"supersaw","prefix":"sonic-pi-","doc":"Thick swirly saw waves sparkling and moving about to create a rich trancy sound.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":130,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.7,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"hoover":{"name":"Hoover","synth_name":"hoover","prefix":"sonic-pi-","doc":"Classic early 90's rave synth - 'a sort of slurry chorussy synth line like the classic Dominator by Human Resource'. Based on Dan Stowell's implementation in SuperCollider and Daniel Turczanski's port to Overtone. Works really well with portamento (see docs for the 'control' method).","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0.05,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":130,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.1,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"prophet":{"name":"The Prophet","synth_name":"prophet","prefix":"sonic-pi-","doc":"Dark and swirly, this synth uses Pulse Width Modulation (PWM) to create a timbre which continually moves around. This effect is created using the pulse ugen which produces a variable width square wave. We then control the width of the pulses using a variety of LFOs - sin-osc and lf-tri in this case. We use a number of these LFO modulated pulse ugens with varying LFO type and rate (and phase in some cases) to provide the LFO with a different starting point. We then mix all these pulses together to create a thick sound and then feed it through a resonant low pass filter (rlpf). For extra bass, one of the pulses is an octave lower (half the frequency) and its LFO has a little bit of randomisation thrown into its frequency component for that extra bit of variety.\n\nSynth design adapted from:\nThe Prophet Speaks (page 2)\nSteal This Sound, Mitchell Sigman","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":110,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.7,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"zawa":{"name":"Zawa","synth_name":"zawa","prefix":"sonic-pi-","doc":"Saw wave with oscillating timbre. Produces moving saw waves with a unique character controllable with the control oscillator (usage similar to mod synths).","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.9,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0,"phase":1,"phase_slide":0,"phase_slide_shape":1,"phase_slide_curve":0,"phase_offset":0,"wave":3,"invert_wave":0,"range":24,"range_slide":0,"range_slide_shape":1,"range_slide_curve":0,"disable_wave":0,"pulse_width":0.5,"pulse_width_slide":0,"pulse_width_slide_shape":1,"pulse_width_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"dark_ambience":{"name":"Dark Ambience","synth_name":"dark_ambience","prefix":"sonic-pi-","doc":"A slow rolling bass with a sparkle of light trying to escape the darkness. Great for an ambient sound.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":110,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.7,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0,"detune1":12,"detune1_slide":0,"detune1_slide_shape":1,"detune1_slide_curve":0,"detune2":24,"detune2_slide":0,"detune2_slide_shape":1,"detune2_slide_curve":0,"noise":0,"ring":0.2,"room":70,"reverb_time":100},"user_facing":true,"is_synth":true,"category":"general"},"growl":{"name":"Growl","synth_name":"growl","prefix":"sonic-pi-","doc":"A deep rumbling growl with a bright sine shining through at higher notes.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0.1,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":130,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.7,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"hollow":{"name":"Hollow","synth_name":"hollow","prefix":"sonic-pi-","doc":"A hollow breathy sound constructed from random noise","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":90,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.99,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0,"noise":1,"norm":0},"user_facing":true,"is_synth":true,"category":"general"},"mono_player":{"name":"Mono Sample Player","synth_name":"mono_player","prefix":"sonic-pi-","doc":"","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":-1,"release":0,"lpf":-1,"lpf_slide":0,"lpf_slide_shape":1,"lpf_slide_curve":0,"lpf_attack":0,"lpf_decay":0,"lpf_sustain":-1,"lpf_release":0,"lpf_init_level":-1,"lpf_attack_level":-1,"lpf_decay_level":-1,"lpf_sustain_level":-1,"lpf_release_level":-1,"lpf_env_curve":2,"lpf_min":-1,"lpf_min_slide":0,"lpf_min_slide_shape":1,"lpf_min_slide_curve":0,"hpf":-1,"hpf_slide":0,"hpf_slide_shape":1,"hpf_slide_curve":0,"hpf_attack":0,"hpf_sustain":-1,"hpf_decay":0,"hpf_release":0,"hpf_init_level":-1,"hpf_attack_level":-1,"hpf_decay_level":-1,"hpf_sustain_level":-1,"hpf_release_level":-1,"hpf_env_curve":2,"hpf_max":-1,"hpf_max_slide":0,"hpf_max_slide_shape":1,"hpf_max_slide_curve":0,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"rate":1,"start":0,"finish":1,"norm":0,"pitch":0,"pitch_slide":0,"pitch_slide_shape":1,"pitch_slide_curve":0,"window_size":0.2,"window_size_slide":0,"window_size_slide_shape":1,"window_size_slide_curve":0,"pitch_dis":0.0,"pitch_dis_slide":0,"pitch_dis_slide_shape":1,"pitch_dis_slide_curve":0,"time_dis":0.0,"time_dis_slide":0,"time_dis_slide_shape":1,"time_dis_slide_curve":0,"compress":0,"threshold":0.2,"threshold_slide":0,"threshold_slide_shape":1,"threshold_slide_curve":0,"clamp_time":0.01,"clamp_time_slide":0,"clamp_time_slide_shape":1,"clamp_time_slide_curve":0,"slope_above":0.5,"slope_above_slide":0,"slope_above_slide_shape":1,"slope_above_slide_curve":0,"slope_below":1,"slope_below_slide":0,"slope_below_slide_shape":1,"slope_below_slide_curve":0,"relax_time":0.01,"relax_time_slide":0,"relax_time_slide_shape":1,"relax_time_slide_curve":0},"user_facing":false,"is_synth":true,"category":"general"},"stereo_player":{"name":"Stereo Sample Player","synth_name":"stereo_player","prefix":"sonic-pi-","doc":"","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":-1,"release":0,"lpf":-1,"lpf_slide":0,"lpf_slide_shape":1,"lpf_slide_curve":0,"lpf_attack":0,"lpf_decay":0,"lpf_sustain":-1,"lpf_release":0,"lpf_init_level":-1,"lpf_attack_level":-1,"lpf_decay_level":-1,"lpf_sustain_level":-1,"lpf_release_level":-1,"lpf_env_curve":2,"lpf_min":-1,"lpf_min_slide":0,"lpf_min_slide_shape":1,"lpf_min_slide_curve":0,"hpf":-1,"hpf_slide":0,"hpf_slide_shape":1,"hpf_slide_curve":0,"hpf_attack":0,"hpf_sustain":-1,"hpf_decay":0,"hpf_release":0,"hpf_init_level":-1,"hpf_attack_level":-1,"hpf_decay_level":-1,"hpf_sustain_level":-1,"hpf_release_level":-1,"hpf_env_curve":2,"hpf_max":-1,"hpf_max_slide":0,"hpf_max_slide_shape":1,"hpf_max_slide_curve":0,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"rate":1,"start":0,"finish":1,"norm":0,"pitch":0,"pitch_slide":0,"pitch_slide_shape":1,"pitch_slide_curve":0,"window_size":0.2,"window_size_slide":0,"window_size_slide_shape":1,"window_size_slide_curve":0,"pitch_dis":0.0,"pitch_dis_slide":0,"pitch_dis_slide_shape":1,"pitch_dis_slide_curve":0,"time_dis":0.0,"time_dis_slide":0,"time_dis_slide_shape":1,"time_dis_slide_curve":0,"compress":0,"threshold":0.2,"threshold_slide":0,"threshold_slide_shape":1,"threshold_slide_curve":0,"clamp_time":0.01,"clamp_time_slide":0,"clamp_time_slide_shape":1,"clamp_time_slide_curve":0,"slope_above":0.5,"slope_above_slide":0,"slope_above_slide_shape":1,"slope_above_slide_curve":0,"slope_below":1,"slope_below_slide":0,"slope_below_slide_shape":1,"slope_below_slide_curve":0,"relax_time":0.01,"relax_time_slide":0,"relax_time_slide_shape":1,"relax_time_slide_curve":0},"user_facing":false,"is_synth":true,"category":"general"},"blade":{"name":"Blade Runner style strings","synth_name":"blade","prefix":"sonic-pi-","doc":"Straight from the 70s, evoking the mists of Blade Runner, this simple electro-style string synth is based on filtered saw waves and a variable vibrato.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"vibrato_rate":6,"vibrato_rate_slide_shape":1,"vibrato_rate_slide_curve":0,"vibrato_depth":0.15,"vibrato_depth_slide_shape":1,"vibrato_depth_slide_curve":0,"vibrato_delay":0.5,"vibrato_onset":0.1},"user_facing":true,"is_synth":true,"category":"general"},"piano":{"name":"SynthPiano","synth_name":"piano","prefix":"sonic-pi-","doc":"A basic piano synthesiser. Note that due to the plucked nature of this synth the envelope opts such as `attack:`, `sustain:` and `release:` do not work as expected. They can only shorten the natural length of the note, not prolong it.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"vel":0.2,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"hard":0.5,"stereo_width":0},"user_facing":true,"is_synth":true,"category":"general"},"rodeo":{"name":"SynthRodeo","synth_name":"rodeo","prefix":"sonic-pi-","doc":"Classic 70's electric piano sound, with built-in compressor and chorus.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":1,"sustain":0.8,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"use_chorus":1,"use_compressor":1,"cutoff":72,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"kalimba":{"name":"SynthKalimba","synth_name":"kalimba","prefix":"sonic-pi-","doc":"A synthesised kalimba (a type of African thumb piano). Note that due to the plucked nature of this synth the envelope opts such as `attack:`, `sustain:` and `release:` do not work as expected. They can only shorten the natural length of the note, not prolong it. Note the default envelope is longer than usual - sustain: 4 and release: 1","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":4,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"clickiness":0.1},"user_facing":true,"is_synth":true,"category":"general"},"pluck":{"name":"SynthPluck","synth_name":"pluck","prefix":"sonic-pi-","doc":"A basic plucked string synthesiser that uses Karplus-Strong synthesis. Note that due to the plucked nature of this synth the envelope opts such as `attack:`, `sustain:` and `release:` do not work as expected. They can only shorten the natural length of the note, not prolong it. Also, the `note:` opt will only honour whole tones.","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"sustain":0,"release":1,"attack_level":1,"decay":0,"decay_level":"sustain_level","sustain_level":1,"noise_amp":0.8,"max_delay_time":0.125,"pluck_decay":30,"coef":0.3},"user_facing":true,"is_synth":true,"category":"general"},"tech_saws":{"name":"TechSaws","synth_name":"tech_saws","prefix":"sonic-pi-","doc":"Slightly modified supersaw implementation based on http://sccode.org/1-4YS","arg_defaults":{"note":52,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":130,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.7,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"winwood_lead":{"name":"Winwood Lead","synth_name":"winwood_lead","prefix":"sonic-pi-","doc":"A lead synth inspired by the Winwood songs from the early 80s. Adapted for Sonic Pi from [Steal This Sound](https://raw.githubusercontent.com/supercollider/supercollider/develop/examples/demonstrations/stealthissound.scd).","arg_defaults":{"note":69,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"cutoff":119,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.2,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0,"lfo_width":0.01,"lfo_width_slide":0,"lfo_width_slide_shape":1,"lfo_width_slide_curve":0,"lfo_rate":8,"lfo_rate_slide":0,"lfo_rate_slide_shape":1,"lfo_rate_slide_curve":0,"ramp_ratio":0.5,"ramp_length":0.2,"seed":0},"user_facing":true,"is_synth":true,"category":"general"},"bass_foundation":{"name":"Bass Foundation","synth_name":"bass_foundation","prefix":"sonic-pi-","doc":"A soft bass synth inspired by the sounds of the 80s. Use together with :bass_highend if you want to give it a gargling component. Adapted for Sonic Pi from [Steal This Sound](https://raw.githubusercontent.com/supercollider/supercollider/develop/examples/demonstrations/stealthissound.scd).","arg_defaults":{"note":40,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"cutoff":83,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.5,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"bass_highend":{"name":"Bass Highend","synth_name":"bass_highend","prefix":"sonic-pi-","doc":"An addition to the :bass_foundation synth inspired by the sounds of the 80s. Use them together if you want to give it a rough, slurping, or gargling component. Adapted for Sonic Pi from [Steal This Sound](https://raw.githubusercontent.com/supercollider/supercollider/develop/examples/demonstrations/stealthissound.scd).","arg_defaults":{"note":40,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"cutoff":102,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.9,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0,"drive":2.0,"drive_slide":0,"drive_slide_shape":1,"drive_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"organ_tonewheel":{"name":"Organ Tonewheel","synth_name":"organ_tonewheel","prefix":"sonic-pi-","doc":"An emulation of a tonewheel organ with an optional rotary speaker. These instruments were the first electro-mechanical synthesisers, developed in the mid 1930s by Laurens Hammond. They generate sine-like signals with the tonewheels and mix them together. Up to 9 sine waves can be combined in order to control the organ's timbre, setting their individual levels with drawbar controls. Their sound is often output over a rotary speaker cabinet, producing a characteristic oscillating sound.\n\nBased on work of [Chris Wigington](https://actlab.us/actlab/cwigington/projone.html) and [Z\u00e9 Craum](http://sccode.org/1-5aD).","arg_defaults":{"note":60,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0.01,"decay":0,"sustain":1,"release":0.01,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"bass":8,"bass_slide":0,"bass_slide_shape":1,"bass_slide_curve":0,"quint":8,"quint_slide":0,"quint_slide_shape":1,"quint_slide_curve":0,"fundamental":8,"fundamental_slide":0,"fundamental_slide_shape":1,"fundamental_slide_curve":0,"oct":8,"oct_slide":0,"oct_slide_shape":1,"oct_slide_curve":0,"nazard":0,"nazard_slide":0,"nazard_slide_shape":1,"nazard_slide_curve":0,"blockflute":0,"blockflute_slide":0,"blockflute_slide_shape":1,"blockflute_slide_curve":0,"tierce":0,"tierce_slide":0,"tierce_slide_shape":1,"tierce_slide_curve":0,"larigot":0,"larigot_slide":0,"larigot_slide_shape":1,"larigot_slide_curve":0,"sifflute":0,"sifflute_slide":0,"sifflute_slide_shape":1,"sifflute_slide_curve":0,"rs_freq":6.7,"rs_freq_slide":0,"rs_freq_slide_shape":1,"rs_freq_slide_curve":0,"rs_freq_var":0.1,"rs_pitch_depth":0.008,"rs_delay":0,"rs_onset":0,"rs_pan_depth":0.05,"rs_amplitude_depth":0.2},"user_facing":true,"is_synth":true,"category":"general"},"rhodey":{"name":"Rhodey","synth_name":"rhodey","prefix":"sonic-pi-","doc":"The sound of an electric piano from the 60's and 70's, producing a characteristic metallic sound for notes below `:g2`. Adapted for Sonic Pi from [SuperCollider Code](https://sccode.org/1-522). Note the remarks on `:sustain_level`, if you are looking for a sustained sound, rather than a plucked one.","arg_defaults":{"note":69,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0.001,"decay":1,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":0,"lfo_width":0.3,"lfo_width_slide":0,"lfo_width_slide_shape":1,"lfo_width_slide_curve":0,"lfo_rate":0.4,"lfo_rate_slide":0,"lfo_rate_slide_shape":1,"lfo_rate_slide_curve":0,"vel":0.8,"mod_index":0.2,"mod_index_slide":0,"mod_index_slide_shape":1,"mod_index_slide_curve":0,"mix":0.2,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"sc808_bassdrum":{"name":"SC-808 Bassdrum","synth_name":"sc808_bassdrum","prefix":"sonic-pi-","doc":"Bassdrum of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s.","arg_defaults":{"note":32,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"decay":2,"decay_curve":-7,"attenuation":1},"user_facing":true,"is_synth":true,"category":"general"},"sc808_snare":{"name":"SC-808 Snare","synth_name":"sc808_snare","prefix":"sonic-pi-","doc":"Snare drum of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s. ","arg_defaults":{"note":65,"detune":-11,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"lpf":93,"lpf_slide":0,"lpf_slide_shape":1,"lpf_slide_curve":0,"hpf":121,"hpf_slide":0,"hpf_slide_shape":1,"hpf_slide_curve":0,"mix":0.7,"head_hpf":30,"decay":4.2,"decay_curve":-115,"click":0.999},"user_facing":true,"is_synth":true,"category":"general"},"sc808_clap":{"name":"SC-808 Clap","synth_name":"sc808_clap","prefix":"sonic-pi-","doc":"Clap of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"lpf":93,"lpf_slide":0,"lpf_slide_shape":1,"lpf_slide_curve":0,"hpf":121,"hpf_slide":0,"hpf_slide_shape":1,"hpf_slide_curve":0,"rev":1},"user_facing":true,"is_synth":true,"category":"general"},"sc808_tomlo":{"name":"SC-808 Tom Low","synth_name":"sc808_tomlo","prefix":"sonic-pi-","doc":"Low tom drum of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s. This is a percussive synth, so it does not use the standard envelope parameters, neither does it feature slideable parameters.","arg_defaults":{"note":40,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"click":0.4,"decay":4,"detune1":1.125,"detune2":1.25,"decay_curve":-250},"user_facing":true,"is_synth":true,"category":"general"},"sc808_tommid":{"name":"SC-808 Tom Mid","synth_name":"sc808_tommid","prefix":"sonic-pi-","doc":"Mid tom drum of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s.","arg_defaults":{"note":44,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"click":0.4,"decay":16,"detune1":1.333333,"detune2":1.25,"decay_curve":-250},"user_facing":true,"is_synth":true,"category":"general"},"sc808_tomhi":{"name":"SC-808 Tom High","synth_name":"sc808_tomhi","prefix":"sonic-pi-","doc":"High tom drum of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s. This is a percussive synth, so it does not use the standard envelope parameters, neither does it feature slideable parameters.","arg_defaults":{"note":52,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"click":0.4,"decay":11,"detune1":1.333333,"detune2":1.21212,"decay_curve":-250},"user_facing":true,"is_synth":true,"category":"general"},"sc808_congalo":{"name":"SC-808 Conga Low","synth_name":"sc808_congalo","prefix":"sonic-pi-","doc":"Low conga of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s. This is a percussive synth, so it does not use the standard envelope parameters, neither does it feature slideable parameters.","arg_defaults":{"note":52,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"click":0.15,"decay":18,"detune1":1.333333,"detune2":1.121212,"decay_curve":-250},"user_facing":true,"is_synth":true,"category":"general"},"sc808_congamid":{"name":"SC-808 Conga Mid","synth_name":"sc808_congamid","prefix":"sonic-pi-","doc":"Mid conga of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s. This is a percussive synth, so it does not use the standard envelope parameters, neither does it feature slideable parameters.","arg_defaults":{"note":57,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"click":0.15,"decay":9,"detune1":1.24,"detune2":1.12,"decay_curve":-250},"user_facing":true,"is_synth":true,"category":"general"},"sc808_congahi":{"name":"SC-808 Conga High","synth_name":"sc808_congahi","prefix":"sonic-pi-","doc":"High conga of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s. This is a percussive synth, so it does not use the standard envelope parameters, neither does it feature slideable parameters.","arg_defaults":{"note":65,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"click":0.15,"decay":6,"detune1":1.22972,"detune2":1.08108,"decay_curve":-250},"user_facing":true,"is_synth":true,"category":"general"},"sc808_rimshot":{"name":"SC-808 Rimshot","synth_name":"sc808_rimshot","prefix":"sonic-pi-","doc":"Rimshot of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s. This is a percussive synth, so it does not use the standard envelope parameters, neither does it feature slideable parameters.","arg_defaults":{"note":92,"detune":-22,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"lpf":63,"lpf_slide":0,"lpf_slide_shape":1,"lpf_slide_curve":0,"hpf":118,"hpf_slide":0,"hpf_slide_shape":1,"hpf_slide_curve":0,"decay":0.07,"decay_curve":-42,"click":1},"user_facing":true,"is_synth":true,"category":"general"},"sc808_claves":{"name":"SC-808 Claves","synth_name":"sc808_claves","prefix":"sonic-pi-","doc":"Claves of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s. This is a percussive synth, so it does not use the standard envelope parameters, neither does it feature slideable parameters.","arg_defaults":{"note":99,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"click":1,"decay":0.1,"decay_curve":-20},"user_facing":true,"is_synth":true,"category":"general"},"sc808_maracas":{"name":"SC-808 Maracas","synth_name":"sc808_maracas","prefix":"sonic-pi-","doc":"Maracas of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s. This is a percussive synth, so it does not use the standard envelope parameters, neither does it feature slideable parameters.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"hpf":113,"hpf_slide":0,"hpf_slide_shape":1,"hpf_slide_curve":0,"click":1,"decay":0.1,"decay_curve":-20},"user_facing":true,"is_synth":true,"category":"general"},"sc808_cowbell":{"name":"SC-808 Cowbell","synth_name":"sc808_cowbell","prefix":"sonic-pi-","doc":"Cowbell of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s. This is a percussive synth, so it does not use the standard envelope parameters, neither does it feature slideable parameters.","arg_defaults":{"note":79.59,"detune":-7.084,"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"hpf":113,"hpf_slide":0,"hpf_slide_shape":1,"hpf_slide_curve":0,"decay":9.5,"decay_curve":-90},"user_facing":true,"is_synth":true,"category":"general"},"sc808_closed_hihat":{"name":"SC-808 Closed Hi-Hat","synth_name":"sc808_closed_hihat","prefix":"sonic-pi-","doc":"Closed hi-hat of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s. This is a percussive synth, so it does not use the standard envelope parameters, neither does it feature slideable parameters.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"hpf":121.252,"hpf_slide":0,"hpf_slide_shape":1,"hpf_slide_curve":0,"lpf":121.0588,"lpf_slide":0,"lpf_slide_shape":1,"lpf_slide_curve":0,"decay":0.42,"decay_curve":-30},"user_facing":true,"is_synth":true,"category":"general"},"sc808_open_hihat":{"name":"SC-808 Open Hi-Hat","synth_name":"sc808_open_hihat","prefix":"sonic-pi-","doc":"Open hi-hat of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s. This is a percussive synth, so it does not use the standard envelope parameters, neither does it feature slideable parameters. Note that this synth is rather faint and may require an amp of 2 or more to be heard.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"hpf":118.551,"hpf_slide":0,"hpf_slide_shape":1,"hpf_slide_curve":0,"lpf":107.213,"lpf_slide":0,"lpf_slide_shape":1,"lpf_slide_curve":0,"decay":0.5,"decay_curve":-3},"user_facing":true,"is_synth":true,"category":"general"},"sc808_cymbal":{"name":"SC-808 Cymbal","synth_name":"sc808_cymbal","prefix":"sonic-pi-","doc":"Cymbal of the SC808 drum machine based on [Yoshinosuke Horiuchi's](https://www.patreon.com/4H/posts) implementation of the legendary rhythm composer from the early 80s. This is a percussive synth, so it does not use the standard envelope parameters, neither does it feature slideable parameters.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"decay":2,"decay_curve":-3,"tone":0.002},"user_facing":true,"is_synth":true,"category":"general"},"gabberkick":{"name":"Gabberkick","synth_name":"gabberkick","prefix":"sonic-pi-","doc":"An aggressive Gabber synth sound, adapted for Sonic Pi from [SuperCollider Code](https://sccode.org/1-57r). Play a `:g1` with default values at about 200 bpm in order to get those punchy Gabber baseline kicks. Intended for short kick sounds, the synth is quite configurable and can produce lots of other interesting sounds, also with longer `:sustain` values. This synth alters the frequency while it is played along an exponential curve starting at `:slope_start`, passing through `:slope_intermediate`, and finally going to `:note`. This is why the `:note` parameter as such is not slideable.","arg_defaults":{"note":34,"note_slide":0,"amp":0.5,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0.001,"decay":0.01,"sustain":0.3,"release":0.02,"attack_level":1,"decay_level":0.7,"sustain_level":0.7,"cutoff":119,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.2,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0,"slope_start":84,"slope_length1":0.015,"slope_intermediate":69,"slope_length2":0.1,"boost":8,"boost_slide":0,"boost_slide_shape":1,"boost_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"sound_in":{"name":"Sound In","synth_name":"sound_in","prefix":"sonic-pi-","doc":"Treat sound card input as a synth. If your audio card has inputs, you may use this synth to feed the incoming audio into Sonic Pi. This synth will read in a single mono audio stream - for example from a standard microphone or guitar. See `:sound_in_stereo` for a similar synth capable of reading in a stereo signal.\n\nAs with all Sonic Pi synths, there is a default envelope which determines the duration of the lifetime of the synth. Therefore, to get a continuous stream of audio, you need to place consecutive calls to this synth in iteration or a `live_loop`. For example:\n\n```\nlive_loop :playback do\n```\n\n```\n synth :sound_in, sustain: 8\n```\n\n```\n sleep 8\n```\n\n```\nend\n```\n\nNote that if the microphone and speaker are close together (on a laptop or in a small room) you will potentially get a harsh feedback sound.\n\nAlso, note that audio in isn't yet supported on Raspberry Pi.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":1,"release":0,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":0,"input":1},"user_facing":true,"is_synth":true,"category":"general"},"sound_in_stereo":{"name":"Sound In Stereo","synth_name":"sound_in_stereo","prefix":"sonic-pi-","doc":"Treat sound card input as a synth. If your audio card has inputs, you may use this synth to feed the incoming audio into Sonic Pi. This synth will read in a stereo audio stream - for example from a stereo microphone or external stereo keyboard. See `:sound_in` for a similar synth capable of reading in a mono signal. The stereo input is expected to be on consecutive sound card channels.\n\nAs with all Sonic Pi synths, there is a default envelope which determines the duration of the lifetime of the synth. Therefore, to get a continuous stream of audio, you need to place consecutive calls to this synth in iteration or a `live_loop`. For example:\n\n```\nlive_loop :playback do\n```\n\n```\n synth :sound_in_stereo, sustain: 8\n```\n\n```\n sleep 8\n```\n\n```\nend\n```\n\nNote that if the microphone and speaker are close together (on a laptop or in a small room) you will potentially get a harsh feedback sound.\n\nAlso, note that audio in isn't yet supported on Raspberry Pi.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":1,"release":0,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":0,"input":1},"user_facing":true,"is_synth":true,"category":"general"},"noise":{"name":"Noise","synth_name":"noise","prefix":"sonic-pi-","doc":"Noise that contains equal amounts of energy at every frequency - comparable to radio static. Useful for generating percussive sounds such as snares and hand claps. Also useful for simulating wind or sea effects.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":110,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"pnoise":{"name":"Pink Noise","synth_name":"pnoise","prefix":"sonic-pi-","doc":"Noise whose spectrum falls off in power by 3 dB per octave. Useful for generating percussive sounds such as snares and hand claps. Also useful for simulating wind or sea effects.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":110,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"bnoise":{"name":"Brown Noise","synth_name":"bnoise","prefix":"sonic-pi-","doc":"Noise whose spectrum falls off in power by 6 dB per octave. Useful for generating percussive sounds such as snares and hand claps. Also useful for simulating wind or sea effects.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":110,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"gnoise":{"name":"Grey Noise","synth_name":"gnoise","prefix":"sonic-pi-","doc":"Generates noise which results from flipping random bits in a word. The spectrum is emphasised towards lower frequencies. Useful for generating percussive sounds such as snares and hand claps. Also useful for simulating wind or sea effects.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":110,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"cnoise":{"name":"Clip Noise","synth_name":"cnoise","prefix":"sonic-pi-","doc":"Generates noise whose values are either -1 or 1. This produces the maximum energy for the least peak to peak amplitude. Useful for generating percussive sounds such as snares and hand claps. Also useful for simulating wind or sea effects.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":2,"cutoff":110,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"chipnoise":{"name":"Chip Noise","synth_name":"chipnoise","prefix":"sonic-pi-","doc":"Generates noise whose values are either -1 or 1 (like a pulse or square wave) with one of 16 particular frequencies. This is similar to the noise channel on the 2A03 chip used in the NES games console, although it lacks the same Pseudo-Random Number Generator (PRNG) and doesn't implement the 2A03's lesser used noise mode. The amplitude envelope defaults to moving by step to keep that 16 bit feel and this synth also has a slight soft clipping to better imitate the original sound of the device. Use for retro effects, hand claps, snare drums and hi-hats.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":0,"amp_slide_curve":1,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"attack":0,"decay":0,"sustain":0,"release":1,"attack_level":1,"decay_level":"sustain_level","sustain_level":1,"env_curve":0,"freq_band":0,"freq_band_slide":0,"freq_band_slide_shape":1,"freq_band_slide_curve":0},"user_facing":true,"is_synth":true,"category":"general"},"basic_mono_player":{"name":"Basic Mono Sample Player (no env)","synth_name":"basic_mono_player","prefix":"sonic-pi-","doc":"","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"rate":1,"lpf":-1,"lpf_slide":0,"lpf_slide_shape":1,"lpf_slide_curve":0,"hpf":-1,"hpf_slide":0,"hpf_slide_shape":1,"hpf_slide_curve":0},"user_facing":false,"is_synth":true,"category":"general"},"basic_stereo_player":{"name":"Basic Stereo Sample Player (no env)","synth_name":"basic_stereo_player","prefix":"sonic-pi-","doc":"","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0,"rate":1,"lpf":-1,"lpf_slide":0,"lpf_slide_shape":1,"lpf_slide_curve":0,"hpf":-1,"hpf_slide":0,"hpf_slide_shape":1,"hpf_slide_curve":0},"user_facing":false,"is_synth":true,"category":"general"},"basic_mixer":{"name":"Basic Mixer","synth_name":"basic_mixer","prefix":"sonic-pi-","doc":"Please write documentation!","arg_defaults":{"amp":1,"amp_slide":0.1,"amp_slide_shape":1,"amp_slide_curve":0},"user_facing":false,"is_synth":true,"category":"general"},"main_mixer":{"name":"Main Mixer","synth_name":"mixer","prefix":"sonic-pi-","doc":"Please write documentation!","arg_defaults":{"amp_slide":0.02,"pre_amp_slide":0.02,"hpf_slide":0.02,"lpf_slide":0.02,"pre_amp":1,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"amp":6,"amp_slide_shape":1,"amp_slide_curve":0,"hpf":0,"hpf_bypass":0,"hpf_slide_shape":1,"hpf_slide_curve":0,"lpf":135.5,"lpf_bypass":0,"lpf_slide_shape":1,"lpf_slide_curve":0,"force_mono":0,"invert_stereo":0,"limiter_bypass":0,"leak_dc_bypass":0},"user_facing":false,"is_synth":true,"category":"general"},"fx_bitcrusher":{"name":"Bitcrusher","synth_name":"fx_bitcrusher","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"sample_rate":10000,"sample_rate_slide":0,"sample_rate_slide_shape":1,"sample_rate_slide_curve":0,"bits":8,"bits_slide":0,"bits_slide_shape":1,"bits_slide_curve":0,"cutoff":0,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0},"user_facing":true,"is_synth":false},"fx_krush":{"name":"krush","synth_name":"fx_krush","prefix":"sonic-pi-","doc":"Krush that sound!","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"gain":5,"gain_slide":0,"gain_slide_shape":1,"gain_slide__curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":false},"fx_reverb":{"name":"Reverb","synth_name":"fx_reverb","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":0.4,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"room":0.6,"room_slide":0,"room_slide_shape":1,"room_slide_curve":0,"damp":0.5,"damp_slide":0,"damp_slide_shape":1,"damp_slide_curve":0},"user_facing":true,"is_synth":false},"fx_gverb":{"name":"GVerb","synth_name":"fx_gverb","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"spread":0.5,"spread_slide":0,"spread_slide_shape":1,"spread_slide_curve":0,"damp":0.5,"damp_slide":0,"damp_slide_shape":1,"damp_slide_curve":0,"pre_damp":0.5,"pre_damp_slide":0,"pre_damp_slide_shape":1,"pre_damp_slide_curve":0,"dry":1,"dry_slide":0,"dry_slide_shape":1,"dry_slide_curve":0,"room":10,"release":3,"ref_level":0.7,"tail_level":0.5},"user_facing":true,"is_synth":false},"fx_replace_reverb":{"name":"Reverb","synth_name":"fx_reverb","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":0.4,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"room":0.6,"room_slide":0,"room_slide_shape":1,"room_slide_curve":0,"damp":0.5,"damp_slide":0,"damp_slide_shape":1,"damp_slide_curve":0},"user_facing":true,"is_synth":false},"fx_level":{"name":"Level Amplifier","synth_name":"fx_level","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0},"user_facing":true,"is_synth":false},"fx_mono":{"name":"Mono","synth_name":"fx_mono","prefix":"sonic-pi-","doc":"Sum left and right channels. Useful with stereo samples that you need as a mono sound, or for use with panslicer.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0},"user_facing":true,"is_synth":false},"fx_autotuner":{"name":"Autotuner","synth_name":"fx_autotuner","prefix":"sonic-pi-","doc":"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 its own right. When used with the note: arg, it tries to shift the input to match that note 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.\n\n```\nwith_fx :autotuner do |c|\n```\n\n```\n sample \"~/Downloads/acappella.wav\" # any sample with a voice is good\n```\n\n```\n sleep 4\n```\n\n```\n # listen to standard auto-tune behaviour for 4 seconds\n```\n\n```\n 64.times do\n```\n\n```\n # now start changing note: to get robot voice behaviour\n```\n\n```\n control c, note: (scale :a2, :minor_pentatonic, num_octaves: 2).choose\n```\n\n```\n sleep 0.5\n```\n\n```\n end\n```\n\n```\nend\n```\n","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"note":0,"note_slide":0,"note_slide_shape":1,"note_slide_curve":0,"formant_ratio":1.0,"formant_ratio_slide":0,"formant_ratio_slide_shape":1,"formant_ratio_slide_curve":0},"user_facing":true,"is_synth":false},"fx_replace_level":{"name":"Level Amplifier","synth_name":"fx_level","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0},"user_facing":true,"is_synth":false},"fx_echo":{"name":"Echo","synth_name":"fx_echo","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"phase":0.25,"phase_slide":0,"phase_slide_shape":1,"phase_slide_curve":0,"decay":2,"decay_slide":0,"decay_slide_shape":1,"decay_slide_curve":0,"max_phase":2},"user_facing":true,"is_synth":false},"fx_replace_echo":{"name":"Echo","synth_name":"fx_echo","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"phase":0.25,"phase_slide":0,"phase_slide_shape":1,"phase_slide_curve":0,"decay":2,"decay_slide":0,"decay_slide_shape":1,"decay_slide_curve":0,"max_phase":2},"user_facing":true,"is_synth":false},"fx_slicer":{"name":"Slicer","synth_name":"fx_slicer","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"phase":0.25,"phase_slide":0,"phase_slide_shape":1,"phase_slide_curve":0,"amp_min":0,"amp_min_slide":0,"amp_min_slide_shape":1,"amp_min_slide_curve":0,"amp_max":1,"amp_max_slide":0,"amp_max_slide_shape":1,"amp_max_slide_curve":0,"pulse_width":0.5,"pulse_width_slide":0,"pulse_width_slide_shape":1,"pulse_width_slide_curve":0,"phase_offset":0,"wave":1,"invert_wave":0,"probability":0,"probability_slide":0,"probability_slide_shape":1,"probability_slide_curve":0,"prob_pos":0,"prob_pos_slide":0,"prob_pos_slide_shape":1,"prob_pos_slide_curve":0,"seed":0,"smooth":0,"smooth_slide":0,"smooth_slide_shape":1,"smooth_slide_curve":0,"smooth_up":0,"smooth_up_slide":0,"smooth_up_slide_shape":1,"smooth_up_slide_curve":0,"smooth_down":0,"smooth_down_slide":0,"smooth_down_slide_shape":1,"smooth_down_slide_curve":0},"user_facing":true,"is_synth":false},"fx_panslicer":{"name":"Pan Slicer","synth_name":"fx_panslicer","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"phase":0.25,"phase_slide":0,"phase_slide_shape":1,"phase_slide_curve":0,"amp_min":0,"amp_min_slide":0,"amp_min_slide_shape":1,"amp_min_slide_curve":0,"amp_max":1,"amp_max_slide":0,"amp_max_slide_shape":1,"amp_max_slide_curve":0,"pulse_width":0.5,"pulse_width_slide":0,"pulse_width_slide_shape":1,"pulse_width_slide_curve":0,"phase_offset":0,"wave":1,"invert_wave":0,"probability":0,"probability_slide":0,"probability_slide_shape":1,"probability_slide_curve":0,"prob_pos":0,"prob_pos_slide":0,"prob_pos_slide_shape":1,"prob_pos_slide_curve":0,"seed":0,"smooth":0,"smooth_slide":0,"smooth_slide_shape":1,"smooth_slide_curve":0,"smooth_up":0,"smooth_up_slide":0,"smooth_up_slide_shape":1,"smooth_up_slide_curve":0,"smooth_down":0,"smooth_down_slide":0,"smooth_down_slide_shape":1,"smooth_down_slide_curve":0,"pan_min":-1,"pan_min_slide":0,"pan_min_slide_shape":1,"pan_min_slide_curve":0,"pan_max":1,"pan_max_slide":0,"pan_max_slide_shape":1,"pan_max_slide_curve":0},"user_facing":true,"is_synth":false},"fx_replace_slicer":{"name":"Slicer","synth_name":"fx_slicer","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"phase":0.25,"phase_slide":0,"phase_slide_shape":1,"phase_slide_curve":0,"amp_min":0,"amp_min_slide":0,"amp_min_slide_shape":1,"amp_min_slide_curve":0,"amp_max":1,"amp_max_slide":0,"amp_max_slide_shape":1,"amp_max_slide_curve":0,"pulse_width":0.5,"pulse_width_slide":0,"pulse_width_slide_shape":1,"pulse_width_slide_curve":0,"phase_offset":0,"wave":1,"invert_wave":0,"probability":0,"probability_slide":0,"probability_slide_shape":1,"probability_slide_curve":0,"prob_pos":0,"prob_pos_slide":0,"prob_pos_slide_shape":1,"prob_pos_slide_curve":0,"seed":0,"smooth":0,"smooth_slide":0,"smooth_slide_shape":1,"smooth_slide_curve":0,"smooth_up":0,"smooth_up_slide":0,"smooth_up_slide_shape":1,"smooth_up_slide_curve":0,"smooth_down":0,"smooth_down_slide":0,"smooth_down_slide_shape":1,"smooth_down_slide_curve":0},"user_facing":true,"is_synth":false},"fx_wobble":{"name":"Wobble","synth_name":"fx_wobble","prefix":"sonic-pi-","doc":"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 fun dub wobbles. Cutoff value is at cutoff_min at the start of phase","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"phase":0.5,"phase_slide":0,"phase_slide_shape":1,"phase_slide_curve":0,"cutoff_min":60,"cutoff_min_slide":0,"cutoff_min_slide_shape":1,"cutoff_min_slide_curve":0,"cutoff_max":120,"cutoff_max_slide":0,"cutoff_max_slide_shape":1,"cutoff_max_slide_curve":0,"res":0.8,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0,"phase_offset":0,"wave":0,"invert_wave":0,"pulse_width":0.5,"pulse_width_slide":0,"pulse_width_slide_shape":1,"pulse_width_slide_curve":0,"filter":0,"probability":0,"probability_slide":0,"probability_slide_shape":1,"probability_slide_curve":0,"prob_pos":0,"prob_pos_slide":0,"prob_pos_slide_shape":1,"prob_pos_slide_curve":0,"seed":0,"smooth":0,"smooth_slide":0,"smooth_slide_shape":1,"smooth_slide_curve":0,"smooth_up":0,"smooth_up_slide":0,"smooth_up_slide_shape":1,"smooth_up_slide_curve":0,"smooth_down":0,"smooth_down_slide":0,"smooth_down_slide_shape":1,"smooth_down_slide_curve":0},"user_facing":true,"is_synth":false},"fx_replace_wobble":{"name":"Wobble","synth_name":"fx_wobble","prefix":"sonic-pi-","doc":"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 fun dub wobbles. Cutoff value is at cutoff_min at the start of phase","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"phase":0.5,"phase_slide":0,"phase_slide_shape":1,"phase_slide_curve":0,"cutoff_min":60,"cutoff_min_slide":0,"cutoff_min_slide_shape":1,"cutoff_min_slide_curve":0,"cutoff_max":120,"cutoff_max_slide":0,"cutoff_max_slide_shape":1,"cutoff_max_slide_curve":0,"res":0.8,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0,"phase_offset":0,"wave":0,"invert_wave":0,"pulse_width":0.5,"pulse_width_slide":0,"pulse_width_slide_shape":1,"pulse_width_slide_curve":0,"filter":0,"probability":0,"probability_slide":0,"probability_slide_shape":1,"probability_slide_curve":0,"prob_pos":0,"prob_pos_slide":0,"prob_pos_slide_shape":1,"prob_pos_slide_curve":0,"seed":0,"smooth":0,"smooth_slide":0,"smooth_slide_shape":1,"smooth_slide_curve":0,"smooth_up":0,"smooth_up_slide":0,"smooth_up_slide_shape":1,"smooth_up_slide_curve":0,"smooth_down":0,"smooth_down_slide":0,"smooth_down_slide_shape":1,"smooth_down_slide_curve":0},"user_facing":true,"is_synth":false},"fx_ixi_techno":{"name":"Techno from IXI Lang","synth_name":"fx_ixi_techno","prefix":"sonic-pi-","doc":"Moving resonant low pass filter between min and max cutoffs. Great for sweeping effects across long synths or samples.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"phase":4,"phase_slide":0,"phase_slide_shape":1,"phase_slide_curve":0,"phase_offset":0,"cutoff_min":60,"cutoff_min_slide":0,"cutoff_min_slide_shape":1,"cutoff_min_slide_curve":0,"cutoff_max":120,"cutoff_max_slide":0,"cutoff_max_slide_shape":1,"cutoff_max_slide_curve":0,"res":0.8,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":false},"fx_replace_ixi_techno":{"name":"Techno from IXI Lang","synth_name":"fx_ixi_techno","prefix":"sonic-pi-","doc":"Moving resonant low pass filter between min and max cutoffs. Great for sweeping effects across long synths or samples.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"phase":4,"phase_slide":0,"phase_slide_shape":1,"phase_slide_curve":0,"phase_offset":0,"cutoff_min":60,"cutoff_min_slide":0,"cutoff_min_slide_shape":1,"cutoff_min_slide_curve":0,"cutoff_max":120,"cutoff_max_slide":0,"cutoff_max_slide_shape":1,"cutoff_max_slide_curve":0,"res":0.8,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":false},"fx_compressor":{"name":"Compressor","synth_name":"fx_compressor","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"threshold":0.2,"threshold_slide":0,"threshold_slide_shape":1,"threshold_slide_curve":0,"clamp_time":0.01,"clamp_time_slide":0,"clamp_time_slide_shape":1,"clamp_time_slide_curve":0,"slope_above":0.5,"slope_above_slide":0,"slope_above_slide_shape":1,"slope_above_slide_curve":0,"slope_below":1,"slope_below_slide":0,"slope_below_slide_shape":1,"slope_below_slide_curve":0,"relax_time":0.01,"relax_time_slide":0,"relax_time_slide_shape":1,"relax_time_slide_curve":0},"user_facing":true,"is_synth":false},"fx_whammy":{"name":"Whammy","synth_name":"fx_whammy","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"transpose":12,"transpose_slide":0,"transpose_slide_shape":1,"transpose_slide_curve":0,"max_delay_time":1,"deltime":0.05,"grainsize":0.075},"user_facing":true,"is_synth":false},"fx_replace_compressor":{"name":"Compressor","synth_name":"fx_compressor","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"threshold":0.2,"threshold_slide":0,"threshold_slide_shape":1,"threshold_slide_curve":0,"clamp_time":0.01,"clamp_time_slide":0,"clamp_time_slide_shape":1,"clamp_time_slide_curve":0,"slope_above":0.5,"slope_above_slide":0,"slope_above_slide_shape":1,"slope_above_slide_curve":0,"slope_below":1,"slope_below_slide":0,"slope_below_slide_shape":1,"slope_below_slide_curve":0,"relax_time":0.01,"relax_time_slide":0,"relax_time_slide_shape":1,"relax_time_slide_curve":0},"user_facing":true,"is_synth":false},"fx_rlpf":{"name":"Resonant Low Pass Filter","synth_name":"fx_rlpf","prefix":"sonic-pi-","doc":"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.\n\n 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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.5,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":false},"fx_replace_rlpf":{"name":"Resonant Low Pass Filter","synth_name":"fx_rlpf","prefix":"sonic-pi-","doc":"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.\n\n 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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.5,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":false},"fx_nrlpf":{"name":"Normalised Resonant Low Pass Filter","synth_name":"fx_nrlpf","prefix":"sonic-pi-","doc":"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.\n\n 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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.5,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":false},"fx_replace_nrlpf":{"name":"Normalised Resonant Low Pass Filter","synth_name":"fx_nrlpf","prefix":"sonic-pi-","doc":"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.\n\n 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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.5,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":false},"fx_rhpf":{"name":"Resonant High Pass Filter","synth_name":"fx_rhpf","prefix":"sonic-pi-","doc":"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.\n\n Choose a lower cutoff to keep more of the bass/mid and a higher cutoff to make the sound more light and crispy.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.5,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":false},"fx_replace_rhpf":{"name":"Resonant High Pass Filter","synth_name":"fx_rhpf","prefix":"sonic-pi-","doc":"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.\n\n Choose a lower cutoff to keep more of the bass/mid and a higher cutoff to make the sound more light and crispy.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.5,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":false},"fx_nrhpf":{"name":"Normalised Resonant High Pass Filter","synth_name":"fx_nrhpf","prefix":"sonic-pi-","doc":"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.\n\n Choose a lower cutoff to keep more of the bass/mid and a higher cutoff to make the sound more light and crispy.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.5,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":false},"fx_replace_nrhpf":{"name":"Normalised Resonant High Pass Filter","synth_name":"fx_nrhpf","prefix":"sonic-pi-","doc":"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.\n\n Choose a lower cutoff to keep more of the bass/mid and a higher cutoff to make the sound more light and crispy.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0,"res":0.5,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":false},"fx_hpf":{"name":"High Pass Filter","synth_name":"fx_hpf","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0},"user_facing":true,"is_synth":false},"fx_replace_hpf":{"name":"High Pass Filter","synth_name":"fx_hpf","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0},"user_facing":true,"is_synth":false},"fx_nhpf":{"name":"Normalised High Pass Filter","synth_name":"fx_nhpf","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0},"user_facing":true,"is_synth":false},"fx_replace_nhpf":{"name":"Normalised High Pass Filter","synth_name":"fx_nhpf","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0},"user_facing":true,"is_synth":false},"fx_lpf":{"name":"Low Pass Filter","synth_name":"fx_lpf","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0},"user_facing":true,"is_synth":false},"fx_replace_lpf":{"name":"Low Pass Filter","synth_name":"fx_lpf","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0},"user_facing":true,"is_synth":false},"fx_nlpf":{"name":"Normalised Low Pass Filter.","synth_name":"fx_nlpf","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0},"user_facing":true,"is_synth":false},"fx_replace_nlpf":{"name":"Normalised Low Pass Filter.","synth_name":"fx_nlpf","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"cutoff":100,"cutoff_slide":0,"cutoff_slide_shape":1,"cutoff_slide_curve":0},"user_facing":true,"is_synth":false},"fx_normaliser":{"name":"Normaliser","synth_name":"fx_normaliser","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"level":1,"level_slide":0,"level_slide_shape":1,"level_slide_curve":0},"user_facing":true,"is_synth":false},"fx_replace_normaliser":{"name":"Normaliser","synth_name":"fx_normaliser","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"level":1,"level_slide":0,"level_slide_shape":1,"level_slide_curve":0},"user_facing":true,"is_synth":false},"fx_distortion":{"name":"Distortion","synth_name":"fx_distortion","prefix":"sonic-pi-","doc":"Distorts the signal reducing clarity in favour of raw crunchy noise.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"distort":0.5,"distort_slide":0,"distort_slide_shape":1,"distort_slide_curve":0},"user_facing":true,"is_synth":false},"fx_replace_distortion":{"name":"Distortion","synth_name":"fx_distortion","prefix":"sonic-pi-","doc":"Distorts the signal reducing clarity in favour of raw crunchy noise.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"distort":0.5,"distort_slide":0,"distort_slide_shape":1,"distort_slide_curve":0},"user_facing":true,"is_synth":false},"fx_pan":{"name":"Pan","synth_name":"fx_pan","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0},"user_facing":true,"is_synth":false},"fx_replace_pan":{"name":"Pan","synth_name":"fx_pan","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"pan":0,"pan_slide":0,"pan_slide_shape":1,"pan_slide_curve":0},"user_facing":true,"is_synth":false},"fx_bpf":{"name":"Band Pass Filter","synth_name":"fx_bpf","prefix":"sonic-pi-","doc":"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).\n\n With higher values for res we can simulate other filters e.g. telephone lines, by cutting off low and high frequencies.\n\nUse FX `:band_eq` with a negative db for the opposite effect - to attenuate a given band of frequencies.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"centre":100,"centre_slide":0,"centre_slide_shape":1,"centre_slide_curve":0,"res":0.6,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":false},"fx_nbpf":{"name":"Normalised Band Pass Filter","synth_name":"fx_nbpf","prefix":"sonic-pi-","doc":"Like the Band Pass Filter but normalised. The normaliser is useful here as some volume is lost when filtering the original signal.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"centre":100,"centre_slide":0,"centre_slide_shape":1,"centre_slide_curve":0,"res":0.6,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":false},"fx_rbpf":{"name":"Resonant Band Pass Filter","synth_name":"fx_rbpf","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"centre":100,"centre_slide":0,"centre_slide_shape":1,"centre_slide_curve":0,"res":0.5,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":false},"fx_nrbpf":{"name":"Normalised Resonant Band Pass Filter","synth_name":"fx_nrbpf","prefix":"sonic-pi-","doc":"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.\n\n The normaliser is useful here as some volume is lost when filtering the original signal.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"centre":100,"centre_slide":0,"centre_slide_shape":1,"centre_slide_curve":0,"res":0.5,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0},"user_facing":true,"is_synth":false},"fx_band_eq":{"name":"Band EQ Filter","synth_name":"fx_band_eq","prefix":"sonic-pi-","doc":"Attenuate or Boost a frequency band","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"freq":100,"freq_slide":0,"freq_slide_shape":1,"freq_slide_curve":0,"res":0.6,"res_slide":0,"res_slide_shape":1,"res_slide_curve":0,"db":0.6,"db_slide":0,"db_slide_shape":1,"db_slide_curve":0},"user_facing":true,"is_synth":false},"fx_tanh":{"name":"Hyperbolic Tangent","synth_name":"fx_tanh","prefix":"sonic-pi-","doc":"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. ","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"krunch":5,"krunch_slide":0,"krunch_slide_shape":1,"krunch_slide_curve":0},"user_facing":true,"is_synth":false},"fx_pitch_shift":{"name":"Pitch shift","synth_name":"fx_pitch_shift","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"window_size":0.2,"window_size_slide":0,"window_size_slide_shape":1,"window_size_slide_curve":0,"pitch":0,"pitch_slide":0,"pitch_slide_shape":1,"pitch_slide_curve":0,"pitch_dis":0.0,"pitch_dis_slide":0,"pitch_dis_slide_shape":1,"pitch_dis_slide_curve":0,"time_dis":0.0,"time_dis_slide":0,"time_dis_slide_shape":1,"time_dis_slide_curve":0},"user_facing":true,"is_synth":false},"fx_ring_mod":{"name":"Ring Modulator","synth_name":"fx_ring_mod","prefix":"sonic-pi-","doc":"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!","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"freq":30,"freq_slide":0,"freq_slide_shape":1,"freq_slide_curve":0,"mod_amp":1,"mod_amp_slide":0,"mod_amp_slide_shape":1,"mod_amp_slide_curve":0},"user_facing":true,"is_synth":false},"fx_octaver":{"name":"Octaver","synth_name":"fx_octaver","prefix":"sonic-pi-","doc":"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).\n\n 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","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"super_amp":1,"super_amp_slide":0,"super_amp_slide_shape":1,"super_amp_slide_curve":0,"sub_amp":1,"sub_amp_slide":0,"sub_amp_slide_shape":1,"sub_amp_slide_curve":0,"subsub_amp":1,"subsub_amp_slide":0,"subsub_amp_slide_shape":1,"subsub_amp_slide_curve":0},"user_facing":true,"is_synth":false},"fx_vowel":{"name":"Vowel","synth_name":"fx_vowel","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"vowel_sound":1,"voice":0},"user_facing":true,"is_synth":false},"fx_flanger":{"name":"Flanger","synth_name":"fx_flanger","prefix":"sonic-pi-","doc":"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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"phase":4,"phase_slide":0,"phase_slide_shape":1,"phase_slide_curve":0,"phase_offset":0,"wave":4,"invert_wave":0,"stereo_invert_wave":0,"delay":5,"delay_slide":0,"delay_slide_shape":1,"delay_slide_curve":0,"max_delay":20,"depth":5,"depth_slide":0,"depth_slide_shape":1,"depth_slide_curve":0,"decay":2,"decay_slide":0,"decay_slide_shape":1,"decay_slide_curve":0,"feedback":0,"feedback_slide":0,"feedback_slide_shape":1,"feedback_slide_curve":0,"invert_flange":0},"user_facing":true,"is_synth":false},"fx_eq":{"name":"EQ","synth_name":"fx_eq","prefix":"sonic-pi-","doc":"Basic parametric EQ","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"low_shelf":0,"low_shelf_slide":0,"low_shelf_slide_shape":1,"low_shelf_slide_curve":0,"low_shelf_note":43.349957,"low_shelf_note_slide":0,"low_shelf_note_slide_shape":1,"low_shelf_note_slide_curve":0,"low_shelf_slope":1,"low_shelf_slope_slide":0,"low_shelf_slope_slide_shape":1,"low_shelf_slope_slide_curve":0,"low":0,"low_slide":0,"low_slide_shape":1,"low_slide_curve":0,"low_note":59.2130948,"low_note_slide":0,"low_note_slide_shape":1,"low_note_slide_curve":0,"low_q":0.6,"low_q_slide":0,"low_q_slide_shape":1,"low_q_slide_curve":0,"mid":0,"mid_slide":0,"mid_slide_shape":1,"mid_slide_curve":0,"mid_note":83.2130948,"mid_note_slide":0,"mid_note_slide_shape":1,"mid_note_slide_curve":0,"mid_q":0.6,"mid_q_slide":0,"mid_q_slide_shape":1,"mid_q_slide_curve":0,"high":0,"high_slide":0,"high_slide_shape":1,"high_slide_curve":0,"high_note":104.9013539,"high_note_slide":0,"high_note_slide_shape":1,"high_note_slide_curve":0,"high_q":0.6,"high_q_slide":0,"high_q_slide_shape":1,"high_q_slide_curve":0,"high_shelf":0,"high_shelf_slide":0,"high_shelf_slide_shape":1,"high_shelf_slide_curve":0,"high_shelf_note":114.2326448,"high_shelf_note_slide":0,"high_shelf_note_slide_shape":1,"high_shelf_note_slide_curve":0,"high_shelf_slope":1,"high_shelf_slope_slide":0,"high_shelf_slope_slide_shape":1,"high_shelf_slope_slide_curve":0},"user_facing":true,"is_synth":false},"fx_tremolo":{"name":"Tremolo","synth_name":"fx_tremolo","prefix":"sonic-pi-","doc":"Modulate the volume of the sound.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"phase":4,"phase_slide":0,"phase_slide_shape":1,"phase_slide_curve":0,"phase_offset":0,"wave":2,"invert_wave":0,"depth":0.5,"depth_slide":0,"depth_slide_shape":1,"depth_slide_curve":0},"user_facing":true,"is_synth":false},"fx_record":{"name":"Record","synth_name":"fx_record","prefix":"sonic-pi-","doc":"Recorder!","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"buffer":null},"user_facing":true,"is_synth":false},"fx_sound_out":{"name":"Sound Out","synth_name":"fx_sound_out","prefix":"sonic-pi-","doc":"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. ","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"output":1,"mode":0},"user_facing":true,"is_synth":false},"fx_sound_out_stereo":{"name":"Sound Out Stereo","synth_name":"fx_sound_out_stereo","prefix":"sonic-pi-","doc":"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. ","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"output":1,"mode":0},"user_facing":true,"is_synth":false},"fx_ping_pong":{"name":"Ping Pong Echo","synth_name":"fx_ping_pong","prefix":"sonic-pi-","doc":"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.\n\nNote: 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.","arg_defaults":{"amp":1,"amp_slide":0,"amp_slide_shape":1,"amp_slide_curve":0,"mix":1,"mix_slide":0,"mix_slide_shape":1,"mix_slide_curve":0,"pre_mix":1,"pre_mix_slide":0,"pre_mix_slide_shape":1,"pre_mix_slide_curve":0,"pre_amp":1,"pre_amp_slide":0,"pre_amp_slide_shape":1,"pre_amp_slide_curve":0,"phase":0.25,"phase_slide":0,"phase_slide_shape":1,"phase_slide_curve":0,"feedback":0.5,"feedback_slide":0,"feedback_slide_shape":1,"feedback_slide_curve":0,"max_phase":1,"pan_start":1},"user_facing":true,"is_synth":false},"__ref__":"d9c7a0e0fc3f5c06e3b5fa9da370b3fb58558df8"} \ No newline at end of file diff --git a/FoxDot/lib/ServerManager.py b/FoxDot/lib/ServerManager.py index eca0411f..fdd90cd9 100644 --- a/FoxDot/lib/ServerManager.py +++ b/FoxDot/lib/ServerManager.py @@ -531,7 +531,10 @@ def get_bundle(self, synthdef, packet, timestamp=0): this_bus = self.nextbusID() this_node = self.nextnodeID() - # synthdef.preprocess_osc(packet) # so far, just "balance" to multiply amp by 1 + try: + synthdef.preprocess_osc(packet) # so far, just "balance" to multiply amp by 1 + except: + pass # First node of the group (control rate)