Interactively designing a digital reverb in SpinCAD Designer

Started by Digital Larry, September 24, 2022, 10:47:47 AM

Previous topic - Next topic

Digital Larry

If you want "the best" digital reverb code for the FV-1, I suggest that you search out the code examples supplied by Spin themselves.  However, one very interesting patch is the "mini reverb" which accomplishes a stereo reverb in only 22 instructions.  This gives you plenty of room to do other things while still having a reverby sound available. 

For years I have looked at the delay line lengths and all-pass lengths and coefficients in every example I could find and just thought of them as "magic numbers" as I could not find any objective strategy for determining them.

Auditioning different combinations via trial and error with Spin ASM is very time consuming as you would need to come up with up to 8 different settings, make 8 different files, build them and upload them to the chip, audition them and take some notes, then try to figure out where to go from there.

I've come up with a block in SpinCAD (version currently unreleased) that lets you adjust nearly everything in the small reverb and audition it immediately without writing code and without having to burn it into a chip.  I think you will find this interesting.  I sure did!

Digital Larry
Want to quickly design your own effects patches for the Spin FV-1 DSP chip?
https://github.com/HolyCityAudio/SpinCAD-Designer

Vivek

Wow, Great !!!

I need a good, small reverb for my current project.

Ice-9

I think what everyone needs to remember about those "magic Numbers". The FV-1 reverbs are very much down to the knowledge of Keith Barr who was the reverb expert behind most of the Alesis reverb gear. So while we can ask why those numbers?  I just think he knew what worked.

Great step forward DL in making a block where you can change all these numbers and test easily. :)

I would suggest also trying numbers that fit with the 'fibonacci sequence'.

www.stanleyfx.co.uk

Sanity: doing the same thing over and over again and expecting the same result. Mick Taylor

Please at least have 1 forum post before sending me a PM demanding something.

Vivek

Suppose the idea is that no repeat output from a delay line should match the output of another delay line

And Fibonacci series is 2,3,5,8...

4th repeat of 2ms delay line will superimpose on 8ms line's output

5th repeat of 3ms delay line will superimpose on 3rd repeat of 5ms delay line.



DL once experimented with 3-4-5 reverb

Digital Larry

There is some clue in the (ancient) literature but it seems more like rule-of-thumb than a specific scientific conclusion. 3-4-5 was a suggestion from one of the Kadenze courses I took but that was parallel comb filters rather than a reverb ring or all-pass chain.

DL
Digital Larry
Want to quickly design your own effects patches for the Spin FV-1 DSP chip?
https://github.com/HolyCityAudio/SpinCAD-Designer

ElectricDruid

Quote from: Vivek on September 24, 2022, 02:27:57 PM
Suppose the idea is that no repeat output from a delay line should match the output of another delay line

And Fibonacci series is 2,3,5,8...

4th repeat of 2ms delay line will superimpose on 8ms line's output

5th repeat of 3ms delay line will superimpose on 3rd repeat of 5ms delay line.

We'd be looking for prime numbers, not Fibonacci. Wasn't that what the MN3011 did? I never bothered to check, but I had the idea the taps on that were at prime ratios of the overall length.

Damnit, now I'm probably going to have to go and find out!...

Vivek


Digital Larry

Digital Larry
Want to quickly design your own effects patches for the Spin FV-1 DSP chip?
https://github.com/HolyCityAudio/SpinCAD-Designer

Vivek

Is there an easy online way to plot series like

396,1
396x2,1
396x3,1
....


Along with
662,1
662x2,1
662x3,1
...



Cybercow

Quote from: Digital Larry on September 24, 2022, 10:47:47 AM
If you want "the best" digital reverb code for the FV-1, I suggest that you search out the code examples supplied by Spin themselves.  However, one very interesting patch is the "mini reverb" which accomplishes a stereo reverb in only 22 instructions.  This gives you plenty of room to do other things while still having a reverby sound available. 

For years I have looked at the delay line lengths and all-pass lengths and coefficients in every example I could find and just thought of them as "magic numbers" as I could not find any objective strategy for determining them.

