Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: New DSP ATSurround matrix decoder (Read 20803 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

New DSP ATSurround matrix decoder

Reply #25
Quote
And I'll try to find what's causing the high CPU usage. I'm getting 3% average on an AMD Athlon XP 2800+.
[a href="index.php?act=findpost&pid=271723"][{POST_SNAPBACK}][/a]

CPU useage on my Celeron D 2.66ghz is averaging 16% also.  Haven't tested it on my P4.  This is in 5.1 surround mode using the subwoofer pass filter to be more specific.  BTW, when using 5.1 source audio there is nothing from the other 5 channels sent to the subwoofer even when it's set to do so.

New DSP ATSurround matrix decoder

Reply #26
Quote
BTW, when using 5.1 source audio there is nothing from the other 5 channels sent to the subwoofer even when it's set to do so.
The decoder only processes audio sources with 2 channels, it ignores any sources with any more or less.
Andrew Tan

New DSP ATSurround matrix decoder

Reply #27
Quote
Quote
after trying ur plugin with the test .ogg file every chanel works except the rear ones, i can kind of hear them but looses out very quickly...
Perhaps you could elaborate on this? I'm not too clear on what you mean.

And I'll try to find what's causing the high CPU usage. I'm getting 3% average on an AMD Athlon XP 2800+.
[a href="index.php?act=findpost&pid=271723"][{POST_SNAPBACK}][/a]



ok ill try and explain

when i listen to the surround test.ogg file u have on your site
it says left channel in the left channel, then right, center etc. but when it comes to saying rear channel i cant hear it clearly or properly. sound like it cuts out

i hope this makes more sense..

New DSP ATSurround matrix decoder

Reply #28
Quote
when i listen to the surround test.ogg file u have on your site
it says left channel in the left channel, then right, center etc. but when it comes to saying rear channel i cant hear it clearly or properly. sound like it cuts out
Sounds like you may have a phase mismatch for your rear speakers, check if the positive and negative terminals for each speaker is connected correctly. If they aren't, it is possible that sounds may cancel each other out, causing it to seem like it 'cuts out'. Be sure to check that each speaker is working properly by itself, for example, by using your soundcard utility's speaker test.
Andrew Tan

New DSP ATSurround matrix decoder

Reply #29
To all those experiencing high CPU usage, I've recompiled the decoder with balanced optimizations for multiple processors. Not going to release it officially, but just releasing it here to let you guys give it a try and see if it improves anything and get feedback.

Get it here: http://atjs.2y.net/~andrewlabs/atsurround/...ound_0.9.4b.zip

Functionally, it is exactly the same as version 0.9.4a. Only the optimizations have changed.
Andrew Tan

New DSP ATSurround matrix decoder

Reply #30
With the new compile CPU useage seems to have dropped a little, looks to be about 14% on average now.  Good work, a few more tweaks like thay and it will be good to go. Any chance of making it optional to mix the bass to the woofer on sources that are more than 2 channels?  A lot of 5.1 content doesn't a have  proper LFE channel.

New DSP ATSurround matrix decoder

Reply #31
Yea CPU usage has dropped a little dropped down for me to 8%....which is going from 8% to 11% it changes constantly......but it's getting better....always CPU usage is a little more consistent......

New DSP ATSurround matrix decoder

Reply #32
Quote
To all those experiencing high CPU usage, I've recompiled the decoder with balanced optimizations for multiple processors. Not going to release it officially, but just releasing it here to let you guys give it a try and see if it improves anything and get feedback.

Get it here: http://atjs.2y.net/~andrewlabs/atsurround/...ound_0.9.4b.zip

Functionally, it is exactly the same as version 0.9.4a. Only the optimizations have changed.
[a href="index.php?act=findpost&pid=271846"][{POST_SNAPBACK}][/a]


yes all my speakers are working properly... as tested..



ok i have narrowed the problem down to when i am using my optical cable for speakers, normal audio cables make all the speakers work, i suspect it has something to do with the  PL 2 Music setting on my speaker box, which puts more encoding on the sound to make it even more surround...

New DSP ATSurround matrix decoder

Reply #33
Quote
Any chance of making it optional to mix the bass to the woofer on sources that are more than 2 channels?
It is certainly possible. However, it doesn't really come within the scope of this particular matrix decoder, which is a 2-5 system. (A 5-2-5 system means that, a 5 channel audio source is matrixed into a 2 channel stream, which can be distributed via CD, MP3, DAT, you name it. When it reaches the listener, a decoder dematrixes the 2 channel stream back into its 5 channel elements. (this portion is the 2-5 part)). Perhaps there is already a plugin which performs the function of bass redirection for audio consisting of an abitrary number of channels, if not I could write one. 

Quote
ok i have narrowed the problem down to when i am using my optical cable for speakers, normal audio cables make all the speakers work, i suspect it has something to do with the  PL 2 Music setting on my speaker box, which puts more encoding on the sound to make it even more surround...
Ah, I see the problem now. PL 2 only accepts 2 channel sources, same as my plugin. The ATSurround decoder processes the audio source (consisting initially only of Left & Right), strips the surround information and sends it to the rear speakers. When the audio reaches the PL 2 decoder (consisting of Left, Right, Centre, Surround Left & Surround Right), it is already devoid of surround information in the Left and Right channels (which are the only 2 channels which PL 2 looks at, it ignores the rest). Hence, you get the empty sound from your surrounds, because there simply isn't any surround data. It isn't that good an idea to stack multiple matrix decoders, if you placed the PL 2 decoder first, then sent it to my decoder, the effect heard would be the same (loss of data from the surrounds).
Andrew Tan

New DSP ATSurround matrix decoder

Reply #34
Quote
Quote
Any chance of making it optional to mix the bass to the woofer on sources that are more than 2 channels?
It is certainly possible. However, it doesn't really come within the scope of this particular matrix decoder, which is a 2-5 system. (A 5-2-5 system means that, a 5 channel audio source is matrixed into a 2 channel stream, which can be distributed via CD, MP3, DAT, you name it. When it reaches the listener, a decoder dematrixes the 2 channel stream back into its 5 channel elements. (this portion is the 2-5 part)). Perhaps there is already a plugin which performs the function of bass redirection for audio consisting of an abitrary number of channels, if not I could write one. 

Quote
ok i have narrowed the problem down to when i am using my optical cable for speakers, normal audio cables make all the speakers work, i suspect it has something to do with the  PL 2 Music setting on my speaker box, which puts more encoding on the sound to make it even more surround...
Ah, I see the problem now. PL 2 only accepts 2 channel sources, same as my plugin. The ATSurround decoder processes the audio source (consisting initially only of Left & Right), strips the surround information and sends it to the rear speakers. When the audio reaches the PL 2 decoder (consisting of Left, Right, Centre, Surround Left & Surround Right), it is already devoid of surround information in the Left and Right channels (which are the only 2 channels which PL 2 looks at, it ignores the rest). Hence, you get the empty sound from your surrounds, because there simply isn't any surround data. It isn't that good an idea to stack multiple matrix decoders, if you placed the PL 2 decoder first, then sent it to my decoder, the effect heard would be the same (loss of data from the surrounds).
[a href="index.php?act=findpost&pid=271985"][{POST_SNAPBACK}][/a]



makes sense but this isnt a software option its hardware that takes the audio from the optical cable then to speakers

is there any way to send the audio signal as a dolby 5.1 signal or DTS signal so it lets the box do the hardware decoding or encoding...

that would be awesome

New DSP ATSurround matrix decoder

Reply #35
Quote
Quote
Any chance of making it optional to mix the bass to the woofer on sources that are more than 2 channels?
It is certainly possible. However, it doesn't really come within the scope of this particular matrix decoder, which is a 2-5 system. (A 5-2-5 system means that, a 5 channel audio source is matrixed into a 2 channel stream, which can be distributed via CD, MP3, DAT, you name it. When it reaches the listener, a decoder dematrixes the 2 channel stream back into its 5 channel elements. (this portion is the 2-5 part)). Perhaps there is already a plugin which performs the function of bass redirection for audio consisting of an abitrary number of channels, if not I could write one. 
[a href="index.php?act=findpost&pid=271985"][{POST_SNAPBACK}][/a]

The Channel Mixer pluging has this feature, I just like the way this one sounds.  My soundcards mixer can send data from the other 5 channels to the woofer, but it does a terrible job at it.  I think your explanation makes sense, although I'll take your word for it regardless.

New DSP ATSurround matrix decoder

Reply #36
Quote
Gathering from what I listen, foo_channel_mixer seems to perform passive matrix decoding on the audio source (same as ATSurround+C). The difference is when you enable the ATSurround-AS modes. The -AS modes utilizes active steering, preventing leakage from Left and Right channels to the Centre and Surround channels. This is obvious when you listen to the SurroundTest.ogg sample file on the website. (Yes, I know it's down, I'll look for another provider.)
[a href="index.php?act=findpost&pid=271306"][{POST_SNAPBACK}][/a]


Thanks for such a detail explanation on the differences.

I've understood it now. 

New DSP ATSurround matrix decoder

Reply #37
I've uploaded version 0.9.5 of the surround decoder.

There are not many changes, but for those experiencing muddy LFE while using redirection may try the phase invert option.

And also, those working with multichannel audio sources may want to try out the surround encoder I've uploaded.

Get it from the project website: http://atjs.2y.net/~andrewlabs

Changes are listed below:
Added phase invert option for LFE channel.
Andrew Tan

 

New DSP ATSurround matrix decoder

Reply #38
I've uploaded version 0.9.6 of the surround decoder.

Hello all. Sorry I've been not available for the past few months. Been working on a couple of other projects, plus I've just started university. Many apologies for the lack of updates. However, I've finally found some time to update the plugin and bring the website back up.

I've added an option to make a couple of mathematical short cuts during decoding for those who experienced the issue with high CPU usage. Unfortunately, during all my testing, I was unable to reproduce this situation, so I've had to guess at the possible causes of it.

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

Changes are listed below:
Added option for faster decoding of ATSurround-AS modes (less accurate, but quite inaudible).
Removed LFE muting option since bass redirection enable performs the same action.
Decoding optimizations.
Andrew Tan


New DSP ATSurround matrix decoder

Reply #40
I keep getting "failed to load" when trying to use this. I'm using fb2k 0.8.3. I've tried using Direct Sound v2 as output. The channel mixer plugin works fine, but I'd like to try this. Any ideas?

New DSP ATSurround matrix decoder

Reply #41
Quote
I keep getting "failed to load" when trying to use this. I'm using fb2k 0.8.3. I've tried using Direct Sound v2 as output. The channel mixer plugin works fine, but I'd like to try this. Any ideas?[{POST_SNAPBACK}][/a]

"At least one required implicit or forwarded dependency was not found: MSVCR80.DLL"

You can try to download Visual C++ 2005 runtime from [a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=25ae0cd6-783b-4968-a841-38a2743307d9&DisplayLang=en]Microsoft[/url], but downloading >8MB for one library is bad idea, I guess...
My English is very good!
...in comparison with my Korean language...

New DSP ATSurround matrix decoder

Reply #42
OOps.

Yes, I did "upgrade" the project to Visual Studio 2005. This would now mean that the version 8 libraries would have to be used. I'll upload the required runtime files to my webserver. Fortunately, the final version of the runtime is only about 2.5 mb. Look for it at the download page of the plugin at http://www.andrewlabs.com

Sorry for the inconvenience caused 
Andrew Tan

New DSP ATSurround matrix decoder

Reply #43
The libraries failed to install on my WinXP SP1 saying that "A DLL required for this install to complete could not be run".

For those experiencing the same problem, here's a workaround I've found (cf. here): download a newer version of Microsoft Installer. I got one here

New DSP ATSurround matrix decoder

Reply #44
Uh. I just realized I could have compiled the plugin such that it wouldn't have to be dependant on the C libraries.

I've uploaded the next version of the decoder, 0.9.6a.

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

Changes are listed below:
Recompiled plugin such that it is no longer dependant on Visual C++ 8.0 dll libraries.
Andrew Tan

New DSP ATSurround matrix decoder

Reply #45
Is it possible to make an option that ATSurround would turn on only if there's positioning (surround) information encoded in a stream? I mean that it would not try to upsample a simple stereo signal.

New DSP ATSurround matrix decoder

Reply #46
Quote
Is it possible to make an option that ATSurround would turn on only if there's positioning (surround) information encoded in a stream? I mean that it would not try to upsample a simple stereo signal.
[a href="index.php?act=findpost&pid=348144"][{POST_SNAPBACK}][/a]

Unfortunately, it is not possible. Surround information (in the form of out-of-phase audio) is present in just about any stereo recording today. If you play a stream, and no audio is heard in the rear speakers, this means there is truly no surround information in the stream.

The human mind/ear interprets out-of-phase audio as coming from behind (or behind you), so what the decoder does is enhance this effect by actually bringing the surround information (which up to now, is only heard "virtually") to the physical rear speakers.
Andrew Tan

New DSP ATSurround matrix decoder

Reply #47
Quote
Quote
Is it possible to make an option that ATSurround would turn on only if there's positioning (surround) information encoded in a stream? I mean that it would not try to upsample a simple stereo signal.
[a href="index.php?act=findpost&pid=348144"][{POST_SNAPBACK}][/a]

Unfortunately, it is not possible. Surround information (in the form of out-of-phase audio) is present in just about any stereo recording today. If you play a stream, and no audio is heard in the rear speakers, this means there is truly no surround information in the stream.

And for such cases I'd like ATSurround to automatically turn itself off. You see, I have a Creative soundcard that automatically upsamples stereo to 5.1 (it's called CMSS 3D) - which is quite comfortable for listening to pure stereo files on a 5.1 system. It is turned on for 2-channel input, and turned off for 6 channel input.

