Guest User

Untitled

a guest
Nov 23rd, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. desc: trigger - Sends a short trigger pulse when the gate opens
  2.  
  3. slider1:0<0,22000,10>HPF (Hz)
  4. slider2:22000<10,22000,10>LPF (Hz)
  5. slider3:0<0,1,1{-12,-24}>Slope (dB/oct)
  6. slider4:-20<-120,6,1>Threshold (dB)
  7. //slider5:1000<30,5000,1>pulse frequency (Hz)
  8. slider6:-3<-120,6,1>Dry (dB)
  9. slider7:-3<-120,6,1>Filtered (dB)
  10. slider8:-3<-120,6,1>Pulse (dB)
  11. slider9:200<0,1000,0.1>Hold (ms)
  12.  
  13. @init
  14.  
  15. // pdc
  16. pdc_delay = 64;
  17. pdc_bot_ch = 0;
  18. pdc_top_ch = 2;
  19.  
  20. in_buffer = 0; // starting position of the input buffer
  21. eq_buffer = 2 * pdc_delay; // starting position of the eq:ed buffer
  22. pulse_buffer = 4 * pdc_delay; // starting position of the pulse buffer
  23.  
  24. buf_pos = 0;
  25. last_pulse_pos = 0;
  26.  
  27. // precalculate sinus pulse
  28. pulse = 6 * pdc_delay; // starting position of the pulse waveform
  29. frequency = 1000; // in Hz
  30. fadeout_time = 20; // in ms
  31. fadeout_length = fadeout_time * srate / 1000; // in samples
  32. fadeout_length |= 0; // convert to integer
  33. i = 0;
  34. while (
  35. pulse[i] = sin(i * 2 * $pi * frequency / srate) * (fadeout_length - i) / fadeout_length;
  36. i += 1;
  37. i < fadeout_length;
  38. );
  39.  
  40. @slider
  41.  
  42. hpf_f0 = slider1;
  43. lpf_f0 = slider2;
  44. slider1 == 0 ? hpf_on = 0 : hpf_on = 1;
  45. slider2 == 22000 ? lpf_on = 0 : lpf_on = 1;
  46. db24_on = slider3;
  47.  
  48. threshold = 2 ^ (slider4 / 6);
  49.  
  50. slider6 == -120 ? dry_gain = 0 : dry_gain = 2 ^ (slider6 / 6);
  51. slider7 == -120 ? eq_gain = 0 : eq_gain = 2 ^ (slider7 / 6);
  52. slider8 == -120 ? pulse_gain = 0 : pulse_gain = 2 ^ (slider8 / 6);
  53. hold = slider9 * srate / 1000;
  54.  
  55.  
  56. @sample
  57.  
  58. in_buffer[buf_pos] = spl0; // save original samples for later
  59. in_buffer[buf_pos+1] = spl1;
  60.  
  61. // filter section
  62. eq_buffer[buf_pos] = spl0;
  63. eq_buffer[buf_pos + 1] = spl1;
  64.  
  65. spl0 = in_buffer[buf_pos] * dry_gain + eq_buffer[buf_pos] * eq_gain + pulse_buffer[buf_pos] * pulse_gain;
  66. spl1 = in_buffer[buf_pos + 1] * dry_gain + eq_buffer[buf_pos + 1] * eq_gain + pulse_buffer[buf_pos + 1] * pulse_gain;
  67. buf_pos < pdc_delay * 2 ? buf_pos += 2 : buf_pos = 0;
Add Comment
Please, Sign In to add comment