[MOD] Better speaker quality for Poco X3 NFC/Pro

Search This thread

zettozoid

Member
Jan 14, 2022
20
40
Quickstart Guide:

Rooted:

1. Go to third page of the thread to download the V4A convolution wav file. Get the one named "pocotorchv12v6v7nophase.zip"
2. Copy the wav named "norm1torchv12v6v7nophase.wav" to Android/Data/com.pittvandewitt.viperfx/files/Kernel
3. Open Viper4Android, enable Master Limiter and Convolver. Set the convolver to the wav that was copied.

Non-Rooted:
1. Go to the same post and use the Graphic Equalizer with the attached preset.
2. Enable Channel balance set to -7.5 dB on both channel.

EDIT 9 (November 2023)
Added new preset pocotorchv12v6v7nophase.


Hey all, first post here. If I broke any rules please let me know.

Backstory (Skip Ahead):
So I've been using my Xiaomi phone for a while and it's really worth it for the price in my opinion. An issue I had was the 'tinny' speakers.

To remedy this, we need an anechoic measurement in order to actually "fix" the sound, not one measured indoors. We also need to get off-axis measurements as well. (Check the book from Floyd Toole on why).

An actual anechoic room is too 'expensive' (a bit of an understatement). There is the Klippel NFS, but it's also 'expensive'. But fortunately we can do a quasi-anechoic measurement (time gating). (Update: I developed another method to achieve this).

Here are the Poco X3 NFC speaker measurements at various angles on the listening window:


Left Speaker:
left.jpg

Right Speaker:
right.jpg


The ideal target for an anechoic measurement would be a completely flat graph on-axis, smooth (maybe tilting) directivity and smooth sound power. Since taking care of directivity would mean fixing the driver physically or treating the reflections, we can only EQ based on the averaged listening window measurements.

Subjectively speaking, applying the EQ through Viper4Android, the internal speaker sounds a lot better. It's a night and day difference in my opinion.

Anyway a few cons to be aware of:

Cons:
- Reduced (max) volume -> This one is to prevent clipping.
You can remedy this by using Playback Gain Control in Viper which will reduce the dynamic range on max volume (I recommend turning the gain control off when playing music)

- Difference in the speakers itself -> I only have one Poco X3 NFC to measure. If the speakers have bad unit variance, this won't work that great.

What I give to you:
A convolutional wav (in the zip) to use in Viper4Android / JamesDSP. Big thing to note is this requires root to use.

If you have questions, ask me anything. Thanks.
 
Last edited:

SkaboXD

Senior Member
Jan 18, 2017
1,132
445
Ganja
Xiaomi Poco X3 NFC
Amazing effort, I have to try this.

Advantage is more bass & less treble for more realistic sound I guess.

Can you please make Parametric EQ preset for Neutron Music player as I prefer to use it without root? Thanks so much.
 
  • Like
Reactions: boudjemas

SkaboXD

Senior Member
Jan 18, 2017
1,132
445
Ganja
Xiaomi Poco X3 NFC
Parametric EQ settings added, check out the post
Thank you, I just want to ask where's the pre-amp value?

I know that we can apply normalization or AGP (Auto-Gain Protection) but for people who don't have advanced music players with those functions, it would be nice to have pre-amp value attached here.

I want to say that you can finally hear some bass with this EQ. Treble is a bit more dull (but still more accurate than stock) compared to my M50x headphones which use Harman EQ by oratory1990. But overall, sound is more realistic, less bright compared to before. Music gets the new depth. And with normalization, sound is not reduced much. -8db by average I would say. My advice is to play music around 70% to avoid distortion.

It's an amazing improvement & I recommend everyone to try.

Here's the EQ preset for Neutron MP. Place it in storage/emulated/NeutronMP folder. Bind EQ to folder/album in media library than use audio normalization feature along with it.

If you saved some custom EQ in Neutron, backup it's settings as it will be overwrited by this EQ XML.
 

Attachments

  • eq_presets.xml
    72.5 KB · Views: 112
Last edited:
  • Like
