I'm working on a Bluetooth speaker system where the same music file results in different SPL up to 10 dBA when played through different devices, such as iPhones and Android smartphones. The system involves passing different decoded audio sources through a same electro-acoustic system, and the outputs are measured using a microphone. I think the only reason is that the decoded audio streams have different levels, but I have no control over the audio processing algorithms, equalization settings, or Bluetooth codecs across devices.
While I've considered Loudness Normalization according to EBU R 128 standard, it seems to sacrifice dynamic range and is computationally inefficient for my target platform.
While achieving real-time loudness normalization is essential, I prioritize computational efficiency over dynamic range preservation due to platform constraints. Are there specific techniques or approaches that can solve my problem?
Edit:
To response sina bala's comment:
To clarify, my rejection of the EBU R 128 standard is not absolute but rather based on concerns regarding computational efficiency and specific requirements of my application.
I have no idea about the details of EBU R 128 for loudness normalization, but the MATLAB example I ran consumed about 10% CPU on my PC. I have reservations about the computational efficiency for this reason. Maybe it doesn't reflect the efficiency of this standard itself, but rather the implementation provided by MATLAB. I haven't yet tested other implementations, such as those in C/C++, which may offer better performance on embedded platforms. Therefore, my concern regarding computational efficiency is based on this initial observation and uncertainty about the efficiency of alternative implementations.
Additionally, my application only requires achieving consistent volume levels across different devices, rather than matching loudness levels precisely. As such, I'm exploring alternatives that may allow me to omit the calculation of loudness, thereby potentially reducing computational overhead.
Ultimately, if the EBU R 128 standard proves to be the most effective solution despite these concerns, I'm open to adopting it.