Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- desc: trigger - Sends a short trigger pulse when the gate opens
- slider1:0<0,22000,10>HPF (Hz)
- slider2:22000<10,22000,10>LPF (Hz)
- slider3:0<0,1,1{-12,-24}>Slope (dB/oct)
- slider4:-20<-120,6,1>Threshold (dB)
- //slider5:1000<30,5000,1>pulse frequency (Hz)
- slider6:-3<-120,6,1>Dry (dB)
- slider7:-3<-120,6,1>Filtered (dB)
- slider8:-3<-120,6,1>Pulse (dB)
- slider9:200<0,1000,0.1>Hold (ms)
- @init
- // pdc
- pdc_delay = 64;
- pdc_bot_ch = 0;
- pdc_top_ch = 2;
- in_buffer = 0; // starting position of the input buffer
- eq_buffer = 2 * pdc_delay; // starting position of the eq:ed buffer
- pulse_buffer = 4 * pdc_delay; // starting position of the pulse buffer
- buf_pos = 0;
- last_pulse_pos = 0;
- // precalculate sinus pulse
- pulse = 6 * pdc_delay; // starting position of the pulse waveform
- frequency = 1000; // in Hz
- fadeout_time = 20; // in ms
- fadeout_length = fadeout_time * srate / 1000; // in samples
- fadeout_length |= 0; // convert to integer
- i = 0;
- while (
- pulse[i] = sin(i * 2 * $pi * frequency / srate) * (fadeout_length - i) / fadeout_length;
- i += 1;
- i < fadeout_length;
- );
- @slider
- hpf_f0 = slider1;
- lpf_f0 = slider2;
- slider1 == 0 ? hpf_on = 0 : hpf_on = 1;
- slider2 == 22000 ? lpf_on = 0 : lpf_on = 1;
- db24_on = slider3;
- threshold = 2 ^ (slider4 / 6);
- slider6 == -120 ? dry_gain = 0 : dry_gain = 2 ^ (slider6 / 6);
- slider7 == -120 ? eq_gain = 0 : eq_gain = 2 ^ (slider7 / 6);
- slider8 == -120 ? pulse_gain = 0 : pulse_gain = 2 ^ (slider8 / 6);
- hold = slider9 * srate / 1000;
- @sample
- in_buffer[buf_pos] = spl0; // save original samples for later
- in_buffer[buf_pos+1] = spl1;
- // filter section
- eq_buffer[buf_pos] = spl0;
- eq_buffer[buf_pos + 1] = spl1;
- spl0 = in_buffer[buf_pos] * dry_gain + eq_buffer[buf_pos] * eq_gain + pulse_buffer[buf_pos] * pulse_gain;
- spl1 = in_buffer[buf_pos + 1] * dry_gain + eq_buffer[buf_pos + 1] * eq_gain + pulse_buffer[buf_pos + 1] * pulse_gain;
- buf_pos < pdc_delay * 2 ? buf_pos += 2 : buf_pos = 0;
Add Comment
Please, Sign In to add comment