HACKER Q&A
📣 ztftrue

How to choose the correct Q value for the EQ peak filter?


I developed a music player https://github.com/ZTFtrue/MonsterMusic. But there has a question for me.

I am a novice at developing music equalizers.

I am using a BiQuad Peak Filter from this site: BiQuadDesigner However, I encounter noise when I set some band gains to 13 dB and Q to 1 (I've tested other values as well).

I have noticed that some software can use these values without producing noise, such as Webamp.

I have read other articles to learn how to set Q, but they haven't helped.

Currently, I am using normalization to avoid noise.

``` sampleBufferRealLeft.forEachIndexed { index, it -> var outY: Double = it mCoefficientLeftBiQuad.forEach { filter -> outY = filter.filter(outY) } leftMax = FastMath.max(leftMax, FastMath.abs(outY)) sampleBufferRealLeft[index] = outY } if (leftMax > 1.0) { sampleBufferRealLeft.forEachIndexed { index, it -> sampleBufferRealLeft[index] = it / leftMax } } ```

`leftMax` is the maximum value of all frames processed, which helps avoid noise in a song.


  👤 ztftrue Accepted Answer ✓