You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.7KB

  1. import("stdfaust.lib");
  2. import("rack.lib");
  3. frenchBell_ui = pm.frenchBell(strikePosition,strikeCutoff,strikeSharpness,gain,gate)
  4. with {
  5. strikePosition = nentry("v:frenchBell/[0]strikePosition", 0,0,4,1);
  6. strikeCutoff = hslider("v:frenchBell/[1]strikeCutOff", 6500,20,20000,1);
  7. strikeSharpness = hslider("v:frenchBell/[2]strikeSharpness", 0.5,0.01,5,0.01);
  8. // Connection with VCV knob and switch
  9. gain = hslider("v:frenchBell/[3]gain [knob:1]",1,0,1,0.01);
  10. gate = button("v:frenchBell/[4]gate [switch:1]");
  11. };
  12. freeverb_demo = _,_ <: (*(g)*fixedgain,*(g)*fixedgain :
  13. re.stereo_freeverb(combfeed, allpassfeed, damping, spatSpread)),
  14. *(1-g), *(1-g) :> _,_
  15. with{
  16. scaleroom = 0.28;
  17. offsetroom = 0.7;
  18. allpassfeed = 0.5;
  19. scaledamp = 0.4;
  20. fixedgain = 0.1;
  21. origSR = 44100;
  22. parameters(x) = hgroup("Freeverb",x);
  23. knobGroup(x) = parameters(vgroup("[0]",x));
  24. // Connection with VCV knobs
  25. damping = knobGroup(vslider("[0] Damp [knob:2] [style: knob] [tooltip: Somehow control the
  26. density of the reverb.]",0.5, 0, 1, 0.025)*scaledamp*origSR/ma.SR);
  27. combfeed = knobGroup(vslider("[1] RoomSize [knob:3] [style: knob] [tooltip: The room size
  28. between 0 and 1 with 1 for the largest room.]", 0.5, 0, 1, 0.025)*scaleroom*
  29. origSR/ma.SR + offsetroom);
  30. spatSpread = knobGroup(vslider("[2] Stereo Spread [knob:4] [style: knob] [tooltip: Spatial
  31. spread between 0 and 1 with 1 for maximum spread.]",0.5,0,1,0.01)*46*ma.SR/origSR
  32. : int);
  33. g = parameters(vslider("[1] Wet [knob:5] [tooltip: The amount of reverb applied to the signal
  34. between 0 and 1 with 1 for the maximum amount of reverb.]", 0.3333, 0, 1, 0.025));
  35. };
  36. process = frenchBell_ui <: freeverb_demo;