Author Topic: Matrix Mixer  (Read 6856 times)

Elberet

  • Full Member
  • ***
  • Posts: 167
I only own a cheap Logitech surround speaker set (which doesn't mean it's bad, mind you). To get the most out of stereo music (save for classical pieces), I've found that a matrix mixer is ideally suited to achieve a well defined and voluminous music experience. Unfortunately, Google failed me and I've not found a compatible DSP plugin for MusicBee, so I'd like to put this on the wishlist instead:
~ If it's not already possible, support multi-channel audio files, such as 5.1 AC3 audio recordings, and multi-channel audio output.
~ Please build a matrix mixer into MusicBee. It should automatically select a suitable user-defined matrix depending on criteria such as source audio chanels and file type (or disable itself when the source has more then 2 channels).

I'm sure this is unnecessary, but here's a screenshot of ffdshow's matrix mixer to illustrate what I'm looking for:

Steven

  • Administrator
  • Sr. Member
  • *****
  • Posts: 34410
multi-channel tracks should already be supported for audio-output.
if you just need something that upmixes from stereo to 5.1 output without customisation the i already have that - the option is just not displayed for now. If you need the customisation, it will need to wait to a later date
Last Edit: May 31, 2010, 11:36:11 AM by Steven

Elberet

  • Full Member
  • ***
  • Posts: 167
If the default way of stereo upmixing somehow correlates with my matrix, I'd be happy with that for now. ;)

I'm a bit sceptical, tho. All the Winamp DSP filters I've found try to do more and just end up failing. I've had one that produced ugly noise on the rear speakers, another couldn't deal with mono files and ended up putting that on the center speaker only, and the list goes on. :(

Elberet

  • Full Member
  • ***
  • Posts: 167
Steven, I'm sorry to dig this thread up again, but I have to revisit this topic.

My setup has changed a bit and the driver builtin 5.1 upmix via Dolby PLII is now unavailable, or at any rate nonfunctional; apparently, digital audio output is handled quite differently by Windows, so the driver can't mess with the audio data applications want to send.

Now, I would like to have MusicBee upmix stereo audio to 5.1, but that doesn't work for me; because what I actually need is 5.0 -- due to wallet-related constraints, I don't own these but have to do with this, and the Logitech receiver has a hardwired LFE crossover built in. The result is that the woofer plays much (*MUCH*) too loud since a portion of all other 5 channels is spliced out and added to the LFE signal provided by MusicBee.

IMHO, the Right Thing is to either provide a variable cutoff which filters frequencies below x Hz from non-LFE channels and mixes only those into the LFE, or ignore LFE completely and trust that the user owns either full-spectrum speakers or a receiver that does the proper crossover in hardware. Frankly, tho, I'd still prefer the matrix. ;D (A simple option to axe the LFE channel should do, tho.)
Last Edit: August 26, 2010, 11:01:09 PM by Elberet

Steven

  • Administrator
  • Sr. Member
  • *****
  • Posts: 34410
no user interface for setting the custom matrix yet but this version allows it to be set via the MusicBeeSettings.ini file
http://www.mediafire.com/?8ct12713yaqvq29

if you insert these 2 lines anywhere in the xml
  <PlayerCustomMatrixEnabled>true</PlayerCustomMatrixEnabled>
  <PlayerCustomMatrix>{{1,1,1,0,1,1,0,0,0}},{{1,0,0.5,0,1,-1,0,0,0},{0,1,0.5,0,-1,1,0,0,0}}</PlayerCustomMatrix>

the above assigns 0 to LFE, but if you need to tweak, the 1st grouping is for mono source files and the second stereo.
the speaker ordering is:
left-front, right-front, center, LFE, left-rear/side, right-rear/side, left-rear center, right-rear center

Elberet

  • Full Member
  • ***
  • Posts: 167
Bit of a problem: floats aren't parsed / stored properly.
Parsing: ".5" is read as float 0.5, "0.5" is read as int 5.
Writing: float 0.5 is written as "0".

Nevertheless... love it. :D

Steven

  • Administrator
  • Sr. Member
  • *****
  • Posts: 34410
i realise now i'm going to need to use a different syntax as when it saves the 0.5 for your regional settings it will save 0,5
i'll change it to
{{x;y;z},...
Last Edit: September 01, 2010, 06:40:56 AM by Steven

Steven

  • Administrator
  • Sr. Member
  • *****
  • Posts: 34410
i've changed the syntax as described above:
http://www.mediafire.com/?6uwx3ce6d1c58tu

you need to replace the old setting and use this which has the decimals formatted to german settings:
  <PlayerCustomMatrix>{{1;1;1;0;1;1;0;0;0}},{{1;0;0,5;0;1;-1;0;0;0},{0;1;0,5;0;-1;1;0;0;0}}</PlayerCustomMatrix>

Elberet

  • Full Member
  • ***
  • Posts: 167
Ok, this works.

But in the interest of other users and other, even weirder locales, and similar future problems, wouldn't it be easier to generally encode data written to XML files in a locale independent format? I'm sure no user expects to find locale-appropriately formatted numbers in an XML file anyways. :)

Antonski

  • Sr. Member
  • ****
  • Posts: 356
Steven,
would you implement a GUI interface for this feature, please?