Improving the stock Koss PortaPro's sound&soundstage via DSP
Jun 28, 2007 at 4:58 AM Thread Starter Post #1 of 7

sound_man

New Head-Fier
Joined
Jun 28, 2007
Posts
23
Likes
0
This is a purely digital (signal processing-based) modification to the PortaPro sound, so you'll need a PC for this.
But still this is not strictly computers-as-source because you don't need a computer as a playback device, just as a number cruncher.
Side note: Actually, this would also work with many other good headphones of which the transfer function (the frequency response) is known, but since I don't currently own any other good ones, I cannot test what transfer functions (from HeadRoom) are actually usable.

What it does:
In technical terms, this DSP modification gives the PortaPro a more balanced/neutral/natural sound by removing most of it's specific colorations (this includes more deep bass, less midbass/lower midrange, more balanced upper midrange and richer highs). And second, it expands the soundstage more towards the front and rear. If there is a downside, then it's that rock music (with powerful, distorted guitars etc.) sounds less juicy with that setting (you have to give up some naturalness to get good rock performance back).

Metaphorically speaking, the difference is like between a) sitting in some control room and monitoring a mix using PortaPros (not recommended, as you know) and b) being right down in the concert hall or club, with real speakers/real singers/real instrumens. And I don't mean bootleg-quality but being-there-quality. Of course I can only describe how it sounds to my ears so you have to make up your mind for yourself.

What you need:
The Foobar2000 music player and a bunch of DSP plugins (more on that later).

How it works:
The music is sent through the following stages:
your music --> optional surround decoder --> Dolby Headphone (HRTF) --> Convolver (NeutralPhone*PortaPro^-1) --> PortaPro --> your ears
Put simply, the whole chain should sound more or less as if you were sitting in the sweet spot of some high-end listening room.
To make this possible with a particular headphone, a couple of transformations are necessary.