Auditioning different combinations via trial and error with Spin ASM is very time consuming as you would need to come up with up to 8 different settings, make 8 different files, build them and upload them to the chip, audition them and take some notes, then try to figure out where to go from there.

I've come up with a block in SpinCAD (version currently unreleased) that lets you adjust nearly everything in the small reverb and audition it immediately without writing code and without having to burn it into a chip.  Even if you don't want to subscribe to my pay site I think you will find this interesting.  I sure did!



Does this imply there will be a fresh release of SpinCAD Designer soon? Digging these new verb and delay blocks you're working on.
Cybercow (moo)
Don't let your talent take you where your character cannot keep you.

Digital Larry

Quote from: Cybercow on September 25, 2022, 12:45:23 PM
Does this imply there will be a fresh release of SpinCAD Designer soon? Digging these new verb and delay blocks you're working on.
Why yes it does in fact Mr. Cow!  It's scheduled for next week and at the moment it's only for subscribers. Part of that is down to me forgetting how to check things into Github, and the fact that the current state of the code (several things in half-baked form) is not suitable for a full release.

Thanks,

DL
Digital Larry
Want to quickly design your own effects patches for the Spin FV-1 DSP chip?
https://github.com/HolyCityAudio/SpinCAD-Designer

niektb

Quote from: ElectricDruid on September 24, 2022, 03:21:25 PM
Quote from: Vivek on September 24, 2022, 02:27:57 PM
Suppose the idea is that no repeat output from a delay line should match the output of another delay line

And Fibonacci series is 2,3,5,8...

4th repeat of 2ms delay line will superimpose on 8ms line's output

5th repeat of 3ms delay line will superimpose on 3rd repeat of 5ms delay line.

We'd be looking for prime numbers, not Fibonacci. Wasn't that what the MN3011 did? I never bothered to check, but I had the idea the taps on that were at prime ratios of the overall length.

Damnit, now I'm probably going to have to go and find out!...

I think prime numbers are what you use when you're not using all-passes but a short multi-tapped delay as diffusion stage. Cause in the latter case you want as much uncorrelated echoes as possible. 

Rob Strand

Quote from: Vivek on September 24, 2022, 05:24:56 PM
Is there an easy online way to plot series like

396,1
396x2,1
396x3,1
....


Along with
662,1
662x2,1
662x3,1
...
You don't always feed back  *all* the taps.  For example the example reverb in the old MN3011 datasheet only feeds  back the last tap.   

https://www.experimentalistsanonymous.com/diy/Datasheets/MN3011.pdf

IIRC the old ETI magazine circuit used different tap to feedback but I was fairly certain there was on error on the schematic (something very common from that era of ETI) and the actual schematic is probably the same as the Panasonic example. 

If you feed back the sum of m taps then you might drop the feedback level by a factor of 1/m to stop the feedback loop oscillating but then the strength of the feedback from longest delay will be lower and it will decay earlier.

I'm only talking in very broad large-scaled terms here.  There's plenty of papers dealing with analysing this stuff more formally.
Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.

cordobes

Sorry to resurrect this thread.

Regarding coefficients, Keith Barr was the last great hero when it comes to seeking perfection in an algorithm. I rescue some important reflections that Barr himself commented:

"I really like 2AP, delay, 2AP, delay, in a loop. I try to set the delay to somewhere a bit less than the sum of the 2 preceding AP delays, which are of course much longer than the initial APs (before the loop).
Yeah, the big loop is great; you inject input everywhere, but take it out in only two places... It just keeps comin' new and fresh as the thing decays away. –If you've got the memory and processing!
Most coefficients would be 0.5, of course, and we had a few comments about how the reverbs had a 'building' effect due to APs with K=0.5"


The scheme he used can be easily found online. Apparently he had that general guideline regarding the total length of the delay, and the artisanal touch to finish adjusting them. Probably there is also some relevance with prime number ratios, as has been commented.

And all our yesterdays have lighted fools the way to dusty death.
Out, out, brief candle! Life's but a walking shadow.