Reactions: pnin and wimstefan

zettozoid

Member
Jan 14, 2022
20
40
Thank you, I just want to ask where's the pre-amp value?

I know that we can apply normalization or AGP (Auto-Gain Protection) but for people who don't have advanced music players with those functions, it would be nice to have pre-amp value attached here.

I want to say that you can finally hear some bass with this EQ. Treble is a bit more dull (but still more accurate than stock) compared to my M50x headphones which use Harman EQ by oratory1990. But overall, sound is more realistic, less bright compared to before. Music gets the new depth. And with normalization, sound is not reduced much. -8db by average I would say. My advice is to play music around 70% to avoid distortion.

It's an amazing improvement & I recommend everyone to try.

Here's the EQ preset for Neutron MP. Place it in storage/emulated/NeutronMP folder. Bind EQ to folder/album in media library than use audio normalization feature along with it.
The value is on my laptop, but looking at the graph it should be -7dB.

Oh yeah, for the treble part is where using a umik would come in handy since most cheap omni mics get inaccurate above 10khz. Sadly I don't have it so you can just add a 11khz high shelf and adjust by ear.
 
  • Like
Reactions: SkaboXD

zettozoid

Member
Jan 14, 2022
20
40
Thank you, I just want to ask where's the pre-amp value?

I know that we can apply normalization or AGP (Auto-Gain Protection) but for people who don't have advanced music players with those functions, it would be nice to have pre-amp value attached here.

I want to say that you can finally hear some bass with this EQ. Treble is a bit more dull (but still more accurate than stock) compared to my M50x headphones which use Harman EQ by oratory1990. But overall, sound is more realistic, less bright compared to before. Music gets the new depth. And with normalization, sound is not reduced much. -8db by average I would say. My advice is to play music around 70% to avoid distortion.

It's an amazing improvement & I recommend everyone to try.

Here's the EQ preset for Neutron MP. Place it in storage/emulated/NeutronMP folder. Bind EQ to folder/album in media library than use audio normalization feature along with it.
Oh lol we have the same headphones.
I was using oratory's preset till I got ahold of a custom preset via an app called DGSonicFocus.

I think my ears are a bit different since to make it sound neutral I have to reduce 1khz and 4500hz by around 4 dB from the harman curve.

I also have the 10khz above rising akin to the diffuse field curve.

With this in mind, listening to the preset for the speakers sound tonally correct to me sans the subbass. Perhaps it's due to unit variance.
 
  • Like
Reactions: SkaboXD

SkaboXD

Senior Member
Jan 18, 2017
1,132
445
Ganja
Xiaomi Poco X3 NFC
Oh lol we have the same headphones.
I was using oratory's preset till I got ahold of a custom preset via an app called DGSonicFocus.

I think my ears are a bit different since to make it sound neutral I have to reduce 1khz and 4500hz by around 4 dB from the harman curve.

I also have the 10khz above rising akin to the diffuse field curve.

With this in mind, listening to the preset for the speakers sound tonally correct to me sans the subbass. Perhaps it's due to unit variance.
I don't know my peak resonance of the ear, but I know that Harman EQ profile suits me. I might got the lottery with EQ & unit matching my ears correctly.

It sounds pretty much correct to me, I agree.

Unit variance & quality control of Xiaomi is not top notch for sure lol. But it still made an great improvement in sound quality.
 
  • Like
Reactions: zettozoid

SkaboXD

Senior Member
Jan 18, 2017
1,132
445
Ganja
Xiaomi Poco X3 NFC
Oh wow that would be great! But please only if it's not too much of an hassle.
I made Poweramp EQ preset, but you can't go below 0.1 Q value, below 20Hz & above 20000Hz with Poweramp EQ. So the EQ preset is very slightly different compared to EQ preset posted here by OP & me for Neutron Music Player as Neutron has much more powerful EQ. It's still great though.

Take in mind that Poweramp doesn't support exporting EQ presets only, but every setting choice. So backup/remember every setting you did before importing this EQ preset. Extract zip file before importing.
 

