After a lot of listening to music on various media and being  unsatisfied with "the sound" I would think could be a lot better I tried some standard and (as it appears) less standard ways to get the type of sound I want and suspect possible on a lot of well produced materials. I even have the  impression there are standards at stake here which  might even hold for the Kurzweil synth (PC3) I use, and at least that for monitoring the signal path I describe here has it's use.

The main ingredients of the improvements cover the following:

  1.  CD-mastering-reversed eq, including mid reduction and bass and high end boosts
  2.  Mid-range averaging by adding or subtracking a filtered FFT-based effect with eq+compression + stereo width  
  3.  A 4 band multi-expander
To work with a 192 kilo sample per second digital signal path (under Linux with 32 bit floating point audio samples per channel) I use the (among others) the "mplayer" upsample filter, which I give very large length and quality  parameters (though I didn;t check the source corde much yet to check it out), it resamples nice enough to use. I use Fedora 14  64 bit linux, this is the command I used for the example below:

./mplayer -softvol -ao jack:port=jack_rack_4cdplay -af volume=-9,resample=192000:100000:400000:100000  -cache 8192 /Musicdir/Music*/*azz*wav
The softvol option tells the audio (and video, even HD) player to not use the sound cards volume controls, the port is the name of the Jack-based program's audio connection, etc.

This example result is from a "Best of Jazz" CD I have in alphabetical order, no more then a few tens of seconds from the songs being pulled through the chain mentioned hereunder (I suppose under fair use):

   jazzmidexpa1.mp3  256 kbit/s stereo 3.5 MByte 44.1 kSs  mp3

I just went through the songs without many adjustments (a few are audible) and certainly wihtout makeing a detailed setting per song.

For the midfrequency averaging (not completely correc term) I use the Linux program "Jamin" which is a 1024 band FFT based equalizer, To run it at least some processor power is needed, but like I run it at 192kHz, a potent modern processor is needed (I use a I7-950 which as can be seen in the screendump runs in this case at 2.8GHz per core instead of the maximum 3.07), the frequency adjstment graph for this example can be seen below:



The graph shows the audio processing path (using patchage which is currently available under Fedora).

From the signal path it can be seen that the signal is passed to a parallel path over jamin and a "delay" block which can be accurately (without sub-sample processing) set to a delay matching the average FFT-mastering effect delay, and is mixed either in phase or in counter-phase (varies per song). changing the delay slightly gives a "jet engine" phasing-type sound on most normal materials, which "dips" to neutral at a certain point.

Before and after Jamin in the audio connection graph there are pre-filters and post filters and an expander (reverse of a compressor acts somewhat like a gate too):




Mainly the pre-filter cuts out the middle frequencies and feeds them through Jamin with a loudness curve-based adptation, and the post filter again filters throguh only the mid-range frequencies, reverses the loudness filter and applies an expansion to the signal which when the signal coming from Jamin is really low turns into a noise-gate.


Here is the CD-mastering-reversal filter (CD's have higher mid-range and less low to prevent resp. accuracy and dynamic range problems):








Also shown are the (fixed, always the same settings) expansion band filters and effects.




This is the main screen showing the unix bash-shell for mplayer and for starting all the audio processing programs up automaticallly with a Tcl scrip shown here, Qjackctl (part of Fedora Linux) for adjusting and starting the "jackd" audio deamon at 192000 kHz on the right sound card, the content of the "delay" rack running in parallel with Jamin, and the output rack of effects with a not-enabled additional (loudness-type effect) equalizer (of another type than the other eqs) a "master volume" control, a low-off filter and switched off limiter effect.

The "cdplay2" rack has only a gain control active, which drives the parallel expander racks from the output of the delay//midaverager path, to the point where all four bands are active while none goes "in the red", which can be seen from the 4-part VU meters attached to the outputs of the 4 expander bands. The other meters measure the output from the expanded Jamin effect and the overall output level.

Because on a lot of materials I tried (with quite varying settings) work pretty well on a Lexicon reverb (I have a MX 400 double-effect with digital IO I can use) after this type of processing, there's a slider for Lexicon reverb return in the startup script.

The midrange issue is NOT connected with the sample "reconstruction problem" per sé (unless maybe programmed by the master processor, but that's hard to do right). Of course like always, there's an issue with the Digital to Analog conversion in just about every piece of equipment (CD players computers, ipods, digital TVs, etc.). I've written about that here.

Additional work appears to be in order in the following subjects: bass-compression correction (quite heavily on some materials), the possible quest for (multi) compression, and harmonic distortion compensation in similar way as the above but with multi-band filter/gates after the FFT eq, whch I'll try and write about later.