Test signals
Along with listening tests SoundExpert performs objective measurements of audio devices and technologies. For the purpose a new audio metric is used. The core of the method is testing with some input signals and measuring level of their waveform degradation at the output. While test signals can be of any kind the measurement procedure stays the same and waveform degradation is measured with a single parameter - Difference level (dB). Below is a list of actual reference signals along with their time domain representation, frequency domain representation and Matlab code for their generation. All signals are 30s long, -10dBFS(rms), stereo, 16bit and have 44100Hz sample rate.
Sine wave 1 kHz
|  |  | 
% Sin wave 1000 Hz
 % 30s, -10 dBFS (rms), Stereo (L=R), 44100 Hz, 16 bit
 Fs = 44100; % [Hz]
 L = 30; % [s]
 G = -10; % [dB]
 F = 1000; % [Hz]
 Ls = round(L*Fs);
 t = (0:Ls-1)';
 ref = 10^(G/20) * sin(t*2*pi/(Fs/F));
 ref = ref .* (2^15);
 ref = round(ref);
 ref = [ref,ref];
 audiowrite('ref_sine1k.wav', int16(ref), Fs, 'BitsPerSample',16) Sine wave 12.5 kHz
|  |  | 
% Sin wave 12500 Hz
 % 30s, -10 dBFS (rms), Stereo (L=R), 44100 Hz, 16 bit
 Fs = 44100; % [Hz]
 L = 30; % [s]
 G = -10; % [dB]
 F = 12500; % [Hz]
 Ls = round(L*Fs);
 t = (0:Ls-1)';
 ref = 10^(G/20) * sin(t*2*pi/(Fs/F));
 ref = ref .* (2^15);
 ref = round(ref);
 ref = [ref,ref];
 audiowrite('ref_sine12.5k.wav', int16(ref), Fs, 'BitsPerSample',16) DFD 12.5 kHz / 80 Hz
Difference Frequency Distortion (DFD) signal is described in the standards IEC60118 and IEC60268. It consists of two pure tones: 12460 Hz and 12540 Hz and is useful for assessment of intermodulation distortion.
|  |  | 
% DFD 12.5 kHz mean, 80 Hz difference (12460 Hz + 12540 Hz)
 % 30s, -10 dBFS (rms), Stereo (L=R), 44100 Hz, 16 bit
 Fs = 44100; % [Hz]
 L = 30; % [sec]
 PdB = -10; % [dB]
 F1 = 12460; % [Hz]
 F2 = 12540; % [Hz]
 Ls = round(L*Fs);
 t = (0:Ls-1)';
 ref = sin(t*2*pi/(Fs/F1)) + sin(t*2*pi/(Fs/F2));
 Pr = sqrt(mean(ref.^2));
 Pd = 10^(PdB/20)/sqrt(2);
 Kp = Pd/Pr;
 ref = ref .* Kp;
 ref = ref .* (2^15);
 ref = round(ref);
 ref = [ref,ref];
 audiowrite('ref_dfd12.5k.wav', int16(ref), Fs, 'BitsPerSample',16) Square wave 1 kHz
