General approach for making "infinite hold" patches in SpinCAD

Digital Larry

Active member
Here I show it with the MN3011 multi tap delay block. Assume for starters that you can put a full amplitude signal into the block in the loop without distortion. This is not always accurate. Also assume that the gain from input to output in the feedback path is 1.0. Most or all of the delay blocks now have external feedback insertion points, however none of the reverb blocks do, so you'll have to add a mixer in front and adjust the gains accordingly. If I ever open the code up again to work on it I might add a reverb block with an external feedback pin.

Notice how I have added a clip control. It stays at 1.0 for POT range 0-0.9 then goes linearly to zero. This turns off the input to the delay. This is inverted by the control invert block and stays at (perhaps near) 0 for POT range 0-0.9 then goes linearly to one. This controls the feedback loop gain.

In practice, a reverb block may distort if you give it a full scale input as it has its own internal feedback loops etc. In such a case then you would want to reduce the input level and then possibly boost it coming out. The "FB In" half of the loop blocks has adjustable gain which you could try. Also as I mentioned in the other thread, you can put a limiter somewhere in the feedback loop to keep things under control.

Now I have to warn you, if you are playing with high levels of feedback you can blow your ears out, or speakers, or in extreme cases level your entire neighborhood. So exercise appropriate caution.

DL

[edit - due to bug discovered just now in clip control, above has been revised and new screenshot attached here. Get Version 0.98-1036 or later.]

MN3011-infinite-loop.png
 
Last edited:
am I understanding the Clip functions as being so that you can remove what’s being held and latch on the new input? Either controlled by turning the knob, or tilting a footswitch to this pot input?
 
Here's another way to approach it. For testing I connect the control signals to the output pins so I can visualize what they are doing when I sweep the pot back and forth. One of the signals doesn't quite go down as far as the other (simulators output is log vertical scale).

clip-invert.png
 
am I understanding the Clip functions as being so that you can remove what’s being held and latch on the new input? Either controlled by turning the knob, or tilting a footswitch to this pot input?
The real idea behind using the clip input would be to use the pot control to adjust "something else" but in the last 10% of the sweep turn one thing down and the other thing up. When one thing is the input and the other thing is the feedback, with careful attention to gains you can make an infinite hold. And then when you move the pot back down, the feedback goes down and the input level comes up again.

If you are just using a footswitch on the pot input, then forget about the clip control and just use a control invert to flip the control signal.

[Edit: you might want to use a control smoother, although supposedly the pot inputs are smoothed already].

Control invert maps 0 - 1 to 1 - 0. y = (1 - x)
Phase invert (under I/O - Mix) multiplies by -1. y = -x
 
Last edited:
Thanks for this Larry! I'm having so much fun jamming with this patch !! ... random question is there a way to smooth the pot controlling delay time without affecting the pitch? I thought of adding an Lp filter but that didn't work, btw I'm trying your trick with the ThreeTap block.
 
Thanks for this Larry! I'm having so much fun jamming with this patch !! ... random question is there a way to smooth the pot controlling delay time without affecting the pitch? I thought of adding an Lp filter but that didn't work, btw I'm trying your trick with the ThreeTap block.
I don't have any delay blocks that allow changing the delay time using fade-up/fade-down when the time changes. I have done that on some commercial projects but it was their code and I've been diligent not to mix the 2. Now if someone else comes up with one independently I could make a block using it. You have to watch the pot value and apply some hysteresis to it so that it has to change by a certain amount before you do anything, otherwise it will always be responding to noise.
 
I have a working patch for the footswitch type, I could share if anyone’s interested. The reverb comes from an infinite hold patch + pitch shift patch on the spin semi site. I have pot0 set to control the fade out time she. You release the footswitch.

Different project from what DL is sharing, so not to distract from this
 
I have a working patch for the footswitch type, I could share if anyone’s interested. The reverb comes from an infinite hold patch + pitch shift patch on the spin semi site. I have pot0 set to control the fade out time she. You release the footswitch.

Different project from what DL is sharing, so not to distract from this
I'd be def interested but does requires me to have a specific foot switch?
 
Was thinking of making a new build with an extra foot switch for tap tempo and stuff like that, was wondering if I could program a microcontroller and do all of these features with midi or smth instead of wasting fv-1 instructions
 
Here I show it with the MN3011 multi tap delay block. Assume for starters that you can put a full amplitude signal into the block in the loop without distortion. This is not always accurate. Also assume that the gain from input to output in the feedback path is 1.0. Most or all of the delay blocks now have external feedback insertion points, however none of the reverb blocks do, so you'll have to add a mixer in front and adjust the gains accordingly. If I ever open the code up again to work on it I might add a reverb block with an external feedback pin.

Notice how I have added a clip control. It stays at 1.0 for POT range 0-0.9 then goes linearly to zero. This turns off the input to the delay. This is inverted by the control invert block and stays at (perhaps near) 0 for POT range 0-0.9 then goes linearly to one. This controls the feedback loop gain.

In practice, a reverb block may distort if you give it a full scale input as it has its own internal feedback loops etc. In such a case then you would want to reduce the input level and then possibly boost it coming out. The "FB In" half of the loop blocks has adjustable gain which you could try. Also as I mentioned in the other thread, you can put a limiter somewhere in the feedback loop to keep things under control.

Now I have to warn you, if you are playing with high levels of feedback you can blow your ears out, or speakers, or in extreme cases level your entire neighborhood. So exercise appropriate caution.

DL

[edit - due to bug discovered just now in clip control, above has been revised and new screenshot attached here.]

View attachment 69345
Thanks Larry! I tried to insert a FB loop with a Reverb block some time ago but it was difficult to me to control it properly.
I will surely try to adjust my project following your example.
Here's the old patch screenshot.
 

Attachments

  • Screenshot 2024-02-26 alle 11.05.47.png
    Screenshot 2024-02-26 alle 11.05.47.png
    333.6 KB · Views: 4
Was thinking of making a new build with an extra foot switch for tap tempo and stuff like that, was wondering if I could program a microcontroller and do all of these features with midi or smth instead of wasting fv-1 instructions
that’s definitely an option, tap tempo especially takes up a lot of instructions. You’d either have to use a 3.3V micro, or a resistor voltage divider if the micro is 5V.

I posted working tap tempo code here (all within the fv1), I’m not sure if many people have seen it.

 
I'd be def interested but does requires me to have a specific foot switch?
Here is my version of the infinite footswitch code. It may be a bit convoluted, since I took the spin semi patch and edited from there.

The footswitch should be momentary, wired something like the attached picture. Or, the same tap switch circuit I posted for the tap tempo thread also works.
 

Attachments

  • 2. Footswitch Hold - share on pedalpcb 2.27.2024.txt
    3.8 KB · Views: 4
  • Footswitch wiring.JPG
    Footswitch wiring.JPG
    7.8 KB · Views: 6
Back
Top