ATSurround matrix decoder plugin for foobar2000

Jan 15, 2005 at 1:10 PM Thread Starter Post #1 of 10

atjs

New Head-Fier
Joined
Jan 12, 2005
Posts
6
Likes
0
Hello all, to those using foobar2000 as an audio player, you might like to know that I've created a matrix decoder DSP plugin for it. It is capable of decoding surround audio encoded using Dolby and similar processors.

I welcome everyone to give it a try and return feedback & critisms.
280smile.gif


Required are 5.1 capable speakers and soundcard. foobar2000 needs to be configured to use a 6 channel capable output plug, DirectSound v2.0 should do fine.

Project website: http://www.andrewlabs.com

Lastest version: 0.9.6a (as of 7th December 2005)

Andrew Tan (atjs)
 
Jan 15, 2005 at 1:21 PM Post #2 of 10
I'm pretty sure the special installer for foobar already includes AC3 decoding capabilities (foo_ac3 v0.6, specifically). What's different about this?
 
Jan 15, 2005 at 1:41 PM Post #3 of 10
The foo_ac3 plug is an AC3 decoder or more commonly known as a Dolby Digital decoder. It performs the same function like an mp3 input file decoder, which is, to open the file and uncompress the data. In this case the ac3 decoder opens .ac3 files and uncompresses it.

The ATSurround decoder performs matrix decoding, which is different. In this case the decoder receives 2 channel audio, which may be from an mp3, CD, etc., following which, it extracts encoded surround information from the audio. This surround information is channeled to one or more rear speakers. It may also reproduce an encoded centre channel, which, naturally is channeled to a centre speaker.

Therefore, my posted decoder accepts any stereo audio and reproduces encoded surround and rear channels. In a way, it's a surround expander. You may consider it if you own a multi channel speaker system and want to make use of all them, instead of only left and right from a stereo programme.
 
Jan 21, 2005 at 5:01 AM Post #4 of 10
I've uploaded version 0.9.4 of the surround decoder.

I've really tried to optimize the decoder fully this round. I'd like to know if anyone is facing issues where you suspect the decoder is hogging the CPU and reply with your computer specifications. Thanks to all who have tried my decoder!

Get it from the project website: http://www.metawire.org/~atjs

Changes are listed below:
Added centre channel virtualization
Removed ATSurround mode since centre channel virtualization makes it obsolete.
Decoding optimizations.
 
Jan 21, 2005 at 5:29 AM Post #5 of 10
Does this have any customizability to the creation of seperate channels? can i use it to output the same signal to all 5 channels? can i adjust the center width? rear delay? I do all of this on my receiver as of now, but b/c my desk chair isn't where the sofa is, i dont get good sound over here, but if i could customize it on the PC......
 
Jan 21, 2005 at 8:23 AM Post #6 of 10
Nice work!

I plan on trying this with my K1000s + subwoofer + rear speakers. I can't try it right now since my setup isn't connected.

CPU usage is pretty low for me. Sound quality is good. I'm using emu 1820m with ASIO output 6 channels.

What is the difference in the decoder modes?
 
Jan 21, 2005 at 4:49 PM Post #7 of 10
Quote:

Originally Posted by UserNotFound
Does this have any customizability to the creation of seperate channels?


I do not really understand what you're asking here.. There are individual speaker muting controls, if that is what you are saying.

Quote:

Originally Posted by UserNotFound
can i use it to output the same signal to all 5 channels?


I could write a mode to convert the source to mono and copy it to all 5 channels, though I'm not really sure what effect you want to achieve with that?

Quote:

Originally Posted by UserNotFound
can i adjust the center width?


I plan to add a centre width control in an upcoming version.

Quote:

Originally Posted by UserNotFound
rear delay?


A rear delay already existed from the beginning, have a look at the decoder.


Quote:

Originally Posted by lan
What is the difference in the decoder modes?


There are 5 modes at this time:
Bypass - exactly what it says
Mono - converts stereo sources to mono (centre speaker only)
ATSurround+C - a passive matrix decoding mode, similar to Dolby Surround
ATSurround-AS - an active matrix decoding mode, similar to Dolby Pro Logic
ATSurround-ASr - also active, similar to Dolby Pro Logic II

All these modes are present as a result of my experimentation with matrix decoding, so the previous ones exist simply for comparison between different modes. You'll find that the active modes are able to position a sound better in the sound field, as the mode uses some form of logic to 'steer' the sound. Passive modes use no logic and thus suffer from some form of leakage from the left and right channels into the surround channel.

Thanks for your feedback guys
3000smile.gif
 
Jan 26, 2005 at 5:51 AM Post #8 of 10
What is the slope of the crossover for the bass redirection? Can a feature be added where this is changable? How about a delay for the sub also?

I know you are optimizing for speed but could there be multiple settings for the quality/accurary of the calculations or something be added? Some people like to use less CPU but in a more dedicated computer approach, I like to use as much
tongue.gif
 
Feb 1, 2005 at 1:13 PM Post #9 of 10
Sorry for taking so long to reply. As you may/may not know, I'm doing this in my free time as a hobby. I'm doing national service in the armed forces, and may sometimes be caught up in busy-ness.

Quote:

Originally Posted by lan
What is the slope of the crossover for the bass redirection?


A butterworth filter used for bass redirection, where the slope is about 6dB per octave.

Quote:

Originally Posted by lan
Can a feature be added where this is changable?


Well, I could always increase the order of the filter. I'll give this a thought.

Quote:

Originally Posted by lan
How about a delay for the sub also?


Possible. I'll look into this too.

Quote:

Originally Posted by lan
I know you are optimizing for speed but could there be multiple settings for the quality/accurary of the calculations or something be added? Some people like to use less CPU but in a more dedicated computer approach, I like to use as much
tongue.gif



Actually, the decoder is already operating at the maximum bit depth that foobar throws at it. That is, double precision floating point (64bit). The only thing that is optimized for speed (where precision is sacrificed) in the entire decoder is the exp() calculations for audio steering dominance. But even that returns a number that is accurate to 11 decimal places. So I'd say, it isn't very significant. (Unless of course, you absolutely insist
tongue.gif
, then I'll use the fully IEEE compliant function)
 
Dec 8, 2005 at 4:53 PM Post #10 of 10
After a really really long time of not being able to update my projects. I've finally found enough time to improve (a little) the ATSurround decoder plugin for foobar.

Do note that this is a surround audio matrix decoder, not a soundfield virtualizer.

As always, any comments, compliments, criticisms are always welcome, to help me improve the plugin.

Get it from the project website: http://www.andrewlabs.com

The current version is 0.9.6a
 

Users who are viewing this thread

Back
Top