Measurements of Wavelet and Poweramp EQ system-wide PEQ on Android

UPDATE 05 Oct 23:

  • Neutron music player reportedly fixed the incorrect filter Q in update 2.22.3.
  • JamesDSP on Android seems to treat BW for Shelf filters as if it was Slope. Entering 1 for BW fixes issues with filter being too steep.

Preface:

This post is intended as a source of information for those who are interested in a system-wide software solution for parametric EQ on Android.

I've selected controversial headphones for this, which are the Sennheiser HD 700 because:

  • I have them.
  • I don't like them without EQ, but with EQ they are very enjoyable to me.

I did notice that the headphones sounded different with system-wide EQ than in audio players like Neutron or UAPP, so I decided to take measurements of the frequency response with the EQ filters applied.

The frequency response is measured using Room EQ Wizard (REW) as following:

  1. Create a measurement sweep in REW (10 Hz - 22 kHz, 48 kHz sampling rate, 1M samples).
  2. Put the file on the phone.
  3. Play back the file in Poweramp with desired system-wide EQ enabled.
  4. Record using Line-In of Creative GC7.
  5. Import the recording to REW.

Test 1 - System-wide EQ:

Five scenarios were tested:

  1. Reference - flat target in REW with added filters from the PDF.
  2. Poweramp Equalizer at 44.1 kHz sampling rate (output through Shanling M0 LDAC)
  3. Poweramp EQ at 192 kHz sampling rate (output through Samsung USB-C dongle)
  4. Wavelet at 44.1 kHz sampling rate (output through Shanling M0 LDAC)
  5. Wavelet at 192 kHz sampling rate (output through Samsung USB-C dongle)
  6. Rootless JamesDSP at 48 kHz sampling rate (output through Samsung USB-C dongle). Note: you need to enter BW=1 in the DDC Toolbox app. It seems to use slope instead of BW that's displayed in the UI.

Results below:

https://preview.redd.it/52nyvxel3gsb1.png?width=1590&format=png&auto=webp&s=f5d8b31ec0713a7c3a851b2b39c8f89263da511c

https://preview.redd.it/0pqst7tn3gsb1.png?width=1590&format=png&auto=webp&s=8d34199b7c076dbbc1abc9f5214a3337eff6201c

Conclusions:

- At 44.1 kHz sampling rate, lower frequency (<100 Hz) is improved in both Wavelet and Poweramp.

- Wavelet's frequency response is not smooth, it has a stair-like pattern. After all, it's a 127 band fixed-width EQ.

- Poweramp Equalizer seems to smooth the notch filter at 6 kHz too much, but also the ~190 Hz filter is not deep enough.

Additional info:

Why 44.1 kHz?

Because of the way Poweramp EQ works (applying EQ in frequency domain), the frequency resolution is lower at higher sampling rates. I wanted to see if it improves at 44.1 kHz. To force 44.1 kHz for all audio processing, I had to use Shanling M0 in LDAC set to 44.1 kHz

Why 192 kHz?

This is what Samsung Dongle defaults to, based on log messages and what Poweramp EQ reports.

What's with JamesDSP only tested at 48 kHz?

JamesDSP works by using a VDC file which is a set of biquad filter coefficients provide for Fs=44.1 kHz and Fs=48 kHz. I had to revert to OpenSL ES driver (instead of hi-res USB driver) for force 48 kHz output. At 192 kHz the sound was heavily distorted.

Note: Samsung Dongle has a 1V RMS output, but normally it limits the max output to about 0.2 V RMS.

Players with direct USB playback like Neutron or UAPP can access the full volume, but you can also unlock it for all apps by doing this:

  1. Install UAPP (full or trial).
  2. Connect USB-C dongle.
  3. When Android asks if UAPP (or any other app) should take control of device, click away (accepting would lock other apps from using the dongle after exiting UAPP).
  4. Go to Volume tab in UAPP and set it to max.
  5. Press back a few times to exit.
  6. Force close UAPP.

Now the full volume range will be used for all apps.

Or use a dongle with hardware volume buttons:)

With Wavelet, to enter custom PEQ settings, one has to create a file and import it using the app, or:

  1. Go to Crinacle's graph comparison tool.
  2. Select any headphone.
  3. Switch to EQ tab.
  4. Enter the PEQ filter settings.
  5. Click the button to export to Wavelet.
  6. Import the file to Wavelet.

Test 2 - built-in EQ in standalone apps:

https://preview.redd.it/pqbcxixb4gsb1.png?width=1590&format=png&auto=webp&s=8456309427cdbcc4ad56d40d52f9a4081058d80e

Besides UAPP using a high shelf that's a little too low in Q, the built-in app EQ is all right.

Test 3 - Sonarworks SoundID

Sonarworks has a free application, which allows you to chose a headphone to apply their EQ profile. Then, you can do personalization by answering if A or B is better in a series of test with various filters enabled. At the end you get personalized EQ settings. I have checked if the app in Android has similar quality to the VST effect in Windows. Personalization is disabled, this is the SoundID "Reference" response.

https://preview.redd.it/71w2alii4gsb1.png?width=1590&format=png&auto=webp&s=dea5b6bb27e3eb215e263e5294aa67aad3206c9e

This is pretty good!Sadly, this seems to work only with Spotify of all streaming services.