DIYstompboxes.com

DIY Stompboxes => Digital & DSP => Topic started by: Digital Larry on September 24, 2022, 10:47:47 AM

Title: Interactively designing a digital reverb in SpinCAD Designer
Post by: 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 (http://spinsemi.com/programs.php) 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!

Title: Re: Interactively designing a digital reverb in SpinCAD Designer
Post by: Vivek on September 24, 2022, 11:56:08 AM
Wow, Great !!!

I need a good, small reverb for my current project.
Title: Re: Interactively designing a digital reverb in SpinCAD Designer
Post by: Ice-9 on September 24, 2022, 12:05:33 PM
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'.

Title: Re: Interactively designing a digital reverb in SpinCAD Designer
Post by: 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.



DL once experimented with 3-4-5 reverb
Title: Re: Interactively designing a digital reverb in SpinCAD Designer
Post by: Digital Larry on September 24, 2022, 02:38:18 PM
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
Title: Re: Interactively designing a digital reverb in SpinCAD Designer
Post by: 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!...
Title: Re: Interactively designing a digital reverb in SpinCAD Designer
Post by: Vivek on September 24, 2022, 04:31:14 PM
MN3011 was tapped at
396
662
1194
1726
2790
3328
Title: Re: Interactively designing a digital reverb in SpinCAD Designer
Post by: Digital Larry on September 24, 2022, 04:34:01 PM
Wolfram Alpha to the rescue!  Some common factors 1, 2, 3, 9.

https://www.wolframalpha.com/input?i2d=true&i=common+factors+of+396+662+1194+1726+2790+3328

Title: Re: Interactively designing a digital reverb in SpinCAD Designer
Post by: 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
...


Title: Re: Interactively designing a digital reverb in SpinCAD Designer
Post by: Cybercow on September 25, 2022, 12:45:23 PM
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 (http://spinsemi.com/programs.php) 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.
Title: Re: Interactively designing a digital reverb in SpinCAD Designer
Post by: Digital Larry on September 25, 2022, 01:37:11 PM
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
Title: Re: Interactively designing a digital reverb in SpinCAD Designer
Post by: niektb on September 26, 2022, 04:41:11 AM
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. 
Title: Re: Interactively designing a digital reverb in SpinCAD Designer
Post by: Rob Strand on September 26, 2022, 07:38:46 PM
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.
Title: Re: Interactively designing a digital reverb in SpinCAD Designer
Post by: cordobes on October 30, 2023, 05:52:00 PM
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.