Simple regenerating delay-line + filter.

in RTcmix/insts/jg

quick syntax:

JDELAY(outsk, insk, dur, AMP, DELAYTIME, FEEDBACK, ringdowndur, FILTFREQ, SIGMIX[, inputchan, PAN, prefadesend, dcblock])

CAPITALIZED parameters are pfield-enabled for table or dynamic control (see the maketable or makeconnection scorefile commands). Parameters after the [bracket] are optional and default to 0 unless otherwise noted.

Param Field Parameter Units Dynamic Optional Notes
p0 output start time seconds no no  
p1 input start time seconds no no  
p2 input duration seconds no no  
p3 amplitude multiplier relative multiplier of input signal yes no  
p4 delay time seconds yes no  
p5 delay feedback regeneration multiplier, 0-1 yes no  
p6 ring-down duration seconds no no  
p7 cutoff freq for low-pass filter Hz, 0 to disable filter yes no  
p8 wet/dry mix 0: dry, 1: wet yes no  
p9 input channel number - no yes default: 0
p10 pan 0-1 stereo; 0.5 is middle yes yes default: 0
p11 pre-fader send 0: no, 1: yes no yes default: no
p12 apply DC blocking filter 0: no, 1: yes no yes default: yes

Parameters labled as Dynamic can receive dynamic updates from a table or real-time control source.

Author: John Gibson, 6/23/99; rev for v4, 7/21/04

JDELAY instantiates a regenerating delay, similar to DELAY.

Usage Notes

The differences between JDELAY and DELAY are:

JDELAY can produce mono or stereo output.

Sample Scores

very basic:

   rtsetparams(44100, 1)


    JDELAY(0, 0, 4.3, 1.0, 0.35, 0.7, 5.0, 0, 1)

slightly more advanced:

   rtsetparams(44100, 2)
   outskip = 0
   inskip = 0
   indur = DUR()
   amp = 1.0
   deltime = 1/cpspch(7.02)
   feedback = .990
   ringdur = 1
   percent_wet = 0.5
   prefadersend = 0  // if 0, sound stops abruptly; else env spans indur + ringdur
   env = maketable("line", 1000, 0,0, 1,1, 6,1, 10,0)
   cutoff = 4000
   JDELAY(outskip, inskip, indur, amp*env, deltime, feedback, ringdur,
      cutoff, percent_wet, inchan=0, pan=0.5, prefadersend)