Right. So read = write - (cv * scale) is a simple approach to do that where basically you knock the underkying saw off of current with cv but you don’t have to pump with a time phasor
The reason it is hard with delays is mostly because they smooth cv and also extoress delay in time usually with an exponential scaling. Here you just want linear scrubbing
I think it would be really cool to have it this way.
You could for example run a basic step sequencer into the CV, and it would be like you chopped up and rearranged the buffer. And do loads of things like backward-forward scratches, slowdowns etc… and all easily precisely controlled.
have you tried surge xt? We have 2 delays in there - a regular digital delay but also a “tuned delay” which I put together for physical modeling usages. but they all have the same internal line
I think that tuned delay panel is exactly what you want. Stereo in and out; Single CV; and then a couple of range knobs. Or maybe a pair of CV in and pair of range knobs. The trick is, unlike the tuned delay, it would be monophonic and the CV would be interpreted as linear delay not v/oct.
We’ve frozen XT for the first release now but lemme open an issue pointing to this thread and if no-one else comes up with a better idea, maybe we can add a third delay in a future release.
I haven’t tried the tuned delay yet, need to check that out.
In addition to the CV being interpreted as linear offset, the buffer size (or the internal CV scaling - same difference) should be adjustable in bars of a given tempo, so that the buffer can be navigated in a controlled rhythmic manner easily.
I’ll try to summarize it again for the Github issue.
It somehow doesn’t sound as bad in your video as in my test, but still quite lofi. You probably loaded in a wav, so that seems to work a bit better than recording into it.
edit: yes, with a wav loaded up it’s much better, still producing artefacts, but usable.
I find this all very interesting. I once tried to make a reverse echo effect using some of these techniques. Record - reverse - add echo(delay) -reverse - play. But it sounded really bad .
Yes, it sounds lo-fi because there’s no interpolation between samples. This could be added easily to the code. But there’s a lot more to do to prevent clicks an pops when the playhead jumps from one position to another. And with the resolution of CV values used in VCV Rack it is only possible to use a buffer up to approx max 6 minutes at 44.1 kHz.
But if you use this technique to produce rhythmic glitches, I think sound quality is not so important.
A minute of buffer would already be plenty, so that’s perfectly fine. Sound quality is always very important, though. (of course lofi can be cool, too, sometimes)
yeah i have a good SSE-coded interpolating delay line kicking around which is why i think this is pretty easy. A smoothing technique for jumps is indeed one of the interesting problems but our line already does pretty well with a interpolate-at-1.5-speed traversal and stuff. backwards will be harder. I wonder if it will work!
you are kinda making me want to code it up and find out and leave it on a branch. LOL.