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.
Put two files to the playlist. Set "one track repeat" and play. Press next to change track and feel the difference.

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 impression may be different from yours.
Audio gears: RME Fireface 400, Sennheiser HD650.
AbsolutePolarityListeningTestTone.flac (reference file)
AbsolutePolarityListeningTestToneInverted.flac (inverted polarity)
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
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".
Fig.2 inverted polarity waveform.
PlayPcmWin has a realtime DSP to invert polarity of PCM / DSD. It can be enabled/disabled while playing.
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;
}
Fig.3
Fig.4
Fig.5
Fig.6
Fig.7