Looper example on Patch

I just got the Patch in the mail and immediately went to work adapting the looper in the pod examples to work with the Patch controls. So much fun!

I made it into a sort of punch-in dub looper. I thought I should see if it made sense to put it into the examples.

The current master branch could be considered a simple adaptation for the examples. It’s 98% the same code.

5 Likes

Would love to see it in action. :slight_smile: Maybe a youtube video? How do you like the overall performance e.g. latency and sound?

How long is the looping time?


here’s the max time
1 Like

There are no performance, sound, or latency problems at all

2 Likes

Oh!, I missed that. Thank you!

1 Like

@shensley I was wondering about the max sample length here …

If we have a total RAM Size of 64MB so 67108864 byte and a float has 4 byte, we get 16777216 / 48000 = 349.525333333 sec of sample time.

Wouldn’t it be possible to capture the raw input in 16bit and get double the sample length here? Then convert to float when reading the values stored in RAM? Or is that too slow?

Yeah, that approach could definitely work. I’ve actually done similar stuff to squeeze longer delays on boards with a lot less RAM.

just a quick daisy::f2s16() before writing to a delayline, and then daisy::s162f() would do the trick. The daisysp DelayLine class is a template so you can easily just change any existing delay lines to a 16-bit int type (i.e. int16_t, short, etc.) and you should be good to go.

2 Likes

You could go full lofi and borrow uLAW encoding from the Clouds sources!

2 Likes

Thank you for your response! That looks great - I will try that!