Skip to main content

Topic: Center Channel from Stereo (Read 10340 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • Moitah
  • [*][*][*]
Center Channel from Stereo
Reply #25
The VDCenterCut_Run() function needs a certain amount of input samples (kQuarterWindow) and outputs the same number of samples.  Since Winamp isn't going to give you exactly that number of samples each time (it's 576 in the case of FLAC, for example), the input is buffered until enough samples are collected.  Then the whole output is given back to Winamp at once.  The DSP plugin SDK states that you cannot output more than twice the number of input samples.  This isn't a problem now because the smallest number of input samples I've seen is 576, so you are allowed to output up to 1152 samples (which is just slightly bigger than kQuarterWindow).  When you increase the size of kQuarterWindow, the output becomes too large for Winamp's sample buffer to hold, causing an overrun.  The solution to this would be to create an output buffer, so that smaller blocks of samples can be passed back to Winamp more often, instead of one big block all at once.  I will try to do this soon.

(I hope that made sense... )
  • Last Edit: 22 January, 2004, 06:55:22 PM by Moitah

  • Moitah
  • [*][*][*]
Center Channel from Stereo
Reply #26
I finally got around to doing the output buffering.  I tested with a 32768 point FHT and it uses about 9% CPU on my P4 2.4GHz.  It really does sound noticably better .  I'll post it sometime tomorrow hopefully.

  • M
  • [*][*][*][*][*]
Center Channel from Stereo
Reply #27
Looking forward to the updated model...

    - M.

  • Moitah
  • [*][*][*]
Center Channel from Stereo
Reply #28
Version 1.2.0 is out now.  I delayed releasing it because I noticed larger FHT size causes echo to be added.  I e-mailed Avery about this and here's his response (I hope you don't mind me posting this, Avery ):

Quote
To be honest, I don't know exactly where the echo comes from, although
it does seem to be an indication that the algorithm is both becoming
more stable and less correct with larger window size (accuracy vs.
precision tradeoff).  4x8K is probably about the best that can be
accomplished.  The algorithm tends not to work very well at
either the low or high extremes of the spectrum, and windowing the
center channel's spectrum before subtraction might help, but I haven't
tried it.  I can tell you that center cut is quite sensitive to the
stereo quality of your sample; an MP3 that sounds OK can turn out very
ratty once the center channel has been removed, if joint-stereo mode
really zapped it.

You can also try increasing or decreasing the amount of overlap,
although that won't help much if the window size alone is giving
excessive echo or warbling.

I don't know enough about DSP to try his suggestions.  I ended up using a FHT size of 8192 because I think it's a good balance between warbling and echo, but if you look in the 'test' directory in the zip file I also compiled versions with 4k (this is how the code originally was), 16k, and 32k FHTs.
  • Last Edit: 30 March, 2004, 11:17:33 PM by Moitah