estreeter
Headphoneus Supremus
- Joined
- Jun 10, 2009
- Posts
- 8,336
- Likes
- 483
Thanks for the feedback on this guys - incredible amount of effort went into those measurements and I hope that this might inspire others.
If the signal is not stable on one channel, make sure that there are no contact problems. By the way, what are you trying to measure, and exactly how ?
I was able to do a successful test on my sound card by looping it from the mic to the the first line in port.
The mic? What? You're supposed to connect the output of whatever device you're measuring (a headphone out or a line out) to the line in of your soundcard, and record that. The mic input should never be used for RMAA measurements.
A few more simple command line utilities:
dsputils.zip
"convolve" convolves a sound file with another one. But it can also convolve with a maximum length sequence, or a simple FIR lowpass or highpass filter. Additionally, some transforms (inverse filter, linear phase, minimum phase) can be applied to the impulse response. By convolving a recorded maximum length sequence with a reverse MLS, the impulse response can be extracted. It is also possible to resample the input file by any fractional ratio, to correct DAC/ADC sample rate mismatches.
"resample" converts the sample rate of a sound file. There are obviously many tools for that purpose, but it allows for resampling by fractional ratios (e.g. from 44100.28767753 Hz to 44100 Hz), can apply fractional sample delays, and do this with decent accuracy and quality. The interpolation quality, lowpass filter length, cutoff frequency, and linear vs. minimum phase are configurable.
Both the above utilities can apply a gain to the output (overall and separately for each channel), and write WAV files in floating point or 8, 16, 24, or 32-bit integer format. Integer formats are dithered.
"sinetest" analyzes and prints the frequency, amplitude, and phase of a sine wave. This can be used, with the "resample" utility, to correct the level, sample rate, and delay of a loopback recording that includes a few seconds of a test tone.
can't for the life of me properly run the test on a DAP. They need to make this **** easier lol.
This is all alien to me lol. I already gave it up. I don't know how I was able to get good results testing the damn sound card itself but can't for the life of me properly run the test on a DAP. They need to make this **** easier lol.
testgen testgen.txt test.wav 44100 16 arecord -f dat -f S32_LE -r 96000 -D hw:1,0 --period-size=8192 --buffer-size=16384 -d 52 loopback.wav aplay -D hw:0,0 --period-size=8192 --buffer-size=16384 sample2.wav sinetest -d 13 loopback.wav -c 1 -f 2500 -a 0.9 -p 0 Channel #1: frequency = 2499.94092442 Hz amplitude = 0.54074378 (-5.340169 dBFS) phase = 288.296957 degrees frequency correction = 1.000023630791 amplitude correction = 1.66437422 (4.42501961 dB) start time = 2.280533559587 s (218931.2217203 samples) sinetest -d 13 loopback.wav -c 2 -f 3000 -a 0.9 -p 0 Channel #2: frequency = 2999.92910926 Hz amplitude = 0.54400694 (-5.287911 dBFS) phase = 201.926923 degrees frequency correction = 1.000023630806 amplitude correction = 1.65439065 (4.37276132 dB) start time = 2.280533586866 s (218931.2243391 samples) average frequency correction = 1.0000236307985 average start time = 2.2805335732265 resample -il 128 -k 2.2805335732265 -m 1.0000236307985 -g1 1.66437422 -g2 1.65439065 -d 50 loopback.wav lb_fixed.wav resample -il 128 -fl -2000 -r 96000 -f 3 sample.wav A.wav resample -k 19 -d 29.78544217687 -f 3 lb_fixed.wav B.wav