Menu

AbsolutePolarityListeningTest

yamamoto2002
Attachments
DSP1a.png (103014 bytes)
DSP2.png (34012 bytes)
DSP3.png (35853 bytes)
DSP4.png (102295 bytes)
DSP5.png (102645 bytes)
InPhase.png (71801 bytes)
Inverted.png (73135 bytes)
PPWSS.png (52994 bytes)

Absolute polarity listening test

I created two FLAC files that contain special crafted tone. These two files sound very different for my ears, but technical difference of two files is only absolute polarity.

Download test FLAC files

https://sourceforge.net/projects/playpcmwin/files/others/AbsolutePolarityListeningTestTone.zip/download

How to listen the difference

Put two files to the playlist. Set "one track repeat" and play. Press next to change track and feel the difference.

screenshot

This is nonlinear phenomenon: There is a best sound level for you. If there is no difference heared, change sound volume . It seems the sound difference is disappeared when the sound level is small.

It seems headphones are easier than speakers.

Sound impressions

Sound impression may be different from yours.

Audio gears: RME Fireface 400, Sennheiser HD650.

AbsolutePolarityListeningTestTone.flac (reference file)

  • Sound comes from relatively right.
  • Timbre is more thick.
  • Sound stage is relatively converged to the center.
  • Perceived pitch is just La.

AbsolutePolarityListeningTestToneInverted.flac (inverted polarity)

  • Sound comes from relatively left.
  • Timbre is relatively thin.
  • Sound stage is wider.
  • Perceived pitch is slightely lower than the other file. Difference is subtle, smaller than quartertone.

My foobar2000 ABX test result

Tested 16 times and all answered correctly:

foo_abx 2.0.4 report
foobar2000 v1.3.9
2017-11-11 09:30:47

File A: AbsolutePolarityListeningTestTone.flac
SHA1: c4f4e59eedb9e838e5c393c4508e1f29113591f0
File B: AbsolutePolarityListeningTestToneInverted.flac
SHA1: d093c9a9723042caf0b39d1afa8d814660100808

Output:
WASAPI (event) : Analog (5+6) (RME Fireface 400), 24-bit
Crossfading: NO

09:30:47 : Test started.
09:31:32 : 01/01
09:31:43 : 02/02
09:31:57 : 03/03
09:32:06 : 04/04
09:32:14 : 05/05
09:32:25 : 06/06
09:32:34 : 07/07
09:32:43 : 08/08
09:32:51 : 09/09
09:33:00 : 10/10
09:33:09 : 11/11
09:33:16 : 12/12
09:33:23 : 13/13
09:33:30 : 14/14
09:33:37 : 15/15
09:33:45 : 16/16
09:33:45 : Test finished.

 ---------- 
Total: 16/16
Probability that you were guessing: 0.0%

 -- signature -- 
ebbfe10775af9517f6c7391d6dd32e89d3bf81b0

Waveforms of two files

InPhase
Fig.1 "In phase" waveform: This waveform looks similar to the waveform of real trombone (of correct polarity), therefore I chose this as "in phase".

Inverted
Fig.2 inverted polarity waveform.



How to use "Polarity inversion" function of PlayPcmWin

PlayPcmWin has a realtime DSP to invert polarity of PCM / DSD. It can be enabled/disabled while playing.

  1. Press Enable DSP checkbox and press Settings button (Fig.3) to show Sound Effects Configuration Window.
  2. Select "Invert polarity" from the right list and press left arrow button to add it to the left list (Fig.4). Note: if two "Invert polarity" is added to the left list, This signal processing becomes identity function, original PCM/DSD signal is recovered. This is bit-perfect process.
  3. There is one "Invert Polarity" is placed on the left list. press OK to enable this signal processing. (Fig.5)
  4. Add sound file and press play. PlayPcmWin inverts polarity of PCM/DSD and send it to DAC. (Fig.6)
  5. This is realtime signal processing: While playing music, uncheck "Enable DSP" checkbox to disable the signal processing immediately (Fig.7) and check it to re-enable. This DSP alters signal polarity abruptly, clicking noise may be heared.

This function is implemented in WWAudioFilterPolarityInvert.cpp: https://sourceforge.net/p/playpcmwin/code/HEAD/tree/PlayPcmWin/WasapiIODLL/WWAudioFilterPolarityInvert.cpp

        for (int pos=0; pos<bytes; ++pos) {
            unsigned char b = buff[pos];
            buff[pos] = ~b;
        }

PressDSPbutton
Fig.3

EnablePolarityInvert
Fig.4

PressOK
Fig.5

DSPEnabled
Fig.6

DSPDisabled
Fig.7


Related

Wiki: Home
Wiki: PlayPcmWinJp

MongoDB Logo MongoDB