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.

47 lines
1.7KB

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