Idea for a module: Buffer with automatable playhead

A "Scrubbing Delay" · Issue #632 · surge-synthesizer/surge-rack · GitHub if you are a GitHub issues following type of person.

Oh yeah! That would be super cool!

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.

Yeah having scale be tempo sync would be great. All the other surge modules can do that

Basically a 1v/quarter note scrubber

Interesting

So it seems you have all the technology ready to go, that’s super cool.

1v/quarter note might be a good way to do it and could leave the module with just a tempo sync and a CV in (and stereo in and out of course).

THen this is the module you’re looking for:

2 Likes

Yes, this it basically it. But I think it has a poor resolution, and I’m not sure how the size is handled, should check that one out again.

PdArray is open source, so you can start adding all the features you need.

1 Like

Yeah… I can’t code, though… :slight_smile: but this thing is pretty nice except for the poor audio quality due to it’s low resolution.

OT: From my perspective, I find it more interesting to maipuate the speed directly. Here’s another video:

Maybe use the smooth output.

PdArray can handle up to 999999 samples, that’s about 22 second at a sampling rate of 44.1 kHz.

1 Like

Hm… just tried that… but it sounds like shit*… it is a really cool module, but somehow handles audio very poorly.

*sorry for the rough language - it sounds like a much lower resolution is a more accurate description. :smiley:

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 :joy:.

1 Like

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.

2 Likes

You mean put it into PdArray? That could be pretty cool, too.

The aproach of PdArray with the REC head being controlled by CV is also interesting… so when you drive it with a synced ramp it’s perfectly synced, too. It also records in really bad quality, though.

nah i mean bang out the surge module from the bits we have and see what happens.

Or that, even better :slight_smile:

Oh no!

As I started developing my Tape Recoder module, I played around with direct positioning of the playhead, but I left that idea beside mostly because I would need the CV value as a doube instead of a float to go beyond the limit of about 6 minutes.

This thread here reminds me on all my considerations about implementing a direct positioning of the playhead on an audio buffer and why I came to the conclusion not to control the playhead directly but instead to control the tape speed by CV.

And as I recently made that series of short videos, I found that noodling 'round with the tape speed is much more fun than noodling 'round with the playhead position.

Back to the topic: There are at least 3 VSTs that seem to do the job very well, and such a VST could be integrated by the (not free) VCV Host module.