1. Dolby Headphone:
Dolby Headphone, being a room simulation, transforms the raw music just like a setup of neutral (i.e. expensive) speakers, the air between the speakers and you, and your (more precisely: Joe Average's) earlaps. Since the resulting sound is then transformed by an actual headphone (and, as you know, most headphone models sound rather different from each other), Dolby Headphone is necessarily tuned for one reference headphone's transfer function, with which it would sound best. So what is this reference transfer function?
  1. It won't be totally linear since no real-world headphone is, nor should be (because that would be way too bright, or at least a lot brighter than the mastering reference speaker systems used for most music).
  2. It could be an average of several high-end phones, but this would be a rather random choice, and combined with the fact that above 2KHz every headphone's frequency response gets really weird, the choice gets even more random.
  3. What remains is an artificial, pretty linear but sufficiently "pleasant" transfer function (which drops off towards high frequencies and also a tiny bit towards the deep bass). This would probably also be the average of a very large number of high-end headphones.
2. The Convolver:
Now that we have decided how the headphone should sound, the next step will be to make it actually sound like that for real.
The only requirement for this is knowing the transfer function of the Koss Porta Pro. A measured approximation is available at HeadRoom.
It had to be hand-tweaked here and there, so obviously the measurements were not all that good. It's likely that there are still some abberrations in the final result, which can and should be fixed (just by overpainting it with e.g. Photoshop and then regenerating the filter).
The transfer function that we want it to have can also be painted, which is also not too difficult.
So when we have these two curves, which I will call source (how the actual headphone sounds) and target (how it should sound), we can generate a filter which can be loaded into the convolver. This filter basically "subtracts" the frequency response of the actual headphone from the signal and "adds" the desired frequency response to the signal. When the filtered sound is ultimately played, the playback device (namely the Koss) "adds" its own frequency response which cancels itself out with what was previously subtracted. What remains is the response of the desired headphone. And the (hopefully negligible) measurement inaccuracies plus the harmonic distortion, which can not be modelled by this class of filter.
Btw: The harmonic distortion of the Koss is not far from that of a DT770/880/990 and much better than what most current IEMs can provide (source: HeadRoom), apparently except for the J-Jays.

0. The surround processor.
Since the simulated room is equipped with a surround system, you can play multichannel audio over it, e.g. DVD-Audio or DTS (which is possible with foobar). The surround processor, on the other hand, splits stereo music into surround sound, if the music contains the necessary information.
Unfortunately, CD albums with good surround sound are sparse, but occasionally (especially with newer recordings), you get that little extra experience, e.g. instruments, echoes or ambience that come from behind or from the sides.
But even if your music is "plain" stereo, you get at least a center speaker (and it is not a crappy center speaker), which makes vocals etc. a lot more real/concrete than with only 2 front speakers in your virtual room. The processor which I'd recommend is Free Surround, because it doesn't mess up plain stereo sound like some others do.

How good is the whole thing?
Of course that depends on your sound card (and amp), if you use your PC for playback.
Btw: You should disable *all* equalizations, e.g. the windows bass/treble controls, what your sound driver provides and what your amp applies, if you use one. But luckily you _don't have to_ use a PC for playback. You can burn the converted output to a CD, since it is nothing but stereo music, or put it onto your iPod/iMod/whatever.

There are two things which could be further improved.
The first one is the correctness of the headphone's measurements. Second is the choice of the target transfer function.
Often it's very difficult to spot such imperfections, given all the unknowns in how the music is recorded and mixed/equalized/mastered.
To do this, one needs the right amount of listening experience, the right music and the knowledge of how good sound has to sound. Not to mention good ears. I am very interested in correcting any such annoyances, if they exist, and I think here is the right place to ask.
If this can be made perfect, the quickest way would be via feedback from a community such as this one.

So, how to get the necessary software?
Well, unfortunately, this is not for the faint of heart.
  • Download and install Foobar2000 (full install). You need at least version 0.9.4.2 for this to work.
    Let's call the directory where you installed foobar2000 (most likely C:\Program Files\foobar2000) YourFoobarDirectory.
  • Download the Convolver and put the contained dll into YourFoobarDirectory\Components
  • Setup Dolby Headphone
    a) Download the Dolby Headphone Wrapper. Put the dll into YourFoobarDirectory\Components
    b) Get a copy of a software dvd player which supports DH (you only need the DOLBYHPH.DLL), e.g.
    http://www.cyberlink.com/multi/products/main_1_ENU.html or http://oldversion.com/program.php?n=powerdvd Put that dll into YourFoobarDirectory. Note that it is not legal to use the DLL after your trial period has expired.
  • Download Free Surround and put this dll into YourFoobarDirectory/Components.
    You need another supplement dll, which goes directly into YourFoobarDirectory.
  • Download the attached filter: You should put the zip file contents into YourFoobarDirectory
  • If you have an Audigy (any version) sound card and want the best possible sound quality (on your line outputs), then download the SRC resampler. Put the dll into YourFoobarDirectory/Components
  • Start foobar.
    1. Press Ctrl+P, go to DSP Manager.
    2. From the Available DSPs list, select Free Surround and press the "<=" button (i.e. "enable it").
    3. Press the "configure selected" button and then drag the "center image slider to 0.8" (or what suits you best, you can later experiment with that).
    4. Accept the settings.
    5. Next, enable Dolby Headphone (again by selecting it, pressing "<=", then pressing "configure selected".
    6. Press "...", and choose the location of the DOLBYHPH.DLL (should be directly in your foobar2000 folder by now), then accept.
    7. If you want to be able to play back music which is not 44100Hz, enable Resampler (PPHS). Nothing to configure there.
    8. Finally, enable the Convolver, and open its config dialog.
    9. Select the impulse file named Koss Filter 1.wav (from filters.zip; should be located in YourFoobarDirectory by now).
    10. If you have an Audigy sound card, do the follwing:
      • enable Resampler (Secret Rabbit Code) and open its config dialog, choose Medium Sinc Interpolator (or, if you PC isn't fast enough, choose Fastest Sinc Interpolator), set the output sample rate to 48000 and close the config dialog.
      • if you want to circumvent CMSS 3D, enable the "Convert Stereo to 4" channels plugin. This dsp does not alter the sound by itself,
        but your soundcard might otherwise switch into a special (stupid) mode with additional equalization.
    11. Enter a preset name (below the Active DSPs listbox), e.g. Koss Surround and press Save.
    12. Close foobar2000 and start it again (IIRC, that was once necessary for DH's first-time configuration, don't know if it still holds).
  • Listen to some music.
    smily_headphones1.gif

    There is also a file called channeltest.mp3 file. You can use it to test your room setup (a voice should be played on the left front, left rear, right rear, right front, center speaker - of course over your headphones).

Converting files with foobar2000, so you can use external playback devices is a slightly different story (but not much more difficult).
To make that short:
  1. Just select a bunch of files in your playlist
  2. right-click, select Convert/Convert To...
  3. select some encoder (wav should be supported natively, but flac/mp3/... is also possible, of course.
  4. actiate the DSP Processing checkbox
  5. press "..." right next to that
  6. pick one of the presets you created (or create a new one) and load it using the "Load" button.
    But don't use an Audigy-specific one (since these are unnecessarily resampled to 48KHz).
  7. Press ok and again ok, and your files should get converted
  8. You can fully customize the file naming scheme, but that's beyond the scope of this post

So, hopefully I have not forgotten anything
tongue.gif

Btw: Foobar2000 contains a ton of other neat utilities, e.g. crossfeed for those who'd like to avoid Dolby Headphone.
 
Jun 28, 2007 at 5:36 AM Post #2 of 7
good job.

I got stuck launching foobar after copying all the dlls over. It says dsp_fsurruond doesn't work for this version or is missing dependency. My version is 9.4.2 and i have the libfftw3f-3.dll in the folder. is there something I'm missing?
 
Jun 28, 2007 at 12:41 PM Post #3 of 7
Quote:

Originally Posted by The Burn Pt.2 /img/forum/go_quote.gif
good job.

I got stuck launching foobar after copying all the dlls over. It says dsp_fsurruond doesn't work for this version or is missing dependency. My version is 9.4.2 and i have the libfftw3f-3.dll in the folder. is there something I'm missing?



I have 0.9.4.2, too, so there should be no version conflict.
Is libfftw3f-3.dll directly in the foobar2000 directory (where it belongs) or in foobar2000\components (where it doesn't belong)?
If this was the problem, make sure that you also copied the dolby dll into the same directory.

If this isn't the problem, the only other potentially missing dependency that comes to my mind would be this,
although not many programs run without that these days, so you should already have it.

If this still doesn't fix it, you could also skip the Free Surround steps for now which gives you only 2 "speakers", but that's enough for testing.
 
Jun 28, 2007 at 11:44 PM Post #4 of 7
Thank you for providing all this info, OP!

Koss PortaPro has a well-deserved place in my collection. Not too long ago I learned about what a cable change can do to what they deliver, now this info that may improve things even further.

I can't help but feel deeply impressed by what can be mediated by such inexpensive means.
 
Jun 30, 2007 at 12:12 AM Post #7 of 7
Quote:

Originally Posted by grndslm /img/forum/go_quote.gif
Ehh.. what's the cliff notes version of what all this does?? ...wondering if it'll help my KSCs


I added a "What it does" section which should answer your question.
I'm not sure if the KSCs are close enough to the PortaPros to still sound good with these modifications.
But if not, one can create a special version, of course.

Plus there are now some sound samples, which you can try immediately (but disable all equalizers, crossfeed etc. when testing these!).
 

Users who are viewing this thread

Back
Top