Now, when I play a 2-channel file that has surround information, ATSurround outputs it to 6 channels according to that information. But when I play a 2-channel file that has no such information, it outputs only 2 front channels AND prohibits CMSS 3D from making use of the rest of my speakers. The moment I manually remove ATSurround from fb2k's DSP list, CMSS 3D kicks in.

I gather that ATSurround outputs 5 channels all the time, while with pure stereo input it only makes the other three channels mute (put present anyway). Which probably makes my soundcard recognize it as a 5-channel signal that needs no upsampling (while in fact it is a 2-channel only stream). If ATSurround could "turn itself off", that is, to switch back to 2-channel output if there's no surround present, it could cooperate just fine.

New DSP ATSurround matrix decoder

Reply #48
CMSS works in a similar manner to ATSurround. Neither can tell the difference whether an audio file has surround information or not, due to the reason that the audio file simply doesn't give any clue to decoders whether the surround information is to be decoded or not. Unfortunately then, ATSurround is unable to decide when to turn itself off by analyzing the audio data.

As such, CMSS also upmixes every audio source to (in your case) 5.1. Which is similar to what ATSurround does. The difference being CMSS performs soundfield virtualization and ATSurround does surround decoding.

You could say that both these processors are incompatible with each other. I'd appreciate anybody who has a solution for this problem.
Andrew Tan

New DSP ATSurround matrix decoder

Reply #49
Quote
As such, CMSS also upmixes every audio source to (in your case) 5.1. Which is similar to what ATSurround does. The difference being CMSS performs soundfield virtualization and ATSurround does surround decoding.

But the problem is that when I have a file without surround information CMSS upmixes it to 5.1, while ATSurround outputs only FR,C,FL (plus bass redirection) and, as I've said, prohibits CMSS from upmixing it further. Which leaves rear speakers idle.

Quote
CMSS works in a similar manner to ATSurround. Neither can tell the difference whether an audio file has surround information or not, due to the reason that the audio file simply doesn't give any clue to decoders whether the surround information is to be decoded or not. Unfortunately then, ATSurround is unable to decide when to turn itself off by analyzing the audio data.

However, other software DPL decoders (like the one in InterVideo WinDVD) can indicate when input is DPL-encoded. Which means that somehow they can tell the difference.

Also, can't mute surround (rear) channels tell ATSurround that the stream probably has no surround information at all? I bet most music files either have encoded rear channel signal right from the start or altogether have it not (for example, when a surround-encoded Audio CD gets reencoded to a lossy format without a DPL-aware medium or using lossy stereo mode that ruins positioning information).