I have been working on a conference solution based on a smartphone grid. Right now, I am stuck on Android Smartphones. Although I have managed to normalize loudness programmatically when it gets played on different phones then, due to the hardware difference of speakers, it plays with different loudness.
I am keen to know if there is any way to make it sound the same on different Android Smartphones concerning loudness.
I am using DRC (dynamic range compressor with gain) to normalize it on specific dBs. But still, it sounds different on different smartphones in terms of loudness.



2 Answers 2


Your smartphones are not measurement-grade reference speakers that are operated in anechoic chambers. You're normalizing the digital signal – but since the smartphone speaker system is not a calibrated measurement device, this is only proportional (best case!) to the acoustic volume. And each phone has a different proportional factor.

Same, by the way for the microphones: the digital values you get from these will be, best case, proportional to the air pressure variations, but each microphone differently.

  • $\begingroup$ Okay. Is there any parameter or factor I can look into to make it work? Since I am normalizing the audio but what is the factor that I can tweak or work with to make it loud equally? $\endgroup$ Oct 19, 2022 at 13:28
  • $\begingroup$ as said, there's no factor, since there's no calibration. You can do nothing about that. $\endgroup$ Oct 19, 2022 at 14:24
  • $\begingroup$ So, is there any way or metric based on which we can perform some sort of custom benchmarking or calibration? $\endgroup$ Oct 19, 2022 at 18:53
  • $\begingroup$ I'd rather start thinking about what you actually need to be normalized. It's not the individual phone, it's how loud the individual phone is in relation to all others in the real room it operates, having the orientation it has – you'll come to the conclusion that you will need to adjust volume based on observation during the actual conference and can't do it before. $\endgroup$ Oct 19, 2022 at 18:55
  • 1
    $\begingroup$ that is an excellent, and not at all trivial problem! You're basically implementing a MIMO channel sounder for a highly frequency-selective channel, so my guess is that you'll want to add subtle noise to each phone, differently, and use OFDM / SC-FDMA techniques to arrive at loudness estimates for different frequency bands, then calculate a different equalizer for each phone. But that's really just a gut feeling. $\endgroup$ Oct 19, 2022 at 19:02

The only way I know of how to do this is to build a data-base of the most common models. This is expensive to build and a pain to maintain but there are companies out there that can do this type of thing.

It would have to be a rather large data base: For each major model there is generation and sub models. To make matters worse acoustic properties (unfortunately) can also vary with carrier and region. Some carrier like to "flavor" their models to a preferred sound profile.

  • $\begingroup$ Excatly, I was thinking about creating a kind of Personalized Sound profile which I can get and make changes accordingly. But now my question is, what characteristics or parameters should I look into? $\endgroup$ Oct 19, 2022 at 13:35
  • 1
    $\begingroup$ There are lots of options: overall sensitivity, transfer function, pre-processing modes (which lots of phones have), non-linear compression modes, etc. $\endgroup$
    – Hilmar
    Oct 19, 2022 at 15:54
  • $\begingroup$ So what do you suggest? What kind of calibration do I perform to make it work? $\endgroup$ Oct 19, 2022 at 18:57
  • $\begingroup$ Playback a 1kHz sine wave at -3 dBFS in your preferred playback mode, in anechoic chamber while rotating the phone in azimut and elevation, averaging the SPL of a calibrated measurement microphone at 1 meter? $\endgroup$
    – Knut Inge
    Oct 19, 2022 at 19:12
  • $\begingroup$ Hi Knut, yes, I read a blog where it was doing calibration using pink noise. But in my scenario, there are, let's say, seven phones playing the same audio simultaneously with an accuracy of 4ms. Now, in that case, how do I differentiate the sine waves and calculate the loudness? $\endgroup$ Oct 19, 2022 at 19:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.