The Distorder is a psychoacoustic stand-alone or VST application to check audibility of various forms of linear and nonlinear distortions applied to a stereo audio signal, including an ABX tester.
In simpler words, it’s just a soft to be sure if you’re not completely deaf.
NEW version 0.5 is just out with more functions and a newer and easier interface.
Download it here
For most effects, a switch permits to bypass it (effect is on when light is on, effect is off (bypass) when light is off)
Path A and path B
Path A is the original signal coming from the input selector without any process other than the volume control.
Path B is going though the distorder processes which can be bypassed by steps.
You can alter the level of path B from about + 3dB to – 3dB relative to path A.
Keep in mind that pushing the level may bring other problems : distortion, saturation,… when the incoming signal is already near fullscale (too often seen in the last years)
Polarity can be inverted on path B.
Interaural delay (IA delay)
Left signal can be delayed from 0 to 0.5ms relative to right or opposite, this is about 15 cm of acoustic distance (one sample is 0.0226ms at 44.1 kHz sampling frequency).
Left and right signals can be imbalanced up to 6dB. The shown value indicates the difference of level between left and right channels : ie when -2dB, left is at -1dB and right at +1dB relative to the nominal position.
Both interaural delay and channel unbalance can be used for delay versus level compensation for localization tests.
Harmonic (THD) and intermodulation (IMD) distortion
Harmonic distortion is generated between 0 and 10% (approximatively !) consisting of even and odd harmonics of amplitudes decreasing with harmonic order (see picture). The displayed distortion values are quite correct for sine waves but with other signal, it may be completely inaccurate. At the same time, intermodulation is also generated at about the same level. For the time being, I don’t know how to generate both forms of distortion independently.
Two all pass filters are included. The frequency response stays completely flat but the phase is changed.
I’d like to add a phase recovery stage : an allpass filter with a group delay compensating various highpass filters in an audio chain and the loudspeaker highpass phase distortion. But, due to my miserable knowledge in IIR filters, I haven’t found yet a way to implement a stable filter with a pole outside the unit circle !
Full, half or a quarter of the original sample rate can be set. As no anti-aliasing filters are on the path, you may hear various distortion together with the frequency response changes.
You can decrease bit-depth from 24 to 6 bits.
A highpass filter of 6/12/18/24dB/oct can be switched on.
Notch and peak
A biquad filters (second order) doing notches or peaks can be placed on the signal path.
A double blind testing feature is included so you can check what are the audible limits you can achieve.
The X is randomly selected between signal A or signal B when you press the button "New trial". Listen to A or X or B as long as you want. When you know if X=A or X=B, use the "your bet" selector and press "new trial".
To do a valid ABX test, you should define, before the test, the number of trials you will do. Some interseting infox about ABX in audio is to be seen at the ABX web site
The FFT function is disabled on X position.
A-B lets you hear the signal difference between the original signal and the distorded one.
Other ideas are welcome !
- 0.5 completely new interface and new functions, easier to use (I hope)
- 0.32 modified the generator part (choose function independently for L and R), changed max values for interaural delay to 50 samples (about 1.13ms) so to be able to do some tests about delay/level compensation for localization
- 0.3 added functional ABX test (chi-squared calculated, see D. Carlstrom at ABX web site), changed the name of the pulse to the more appropriate sawtooth name.
- 0.21 added an independant bypass switch for most processing items (it’s usefull for A-B tests)
- 0.2 added A-B possibility : substract B to A to check audibility of signal difference (idea from Kees De Visser at Hydrogenaudio Forum)
- 0.18 added value indication on main volume
- 0.17 Changed the delay function module because it gave a kind of reverb! Indicated level values were wrong.
- 0.16 Removed unused functions, interaural delay now in samples, negative values on level and unbalance also shown
- 0.15 Disabled FFT when listen to X, recorder placed at the right of the panel, new function to choose if path B has same source as A or player 2
- 0.13 Added filtered pink noise (near critical bandwidth) and wav player B as inputs
- 0.1 very first put on the web
- THD-IMD : I have to improve distortion generator and analyser to have less high harmonics distortion products
- Add a small delay in the ABX selector to avoid any click that may indicate which is which
- Add log writing on the ABX part.
- Implement working stop/start positions to be able to choose the listening duration on the wav players.
- Maybe try to separate THD and IMD, and maybe also odd/even harmonics
- Implement jitter generator
- Add a universal player so you can compare between, let’s say, lossless and lossy files and why not do a realtime A-B listening ! (I’ll have to add delay to compensate for encode/decode times), Maybe not so easy…
Have a look at some other usefull infos about softwares : you may find some help there.