Attachments

  • 1-18-22-9-57-PM.poweramp-settings.zip
    16.5 KB · Views: 89

wimstefan

Senior Member
Sep 20, 2014
315
229
Thank you so much!
For the efforts to create the preset and also the precious & detailed information on how to handle it in Poweramp 🙏🏼
 
  • Like
Reactions: SkaboXD

xlen

Senior Member
Jan 8, 2014
96
48
HTC One (m7)
Android Wear
So the ideal target for an anechoic measurement would be a flat graph. While this is, practically speaking impossible to achieve, we can (or at least I tried to) get closer to it by using equalization. Note that doing a measurement in a reflective room and equalizing from it is bad practice and will more than likely ruin the sound.
For each their own, but tbh a completely flat graph won't sound good. personally, I quite like the stock tuning, but you can do quite a lot of tuning I'd probably boost the mids and drop the "air" peak
 

zettozoid

Member
Jan 14, 2022
20
40
For each their own, but tbh a completely flat graph won't sound good. personally, I quite like the stock tuning, but you can do quite a lot of tuning I'd probably boost the mids and drop the "air" peak
I'm not sure that by flat graph not "sounding good" we're talking about the same thing here though.

I believe in his book, Toole talks about most people leaning towards the (in anechoic chamber) "flat" measuring speaker which when put in a room gives a downward tilt with a bass boost.

If we're talking about my preset though, of course you can still tune it. I don't have a properly calibrated measurement mic (like the Umik) so the actual response above 1khz probably deviates somewhat.
 

SkaboXD

Senior Member
Jan 18, 2017
1,132
445
Ganja
Xiaomi Poco X3 NFC
I got a UMIK-1. I updated the EQ preset. Please check the main post :D
OMG YES!

Gonna try it now!

This is very big, every smartphone manufacturer should tune sound like you do.

I will edit for my final impressions
.
It sounds better than the last EQ. It has better directivity and that ''less airness'' compared to last EQ comes from the fact that frequency response is more neutral with this new EQ, especially in treble & bass. It's still not perfect, but it's better. There are still some peaks between 10-15Khz, but that's nothing compared to other phones.

Awesome!
 
Last edited:

zettozoid

Member
Jan 14, 2022
20
40
OMG YES!

Gonna try it now!

This is very big, every smartphone manufacturer should tune sound like you do.

I will edit for my final impressions
.
It sounds better than the last EQ. It has better directivity and that ''less airness'' compared to last EQ comes from the fact that frequency response is more neutral with this new EQ, especially in treble & bass. It's still not perfect, but it's better. There are still some peaks between 10-15Khz, but that's nothing compared to other phones.

Awesome!
Good to know, did you use the wav or the Parametric EQ btw?

Also, fyi I didn't touch the bass since I ran out of the 6dB headroom. Perhaps the improvement you mentioned was placebo? 😉 As for the treble peaking I think that's either because of the smoothing of the measurement or non-linearities.

As it is, there's not much else to do to improve this further. I could either try to get the anechoic measurement down to around 200Hz but the result will probably have too low of a volume :D
 
  • Like
Reactions: SkaboXD

SkaboXD

Senior Member
Jan 18, 2017
1,132
445
Ganja
Xiaomi Poco X3 NFC
Good to know, did you use the wav or the Parametric EQ btw?

Also, fyi I didn't touch the bass since I ran out of the 6dB headroom. Perhaps the improvement you mentioned was placebo? 😉 As for the treble peaking I think that's either because of the smoothing of the measurement or non-linearities.

As it is, there's not much else to do to improve this further. I could either try to get the anechoic measurement down to around 200Hz but the result will probably have too low of a volume :D
Impulse response.

Well, higher frequencies can affect bass too, to mask it more if they are louder than neutral. It's a micro difference in real life but really noticeable imo when playing the pink noise & some nicely bass recorded songs. Maybe I could phrase it better myself there & not lead people that bass is bigger.

I believe it's due to unit variation mostly.

