probonopd/MiniDexed

Reverb time depends on the sample rate

Banana71 opened this issue · 3 comments

I wanted to improve the latency of the miniDexed and experimented with the SampleRate and ChunkSize in the miniDexed.ini. I noticed that the ReverbTime behaves anti-proportionally to the SampleRate.

Is it possible to change the programming so that the reverb time is independent of the sample rate or should we just document the behavior?

Why all this: I noticed an audible latency between the miniDexed and the Roland RD-300 for sounds with a short attack time. With the following values, the latency can no longer be determined and even a Raspberry Pi 2 runs stable:
SampleRate=48000 (default)
ChunkSize=128 (default 256)

With a sample rate of 96000, the latency is measurably better but the reverb time is halved.

Good observation! In other words, you are saying that we need to adjust the reverb time like this?

AdjustedReverbTime = DesiredReverbTime * correctionFactor

correctionFactor = SampleRate / DefaultSampleRate

where:

  • AdjustedReverbTime is the reverb time value adjusted for the new sample rate
  • DesiredReverbTime is the desired reverb time
  • SampleRate is the sample rate defined by the user
  • DefaultSampleRate is the default sample rate (48000)

@Banana71 can you confirm the above? Then we could go about implementing it.

AdjustedReverbTime = DesiredReverbTime * correctionFactor

correctionFactor = SampleRate / DefaultSampleRate

The formula describes the correct solution approach.

But the code for the reverb effect already works with a sample rate. Is the code in the effect incorrect? Are the variables not assigned correctly? What sample rate is mentioned in the code for the effect?

search for Samplerate:
Samplerate