zettonaender / eqapotographiceq-gui

GUI version of https://github.com/zettonaender/convtographiceq
87 stars 3 forks source link

Few questions regarding the source #9

Open m1lhaus opened 1 year ago

m1lhaus commented 1 year ago

Hello @zettonaender,

I couldn't figure out how to PM you so I will ask here. I went though the code trying it understand it, but I have few questions.

  1. What are the modifications to Benchmark.exe? Why you need them in the first place?
  2. Why do you use dirac to compute impulse response to then take only amplitude freq. response instead of using linear sweep built in vanilla Benchmark.exe (https://sourceforge.net/p/equalizerapo/discussion/general/thread/959858fb/)?
  3. Why does sample rate matter? Is it just to get correct output from Benchmark? (I don't know how does Benchmark.exe work internally so I am bit confused here).
  4. Why does device selection matter? It is either 'all' or one particular device. At least for PEACE. Is it different of EqualizerAPO?

I was thinking to rewrite the app in Qt to be more user friendly (including build to exe pipeline). Or at least tweak current implementation with few PR. I would like it to at least find Peace automatically, get rid of any manual copying and ideally get rid of any sample rate or device selection. Thx for any response

zettonaender commented 1 year ago
  1. I just modified the output format of Benchmark.exe since it always outputs a 16-bit PCM wav file (hardcoded in the source) to make it output 32-bit FP wav files. In case of clipped EQ filters (>0 dBFS) the 16-bit PCM output will give a broken result. Also, quantization artifacts starts to creep in below around -30 dBFS (jagged results). Using 32 bit FP fixes all this.

  2. Linear sine sweeps take longer to generate and compute (>10x longer depending on precision) and only necessary when noise is involved when measuring.

  3. In case of parametric EQ filters, sample rate doesn't matter. But I personally use mostly convolutional FIR filters which benchmark will only work with when the sample rate match. So if you can detect if no convolution filter is used, you may get rid of the sample rate settings.

  4. I haven't used PEACE in a while, but I use the device selection a lot in vanilla Equalizer APO for many devices (Bluetooth, Wired, Microphone, etc.). Since vanilla Equalizer APO also support VST plugins, some user may also use it for their microphones. I believe PEACE isn't particularly optimized for these use cases.

If you want to, you could make the user choose between PEACE mode and vanilla mode, with PEACE mode being simplified (no device selection and sample rate).