Each (optionally) equalized left/right datum stream was then directed to a user-selectable and adjustable spectral shifting (frequency lowering) subroutine.
This convolution-like frequency lowering subroutine involved a Fast Fourier Transform (FFT) of the stream followed by compression (e.g., 2-to-1 and 3-to-1 point averaging compression) of the FFT spectrum above a selected compression frequency threshold, fc.
To maintain spectral resolution characteristics of the original stream, the compressed FFT spectrum was also right-buffered (to maintain original FFT length), by filling the spectrum with appropriate nulling values in line with FFT baseline values, to compensate for FFT data points otherwise elimination between fc+(fmax-fc)/c and fmax, where fmax is the maximum frequency of the FFT spectrum and c=2 for the example
case of 2-to-1 point compression (and so on for other levels of compression).
Like other identified user selectable program parameters, the choice of frequency lowering parameters such as fc and level of compression (e.g., 2-to-1 or 3-to-1), are available to the user during the run-time of the program. Inverse FFT reconstructed each stream back to the time domain.