QuickEQ is a high performance, versatile audio measurement library, providing the foundations for an automated, leading precision, heavily configurable room correction software called Cavern QuickEQ.
The basis of most measurements, the FFT is in the main Cavern library, QuickEQ
is not even required. The Measurements class in the Cavern.Utilities
namespace has extension methods for float and Complex arrays. The following
FFT operations are available on both of them:
Complex[] FFT(samples)- Get the FFT of the input.- To get the spectrum of a real signal, the
FFT1Dmethod is the fastest.
- To get the spectrum of a real signal, the
void InPlaceFFT(samples)- Transform samples in-place (to spectrum forfloats).IFFTandInPlaceIFFTare only available forComplexnumbers by definition.
For optimal performance, the second parameter for each function can be an
FFTCache instance. These have to be constructed to the exact FFT size, and
will improve runtimes for multiple sequential transforms to the fraction of the
time without them. For software that run FFTs in multiple threads, using
ThreadSafeFFTCaches for each thread is mandatory.
EQ generation including FIR, zero-phase, and peaking filter versions is found in
the Cavern.QuickEQ.Equalization namespace. Target curves are available in the
Cavern.QuickEQ.EQCurves namespace.
Noise and sweep generation with multichannel timing are available in the
Cavern.QuickEQ.SignalGeneration namespace.
Displaying the spectrum of a measurement takes 3 steps, all of which are found
in Cavern.QuickEQ.GraphUtils:
ConvertToGraph- Linear spectra have to be cut and converted to logarithmic scale.ConvertToDecibels- The Y axis also requires a logarithmic transformation.SmoothGraph- To mitigate heavy spectrum fluctuations by the nature of sound, smoothing helps a lot.
For massive performance improvements, compile CavernAmp and place its build next
to Cavern.QuickEQ.dll. It doesn't require any code changes, but it only runs
on Windows.
- Scripting API with descriptions of all public members for all public classes