I would be open for some more volume reduction lol, I use my device at 80% volume + some noticeable volume compression happens above that volume.

But I honestly find no need. It's already good as it is. Better than most phone speakers up to 500 dollars price range for sure.

Which says how much frequency response is important for sound quality.
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 9
    Quickstart Guide:

    Rooted:

    1. Go to third page of the thread to download the V4A convolution wav file. Get the one named "pocotorchv12v6v7nophase.zip"
    2. Copy the wav named "norm1torchv12v6v7nophase.wav" to Android/Data/com.pittvandewitt.viperfx/files/Kernel
    3. Open Viper4Android, enable Master Limiter and Convolver. Set the convolver to the wav that was copied.

    Non-Rooted:
    1. Go to the same post and use the Graphic Equalizer with the attached preset.
    2. Enable Channel balance set to -7.5 dB on both channel.

    EDIT 9 (November 2023)
    Added new preset pocotorchv12v6v7nophase.


    Hey all, first post here. If I broke any rules please let me know.

    Backstory (Skip Ahead):
    So I've been using my Xiaomi phone for a while and it's really worth it for the price in my opinion. An issue I had was the 'tinny' speakers.

    To remedy this, we need an anechoic measurement in order to actually "fix" the sound, not one measured indoors. We also need to get off-axis measurements as well. (Check the book from Floyd Toole on why).

    An actual anechoic room is too 'expensive' (a bit of an understatement). There is the Klippel NFS, but it's also 'expensive'. But fortunately we can do a quasi-anechoic measurement (time gating). (Update: I developed another method to achieve this).

    Here are the Poco X3 NFC speaker measurements at various angles on the listening window:


    Left Speaker:
    left.jpg

    Right Speaker:
    right.jpg


    The ideal target for an anechoic measurement would be a completely flat graph on-axis, smooth (maybe tilting) directivity and smooth sound power. Since taking care of directivity would mean fixing the driver physically or treating the reflections, we can only EQ based on the averaged listening window measurements.

    Subjectively speaking, applying the EQ through Viper4Android, the internal speaker sounds a lot better. It's a night and day difference in my opinion.

    Anyway a few cons to be aware of:

    Cons:
    - Reduced (max) volume -> This one is to prevent clipping.
    You can remedy this by using Playback Gain Control in Viper which will reduce the dynamic range on max volume (I recommend turning the gain control off when playing music)

    - Difference in the speakers itself -> I only have one Poco X3 NFC to measure. If the speakers have bad unit variance, this won't work that great.

    What I give to you:
    A convolutional wav (in the zip) to use in Viper4Android / JamesDSP. Big thing to note is this requires root to use.

    If you have questions, ask me anything. Thanks.
    5
    Small update, I updated the measurements to use 1/48 octave FDW instead of 21 cycles FDW.

    The presets changed a bit (most likely imperceptible). I attached the files below. This is the one I've been using for a while so I recommend you use these (I'll keep the last preset up though). I wanted to write all of my findings over the Poco X3 Pro forum but I kept forgetting about it :d . If that happens I'll redirect the first post there.

    In the zip there are 2 convolution wavs:
    pocofdw48oct.wav --> This have -6dB of volume reduction and doesn't have any distortions.
    pocofdw48octnormalized.wav --> This one have another -7dB of volume reduction but more bass (kinda distorted, just for comparison).

    If you've just been here for the first time, use pocofdw48oct.wav.

    Also thanks Coolneng for the feedback :D

    Edit:
    I updated the first post (not everything though).
    3
    Updated main post with new information and findings.
    3
    Removed, see below replies.
    3
    New update, I've had this preset for a while so might as well upload it.
    The EQ was made from doing a polynomial fit with order 0 (basically a flat target, just getting the appropriate level) to the quasi-anechoic measurements and taking the minimum from the EQ curve (prioritize cut not boost).

    Same as before, extract the zip and load it in the convolver. I only made the normalized version so you might need to use "Output Gain: +6dB" and let the limiter handle any clipping.

    If anyone's still here, please give any feedback. Cheers.