Band-limited version of square wave is used. It is generated by means of Fourier synthesis (http://www.dspguide.com/ch13/4.htm):
|  |  | 
|  |  | 
% Fourier synthesis of square wave 1000 Hz
 % 30s, -10 dBFS (rms), Stereo (L=R), 44100 Hz, 16 bit
 Fs = 44100; % [Hz]
 L = 30; % [sec]
 PdB = -10; % [dB]
 F = 1000; % [Hz]
 Ls = round(L*Fs);
 t = (0:Ls-1)';
 n = [1 3 5 7 9 11 13 15 17 19 21]; % harmonics for 44100Hz sample rate only
 A0 = 0;
 Bn = 0;
 ref = zeros(Ls,1) + A0;
 for N = n
     An = sin(pi*N/2) * 2 / (pi*N);
     ref = ref + An*cos(t*2*pi*N/(Fs/F)) - Bn*sin(t*2*pi*N/(Fs/F));
 end
 Pr = sqrt(mean(ref.^2));
 Pd = 10^(PdB/20)/sqrt(2);
 Kp = Pd/Pr;
 ref = ref .* Kp;
 ref = ref .* (2^15);
 ref = round(ref);
 ref = [ref,ref];
 audiowrite('ref_square1k.wav', int16(ref), Fs, 'BitsPerSample',16) Triangle (odd) wave 1 kHz
Band-limited version of triangle wave is used. It is generated by means of Fourier synthesis (http://www.dspguide.com/ch13/4.htm):
|  |  | 
|  |  | 
% Fourier synthesis of triangle wave 1000 Hz
 % 30s, -10 dBFS (rms), Stereo (L=R), 44100 Hz, 16 bit
 Fs = 44100; % [Hz]
 L = 30; % [sec]
 PdB = -10; % [dB]
 F = 1000; % [Hz]
 Ls = round(L*Fs);
 t = (0:Ls-1)';
 n = [1 3 5 7 9 11 13 15 17 19 21]; % harmonics for 44100Hz sample rate only
 A0 = 0;
 Bn = 0;
 ref = zeros(Ls,1) + A0;
 for N = n
     An = 4 / (N*pi)^2;
     ref = ref + An*cos(t*2*pi*N/(Fs/F)) - Bn*sin(t*2*pi*N/(Fs/F));
 end
 Pr = sqrt(mean(ref.^2));
 Pd = 10^(PdB/20)/sqrt(2);
 Kp = Pd/Pr;
 ref = ref .* Kp;
 ref = ref .* (2^15);
 ref = round(ref);
 ref = [ref,ref];
 audiowrite('ref_triangle(odd)1k.wav', int16(ref), Fs, 'BitsPerSample',16) Triangle (even) wave 1 kHz
This is an even-only harmonics companion of standard triangle signal. It is generated by means of Fourier synthesis (http://www.dspguide.com/ch13/4.htm) like triangle signal but using even-only set of harmonics :
|  |  | 
|  |  | 
% Fourier synthesis of triangle (even) wave 1000 Hz (ass train)
 % 30s, -10 dBFS (rms), Stereo (L=R), 44100 Hz, 16 bit
 Fs = 44100; % [Hz]
 L = 30; % [sec]
 PdB = -10; % [dB]
 F = 1000; % [Hz]
 Ls = round(L*Fs);
 t = (0:Ls-1)';
 n = [1 2 4 6 8 10 12 14 16 18 20 22]; % harmonics for 44100Hz sample rate only
 A0 = 0;
 Bn = 0;
 ref = zeros(Ls,1) + A0;
 for N = n
     An = 4 / (N*pi)^2;
     ref = ref + An*cos(t*2*pi*N/(Fs/F)) - Bn*sin(t*2*pi*N/(Fs/F));
 end
 Pr = sqrt(mean(ref.^2));
 Pd = 10^(PdB/20)/sqrt(2);
 Kp = Pd/Pr;
 ref = ref .* Kp;
 ref = ref .* (2^15);
 ref = round(ref);
 ref = [ref,ref];
 audiowrite('ref_triangle(even)1k.wav', int16(ref), Fs, 'BitsPerSample',16) White noise
Band-limited White Noise (20Hz-20kHz)
|  |  | 
% Band-limited White Noise (20Hz-20kHz)
 % -10 dBFS RMS, 30sec, Stereo[L=R]
 Fs = 44100; % [Hz]
 PdB = -10; % RMS
 Fss = 176400; % sampling freq [Hz]
 T = 30; % length of signal [sec]
 f1 = 20; % lowest freq [Hz]
 f2 = 20000; % highest freq [Hz]
 load ph_se-wn2020-CF2.mat; % phases for the crest factor = 2dB
 % load ph_se-wn2020-CF3.mat; % phases for the crest factor = 3dB
 % load ph_se-wn2020-CF9.mat; % phases for the crest factor = 9dB
 % download phase-vectors for all Crest Factors - ph_se-wn2020-CFx.7z
 a = ones(1,length(ph)); % amplitudes
 fftd = zeros(1,Fss*T,'like',1+1i);
 Z = a .* exp(1i .* ph);
 Zc = fliplr(conj(Z));
 fftd(T*f1+1 : T*f2+1) = Z;
 fftd(end-T*f2+1 : end-T*f1+1) = Zc;
 sig = ifft(fftd,'symmetric');
 sig = sig(1:4:end); % sample from Fss for 44.1kHz
 Ps = sqrt(mean(sig.^2));
 Pd = 10^(PdB/20)/sqrt(2);
 % sig = round(sig.*(2^15)*Pd/Ps); % for 16bit output
 sig = sig.*(Pd/Ps); % for 32bit output
 sig = [sig; sig]';
 % audiowrite('ref_WN2020_CF2_16bit.wav', int16(sig), Fs, 'BitsPerSample',16)
 audiowrite('ref_WN2020_CF2.wav', sig, Fs, 'BitsPerSample',32)
 % download the signals for all Crest Factors - ref_WN2020_CFx.7z IEC 60268-1 (pink) noise (20Hz-20kHz)
A special test signal "Program Simulation Noise", whose spectral content is representative of music and speech (defined in the standard IEC 60268-1).
|  |  | 
% Band-limited IEC 60268-1 (pink) noise (20Hz-20kHz)
 % -10 dBFS RMS, 30sec, Stereo[L=R]
 Fs = 44100; % [Hz]
 PdB = -10; % rms
 Fss = 176400; % sampling freq [Hz]
 T = 30; % length of signal [sec]
 f1 = 20; % lowest freq [Hz]
 f2 = 20000; % highest freq [Hz]
 f = f1:1/T:f2; % vector of freqs
 % powers in 1/3 octave bands according to IEC 60268-1
 f268 = [20 25 31.5 40 50 63 80 100 125 160 200 250 315 400 500 630 800 1000 ...
     1250 1600 2000 2500 3150 4000 5000 6300 8000 10000 12500 16000 20000];
 a268 = [-13.4 -10.2 -7.4 -5.2 -3.5 -2.3 -1.4 -0.9 -0.5 -0.2 -0.1 0 0 0 0 0 ...
     0 -0.1 -0.3 -0.6 -1 -1.6 -2.5 -3.7 -5.1 -7 -9.4 -11.9 -14.8 -18.2 -21.6];
 a = interp1(f268, a268, f, 'linear', 0);
 a = 10 .^ (a ./ 10); % vector of 1/3 octave powers
 a = a ./ f; % vector of FFT powers (thanks to Alex)
 a = sqrt(a); % vector of FFT amplitudes
 load ph_se-psn2020-CF1.mat; % phases for the crest factor = 1dB
 % load ph_se-psn2020-CF2.mat; % phases for the crest factor = 2dB (BS EN 50332-1)
 % load ph_se-psn2020-CF3.mat; % phases for the crest factor = 3dB
 % load ph_se-psn2020-CF6.mat; % phases for the crest factor = 6dB
 % load ph_se-psn2020-CF9.mat; % phases for the crest factor = 9dB
 % load ph_se-psn2020-CF12.mat; % phases for the crest factor = 12dB (will
 % clip in 16bit output format)
 % download phase-vectors for all Crest Factors - ph_se-psn2020-CFx.7z
 fftd = zeros(1,Fss*T,'like',1+1i);
 Z = a .* exp(1i .* ph);
 Zc = fliplr(conj(Z));
 fftd(T*f1+1 : T*f2+1) = Z;
 fftd(end-T*f2+1 : end-T*f1+1) = Zc;
 sig = ifft(fftd,'symmetric');
 sig = sig(1:4:end); % sample from Fss for 44.1kHz
 sigPN = sig; % for the next signal
 Ps = sqrt(mean(sig.^2));
 Pd = 10^(PdB/20)/sqrt(2);
 % sig = round(sig.*(2^15)*Pd/Ps); % for 16bit output
 sig = sig.*(Pd/Ps); % for 32bit output
 sig = [sig; sig]';
 % audiowrite('ref_iec60268-1_CF1_16bit.wav', int16(sig), Fs, 'BitsPerSample',16)
 audiowrite('ref_iec60268-1_CF1.wav', sig, Fs, 'BitsPerSample',32)
 % download the signals for all Crest Factors - ref_iec60268-1_CFx.7zIEC 60268-1 (pink) noise, 1 bit
Program Simulation Noise downscaled to 1 bit (-101.1 dBFS RMS)
|  |  | 
% Band-limited IEC 60268-1 (pink) noise, 1bit(-101,1 dBFS RMS)
 % 30sec, Stereo (L=R)
 % "sigPN" is from previous signal - Band-limited IEC 60268-1 (pink) noise (20Hz-20kHz)
 sig = sigPN ./ max(abs(sigPN));
 sig = round(sig); % quantize
 sig = [sig; sig]';
 audiowrite('ref_iec60268-1_1bit.wav', int16(sig), Fs, 'BitsPerSample',16) MOD-SMPTE 4:1 (60Hz/7kHz)
The standard signal that consists of two pure tones: 60 Hz and 7000 Hz and is useful for measurement of intermodulation distortion.
|  |  | 
% MOD-SMPTE 4:1 (60 Hz + 7 kHz, 4:1)
 % -10 dBFS (rms), 30sec, Stereo(L=R)
 Fs = 44100; % [Hz]
 L = 30; % [sec]
 PdB = -10; % [dB]
 F1 = 60; % [Hz]
 F2 = 7000; % [Hz]
 Ls = round(L*Fs);
 t = (0:Ls-1)';
 out = 4 .* sin(t*2*pi/(Fs/F1)) + sin(t*2*pi/(Fs/F2));
 Po = sqrt(mean(out.^2));
 Pd = 10^(PdB/20)/sqrt(2);
 Kp = Pd/Po;
 out = out .* Kp;
 % Scale to 16bit limits and quantize
 out = out .* (2^15);
 out = round(out);
 out = [out,out];
 audiowrite('ref_modsmpte41.wav', int16(out), Fs, 'BitsPerSample',16) 
Test set of music material "Variety"
The new audio metric allows to measure waveform degradation using music as a test signal. The following 35 tracks of various genres are used for objective measurements of audio equipment. The playback time is 2h:4m.
#. (year) Album - Artist - Track name
 1. (1932) Russian Religion Chants - Theodore Chaliapine - Twofold Litany. Glory to Thee, O Lord
 2. (1959) Kind Of Blue - Miles Davis - Blue In Green
 3. (1960) Elvis Is Back! - Elvis Presley - Fever
 4. (1962) The Nutcracker (Complete Ballet) - LSO, Antal Dorati - Act II - Waltz Finale and...
 5. (1967) Sgt. Pepper's Lonely Hearts Club Band - The Beatles - A Day in the Life
 6. (1968) Ogdens' Nut Gone Flake - The Small Faces - Ogdens' Nut Gone Flake
 7. (1971) Hunky Dory - David Bowie - Oh! You Pretty Things
 8. (1975) In Los Angeles - James Last - Bolero '75
 9. (1977) Exodus - Bob Marley + Wailers - Jamming
 10. (1977) I Remember Yesterday - Donna Summer - I Feel Love
 11. (1977) Marquee Moon - Television - See No Evil
 12. (1981) Nightclubbing - Grace Jones - I've Done It Again
 13. (1982) Thriller - Michael Jackson - Beat It
 14. (1983) Swordfishtrombones - Tom Waits - Frank's Wild Years
 15. (1984) The Pearl - Harold Budd & Brian Eno - The Pearl
 16. (1986) Graceland - Paul Simon - Under African Skies
 17. (1987) Solitude Standing - Suzanne Vega - Tom's Diner
 18. (1990) Violator - Depeche Mode - Halo
 19. (1993) Bach Oratorios & Contatas - Collegium Vocale, Ph.Herreweghe - Choral. Der Lebensfurst, Herr Jesu Christ (BWV 43)
 20. (1994-96) Alfred Schnittke. The Complete String Quartets - Kronos Quartet - String Quartet No. 4 - IV. Vivace
 21. (1994) Grace - Jeff Buckley - Corpus Christi Carol
 22. (1996) Richard D. James Album - Aphex Twin - Logan Rock Witch
 23. (1996) Unchained - Johnny Cash - Rusty Cage
 24. (1997) Homogenic - Bjork - Hunter
 25. (1997) OK Computer - Radiohead - Exit Music (For a Film)
 26. (2000) Cult - Apocalyptica - Fight Fire With Fire
 27. (2000) Tourist - St. Germain - What You Think About...
 28. (2003) Tour De France - Kraftwerk - Chrono
 29. (2004) Amassakoul - Tinariwen - Amidinin
 30. (2004) Careless Love - Madeleine Peyroux - J'ai Deux Amours
 31. (2005) Takk... - Sigur Rós - Með Blóðnasir
 32. (2007) The Trentemoller Chronicles - Trentemoller - Klodsmajor
 33. (2008) This and That - Benjamin Grosvenor - Concert Study No.3 - Toccatina
 34. (2013) Psychic - Darkside - Paper Trails
 35. (2015) To Pimp a Butterfly - Kendrick Lamar - For Free (Interlude)
Test set of music material "Diversity"
The shorter musical test set, proposed by Hypethesonics for objective testing of audio paths. It is compiled of 10s excerpts (with fade in/out) from the compositions below. The playback time is 9m:28s.
 1. Rachmaninov - Prelude in G Major Op 32 no.  12
 2. Daft Punk – Give Life Back to Music
 3. Steely Dan - Haitian Divorce
 4. Pink Floyd - Dogs
 5. Rimsky-Korsakov - Scheherezade
 6. The Damned - Grimly Fiendish
 7. Seal - Deep Water
 8. Rush - Tom Sawyer
 9. Bach - Brandenburg Concerto
 10. Yes - Awaken
 11. Alan Parsons Project - The Fall of the House of Usher part ii
 12. Camel - Broken Banks
 13. Mussorgsky - Pictures at an Exhibition
 14. Symphony X - Communion and the Oracle
 15. Simply Red - Enough
 16. Queen - Made in Heaven
 17. Thomas Dolby - I Love You Goodbye
 18. R.E.M. - Fall on Me
 19. Asia - Rock & Roll Dream
 20. Art Farmer - What are you doing the rest of your life?
 21. Barock Project - Happy to see you
 22. Chuck Mangjone - The Children of Sanchez
 23. Chris Rhea - Daytona
 24. Handel - Music for the Royal Fireworks
 25. Renaissance - A Song for all Seasons
 26. Debussy - Nocturnes
 27. Dire Straits - Down to the Waterline
 28. Earl Klugh - Christina
 29. Echolyn - The End is Beautiful
 30. Fish - Shadowplay
 31. Fleetwood Mac - Go Your Own Way
 32. Genesis - Entangled
 33. Cosmograf - The Man Left in Space
 34. IQ - The Narrow Margin
 35. Janus Carmello - Joy Spring
 36. Joe Jackson - Target
 37. Jon & Vangelis - He is Sailing
 38. Kansas - Song for America
 39. Kaprekars Constant - Rosherville
 40. Dave Grusin - Modaji
 41. Keane - This is the Last Time
 42. Level 42 - 43
 43. Marillion - The Great Escape
 44. Novo Amor - Colourway
 45. Oasis - Fuckin' in the Bushes
 46. Pat Metheny - The First Circle
 47. Porcupine Tree - Lazarus
 48. Radiohead - Let Down
 49. DBA - Epilogue
 50. Glass Hammer - Towards Home We Fled
 51. Cassandra Wilson - Another Country
 52. Big Big Train - The Transit of Venus Across the Sun
 53. Magnificat
 54. Jethro Tull - One Brown Mouse
 55. Robert Len - Brasilia
 56. Schumann - String Quartet in A Minor, Op.41, No.1
 57. Tori Amos - Trouble's Lament
 58. Tears for Fears - The Working Hour
 
 