ReverbSc at 96KHz is failing to initialize

I am having trouble getting ReverbSc to initialize/run when I have my sample rate set to 96KHz (which I’m using to reduce the noise).

I have read through this post and tried the resolutions offered in there (I am in C++, not Arduino like the post)

  • Redefining DSY_REVERBSC_MAX_SIZE to large numbers, all the way up to 791488
  • Statically defining my ReverbSc object in DSY_SDRAM_BSS

No matter what I have tried, I always get a ‘1’ returned from the Init() function and the application ends up freezing. Any suggestions/help is greatly appreciated!

1 Like

same here. is there any solution?
I’m using the versio hardware.

ok found it:
in the reverbsc.cpp file the way the coefficients are calculated is wrong and hardcoded on 48k.
if you change the line:
#define DEFAULT_SRATE 48000.0 to #define DEFAULT_SRATE 96000.0
and compile all again it should work!

cheers!

EDIT: This is not a good solution. In my next project I can’t get it to work…
Someone an idea on what we can do about it?

2 Likes

So btw. is there any decent reverb (besides hthe reverbsc… from 1999…) in the whole daisy lib… I really don’t wanna code my own reverb (I feel how I’m getting old while trying to prototype something on the daisy)…

I honestly haven’t played with it much for awhile so I can’t really say. Sorry!

1 Like

I’m struggling with this now… It looks like one out of 5 builds it actually works with 96khz without any messing arround in the code from the libs. And it really is 96k, because the sound is noticeably better. But then if you reset it it stops working again. So the device is definitely capable of doing it at 96khz but there is some other issue somewhere…

Hi kalata,

I’m sorry to hear about this problem. This was opened as an issue on GitHub several months ago and we hope to address it very soon. Thank you for your wait.

1 Like

Thanks for clarifying. It looks like something is producing undefined result. When it works on 96khz, sometimes the ADC doesn’t work, but other times it works. And init always returns 1 at 96khz, even if it works. At 48k or less it always returns 0. I thought there could be some variable that is overflowing at 96khz or something like that.

Well, actually it appears to work fine with
#define DSY_REVERBSC_MAX_SIZE 395744
The problem was I forgot to rebuild everything after I change something in the other files. I multiplied the original number by 4, but I guess the exact value is not important as long as it’s enough. Multiplied by 2 didn’t work though

Thank you for the additional details. It sounds like unpredictable things occur at 96kHz.
We’ll look into it deeper and keep you all posted. Thanks again for the wait.