View Full Version : Avoid kmixer and still get correct 5.1 playback in a 7.1 setup
deathlord
26th April 2011, 19:18
Hi
In order to get maximum audio quality in Windows, it is probably a good idea to avoid kmixer (whatever its name in the different Windows versions, more details how to avoid it below). It appears that in this case, 5.1 and 7.1 material plays inconsistently, i.e. the side channels of the 5.1 signal are played through the back rather than through the side speakers.*
This thread is intended to discuss the causes of this problem and how to best overcome it. In my opinion it should be possible to play multichannel audio of any common format without having to worry about number of channels or file type every time. Of course one may argue given the number of 7.1 recordings/soundtracks in movies this is not very important. I believe since these sources (BD, BD-audio) exist and are likely to grow in number, the issue should be addressed.
Even though this is a “playback” issue, I think it fits in this section, because it is closely related to how the audio is encoded.
The situation is complicated and confusing. Encoding, OS version, playback software, soundcard driver, audio renderer or audio file format may have an influence. I will do my best trying to explain what is happening. However, I may not have understood everything correctly, so corrections to my explanations are welcome.
I encounter the problem as follows
Audio file format: Wave Format Extensible, 5.1 and 7.1 or flac created from it using eac3to
OS: Win7x64
Playback software: Foobar2000 with WASAPI plugin
Soundcard: RME HDSP 9632 /Soundblaster X-fi Gamer, most recent drivers
However, I expect the problem to appear “somehow” in any Windows with any soundcard and any playback software, as long as a means to bypass kmixer is used I will try to summarize what I have found:
RME, WASAPI Creative, WASAPI Creative, direct sound
wav i c c
flac i i i
Here, “i” means incorrect, i.e. surround goes to back, “c” means correct, surround goes to side (while in all cases the routing of 7.1 signals is identical). I can’t test the RME card in direct sound, since the people at RME have not yet managed to write a driver that can correctly play multichannel formats in direct sound.
What strikes me is, that with the Creative card there is a difference between wav and flac, while with the RME card there isn’t.
How did I test this?
I used the official 8 channel test file from Microsoft (http://www.microsoft.com/windows/windowsmedia/howto/articles/creating71audio.aspx) and created 48/16 versions for 7.1 and 5.1 from it using eac3to and wavewizard:
6 channels wav:
http://www.megaupload.com/?d=T0D09T1A
8 channels wav:
http://www.megaupload.com/?d=GM455Z5I
6 channels flac:
http://www.megaupload.com/?d=EBOBEE16
8 channels flac:
http://www.megaupload.com/?d=Z5DGMDS5
Why does it happen?
Let me try to explain:
In an audio file, the channels are arranged in a certain order. For wave format extensible, Microsoft defines the following order for wave format extensible (http://msdn.microsoft.com/en-us/library/ms713496.aspx , left out irrelevant channels):
FRONT_LEFT 0x1
FRONT_RIGHT 0x2
FRONT_CENTER 0x4
LOW_FREQUENCY 0x8
BACK_LEFT 0x10
BACK_RIGHT 0x20
SIDE_LEFT 0x200
SIDE_RIGHT 0x400
The flac files encoded by eac3to follow the same convention.
When playing back an audio file, some entity has to make sure, each channel is routed to the right speaker. Now as far as I understand, kmixer is this entity. When using direct sound, i.e. kmixer is active (I am not quite sure the two are equivalent), the routing should be correct.
If kmixer is not used, I would assume the routing will be 1:1, which would explain exactly why the surround channels come through the back.
However, two entries in the above table cannot be explained like this:
1) The creative card plays back wav correctly even in WASAPI
2) The creative card plays back flac incorrectly in direct sound
Why?
1): All I can think of is WASAPI is not used/not working here or the Creative driver is doing something creative on its own
2): Maybe kmixer is not used here? But why?
How can it be solved?
First of all, I believe, before solving anything, we have to understand what is going on. To me, the above explanations are not yet satisfactory.
My explanation seems plausible at least for what’s happening with the RME card. There, I can see to ways of solving the problem (not involving Microsoft or the sound card manufacturers):
1) Encode differently
2) Change the playback
For 1) one could simply swap side and back of all 7.1 material in eac3to.
Pro: problem solved for a given setup
Con: bad for playback in a setup that actually works correctly
For 2) it gets difficult. Something in the playback chain will automatically have to check if it is a 5.1 or 7.1 file and swap channels accordingly. Maybe it is possible to write a directshow filter that will do this, though I don't know this would be done.
Now, everyone who has arrived down here is invited to comment explain, propose...:-) It would be helpful if some people could confirm this, using other sound cards, too.
Maybe it's a good idea to discuss wav first and save flac for later?
Cheers
deathlord
* I am assuming here that the “correct” way of playing back a 5.1 signal through a 7.1 setup is to play the “surround” channels through the side, the back channels get no signal. Dolby recommends 90-110° for the surround/side speakers in 5.1/7.1 setups, so this seems to be a very reasonable assumption.
edit: See more also my more detailed explanation below: (http://forum.doom9.org/showthread.php?p=1496289#post1496289)
Midzuki
27th April 2011, 01:49
Just two things:
1) Regarding the decoding of lossless multichannel audio on Windows, all filters (excepting possibly madFlac) suck somehow;
2) welcome to the multichannel hell :devil: :) The subject was already discussed to death, especially in the eac3to specific thread, and NO :( reasonable "solution" has been found so far (afaIk, at least).
* I am assuming here that the “correct” way of playing back a 5.1 signal through a 7.1 setup is to play the “surround” channels through the side, the back channels get no signal. Dolby recommends 90-110° for the surround/side speakers in 5.1/7.1 setups, so this seems to be a very reasonable assumption.
I still do not understand (nor accept) — the BACK channels should be played as BACK channels on a 5.1 setup, BUT shall be played as SIDE channels on a 7.1 setup.
:confused: :confused: :confused: :confused: :confused:
deathlord
28th April 2011, 09:51
1) Regarding the decoding of lossless multichannel audio on Windows, all filters (excepting possibly madFlac) suck somehow
When I use MPC with madFlac and reclock in WASAPI mode, I get the same as above, so madFlac, the way it is working today, is not the solution.
The subject was already discussed to death, especially in the eac3to specific thread
I have probably read most of that. As you say, no satisfactory solution yet, hence my thread.:)
I still do not understand (nor accept) — the BACK channels should be played as BACK channels on a 5.1 setup, BUT shall be played as SIDE channels on a 7.1 setup.
Let my try to explain differently:
Playback of 5.1 material in a 7.1 setup
5.1 --> 7.1
FL --> FL
FR --> FR
FC --> FC
LF --> LF
SL --> SL (surround goes to side)
SR --> SR
0 --> BL (back gets no signal)
0 --> BR
The reason for this is the surround channels (or back channels or rear channels if you want) must be coming from the same physical location, no matter the setup. In a 7.1 setup this means these channels must be played through the side channels exclusively, not the back channels. Reason: The position of the surround channels in a 5.1 setup is the same as the position of the side channels in a 7.1 setup, i.e. same angular range (90-110°) according to dolby.
http://img855.imageshack.us/img855/4550/10744937.jpg (http://img855.imageshack.us/i/10744937.jpg/)http://img215.imageshack.us/img215/2672/91912562.jpg (http://img215.imageshack.us/i/91912562.jpg/)
Source: http://www.dolby.com/consumer/setup/speaker-setup-guide/index.html
tebasuna51
28th April 2011, 11:10
...
The reason for this is the surround channels (or back channels or rear channels if you want) must be coming from the same physical location, no matter the setup.
I never see the surround channels (5.1) at 90º, always was at 110º-120º.
Maybe Dolby change the setup to avoid the problem, but there are old ac3 material with surround channels calculated to 120º.
Change now the setup is a wrong solution, because perplexes users as you can see in your wellintentioned post.
I think a 5.1 must be played in a 7.1 system with:
Side speakers = 0.7 x Surround speakers
Back speakers = 0.7 x Surround speakers.
Mark_A_W
28th April 2011, 11:23
I agree that the SIDE channels should be used in a 7.1 setup when 5.1 material is played (and the bacsk are silent).
The 7.1 SIDE channels are closer in position to where 5.1 surrounds are supposed to be positioned.
My Xonar/Windows gets this wrong, so I just set Ffdshow to duplicate a 5.1 signals surround channels to both side and back for 7.1 in the mixer (I turn the ffdshow mixer off for true 7.1 sources, which are very rare).
Mark_A_W
28th April 2011, 11:31
I never see the surround channels (5.1) at 90º, always was at 110º-120º.
Maybe Dolby change the setup to avoid the problem, but there are old ac3 material with surround channels calculated to 120º.
Change now the setup is a wrong solution, because perplexes users as you can see in your wellintentioned post.
I think a 5.1 must be played in a 7.1 system with:
Side speakers = 0.7 x Surround speakers
Back speakers = 0.7 x Surround speakers.
Yes, that's pretty close to what I did with the ffdshow mixer.
I didn't use 0.7, I used 1.0, but then turned the Xonar levels down, same result.
deathlord
28th April 2011, 11:46
I never see the surround channels (5.1) at 90º, always was at 110º-120º.
You can place the side channels in 7.1 at 110°, too. Then playing surround through side only will still be correct (see pictures above).
In fact, if dolby changed their 5.1-recommendation from 110-120° to 90-110°, 110° would be the only angle correct for both old and new material (and maybe an acceptable compromise for material produced for 120°, too).
I turn the ffdshow mixer off for true 7.1 sources, which are very rare
Do you think there is a way to make ffdshow switch between different presets for 5.1 and 7.1 automatically? This would correspond to solution 2) as decribed above.
Mark_A_W
28th April 2011, 14:20
Do you think there is a way to make ffdshow switch between different presets for 5.1 and 7.1 automatically? This would correspond to solution 2) as decribed above.
I've tried with the auto preset load feature, based on channel number. And it doesn't work for me (using madFLAC as the decoder, then passing the audio through ffdshow).
However oddball has it working in the ffdshow thread - page 673
http://forum.doom9.org/showthread.php?t=120465&page=673
I've never got the damn auto preset thing working for any function reliably. I realise it has to be something the audio decoder can "see" in it's filter chain (so something video decoder related is inaccessible), therefore it should work for channel number.....but nup, it no workee for me :confused:
Midzuki
28th April 2011, 14:36
Let my try to explain differently:
Playback of 5.1 material in a 7.1 setup
5.1 --> 7.1
FL --> FL
FR --> FR
FC --> FC
LF --> LF
SL --> SL (surround goes to side)
SR --> SR
0 --> BL (back gets no signal)
0 --> BR
The reason for this is the surround channels (or back channels or rear channels if you want) must be coming from the same physical location, no matter the setup.
I'm somewhat glad to know DTS, Inc. seems to think the same as I do. :) As the *additional* channels in a 7.1 stream are the SIDE channels, ...
To whom this may interest, I've managed to build an 8.1 system by using two sound cards at the same time, and their drivers are configured for:
SIDE speaker <-- 0.65*Side Channel + 0.30*Back Channel
BACK speaker <-- 0.65*Back Channel + 0.30*Side Channel
Mark_A_W
28th April 2011, 14:53
Yeah, but my back channels are close together at the back of the room - it sucks when they are the only channels running. It should be the sides.
Dolby used to put the 5.1 channels at the sides, just above headheight.
Anyway, a meaningless debate, some of us want it the way we want it.
How on earth did you get two cards to work at once?? (You know you can build a fully active system with the PC as the crossover with 16 channels?)
deathlord
28th April 2011, 16:52
I'm somewhat glad to know DTS, Inc. seems to think the same as I do. :) As the *additional* channels in a 7.1 stream are the SIDE channels, ...
Where did you get that information?
Judging from their website, the opposite is the case:
http://www.dts.com/Consumer_Electronics/Home_Theater/~/media/E214C27064E545F89C966BC2F50468B0.ashx
http://www.dts.com/Consumer_Electronics/Home_Theater/~/media/E339FF665AD1400E8FC33E581EB6F952.ashx
All the speakers seem to be at the same position, except the additional BACK speakers.
@ Mark_A_W
Thanks for the link, I'll check it out.
Midzuki
28th April 2011, 17:29
Where did you get that information?
Judging from their website, the opposite is the case:
http://www.dts.com/Consumer_Electronics/Home_Theater/~/media/E214C27064E545F89C966BC2F50468B0.ashx
http://www.dts.com/Consumer_Electronics/Home_Theater/~/media/E339FF665AD1400E8FC33E581EB6F952.ashx
All the speakers seem to be at the same position, except the additional BACK speakers.
As already expected, there are various groups of people inside DTS, Inc., and not always they speak the same language :)
http://forum.doom9.org/showpost.php?p=1409727&postcount=10157
http://forum.doom9.org/showpost.php?p=1443211&postcount=10539
As the pictures I posted show, the creators of the Monster Audio Encoder Suite always regard "Left Surround" and "Right Surround" as BACK channels.
Conclusion (and again): beyond 5.1, and until now, there is N0 "correct setup" for consumer-level multichannel audio. :(
Midzuki
28th April 2011, 17:45
How on earth did you get two cards to work at once??
With the drivers from the Kx Project, plus two Audigies, it's possible to manage up to 10 (9.1) channels.
(You know you can build a fully active system with the PC as the crossover with 16 channels?)
Actually, I don't have room enough for 9 audio channels
( but I am stubborn, of course :D ),
and have no plans of trying the full possibilities of the Wave_Format_Extensible "dimension". :)
deathlord
28th April 2011, 19:05
As the pictures I posted show, the creators of the Monster Audio Encoder Suite always regard "Left Surround" and "Right Surround" as BACK channels.
Sorry, I don't see how you conclude this.
The top right setup on your image corresponds to the "7.1 standard" configuration (http://www.dts.com/Consumer_Electronics/Home_Theater/Speaker_Layout_and_Configurations.aspx), the image i posted above.
Conclusion (and again): beyond 5.1, and until now, there is N0 "correct setup" for consumer-level multichannel audio.
If you are referring to all the "non-standard" dts speaker configs, I agree of course. Unless you have a hunderd speakers or you like moving your speakers around all the time.:)
But I regard these non-standards configs merely as design studies.:p
Anyway, as Mark_A_W said, it is not important which way is the "correct", everyone can choose his or her favourite.
I would rather focus on how to realize *any* of the discussed ways without having to make changes manually everytime when switchint between 5.1 and 7.1.
Though of course the method proposed by tebasuna51 has a big advantage:
It doesn't matter if side and back are swapped, say, when playing wave compared to when playing flac. Because side and back simply get the same signal. So if we don't find out how to suppress differences between file formats, we could use this method and be happy. I will see if I can configure ffdshow to do this automatically.
Midzuki
28th April 2011, 22:28
Sorry, I don't see how you conclude this.
By looking at the pictures, :rolleyes: and by not misunderstanding the text below:
Just for the record, these are the only "7.1 DTS channel layouts" which are compatible with the Wave-Format-Extensible definitions:
L, R, C, LFE, Ls, Rs, Lw, Rw
L, R, C, LFE, Ls, Rs, Cs, Ch
(Cs == Back Center, Ch == Top Front Center)
L, R, C, LFE, Ls, Rs, Cs, Oh
(Oh == Top Center)
L, R, C, LFE, Ls, Rs, Lh, Rh
(Lh == Top Front Left, Rh == Top Front Right)
Argh!
Ls and Rs (should/must) have the same meaning and position in a "normal" 5.1 configuration:
http://www.dts.com/Consumer_Electronics/Home_Theater/~/media/EA487117ACA94D2FB4A64530743DB5CE.ashx
And from a "historical" POV, the config below is/should-be clearly wrong:
http://www.dts.com/Consumer_Electronics/Home_Theater/~/media/E214C27064E545F89C966BC2F50468B0.ashx
Anyway: the one to be blamed most is Microsoft. Because of Sony, they included the stupid SDDS channels in the WFextensible spec, and because of Dolby, they intend to transform rear channels into side channels. :(
Mark_A_W
29th April 2011, 02:29
Best would be for ffdshow to use dolby prologic 2 to create the 7.1 channels from a 5.1 signal. But currently it will only create 5.1 from a 2 channel source :(
Mark_A_W
29th April 2011, 02:33
With the drivers from the Kx Project, plus two Audigies, it's possible to manage up to 10 (9.1) channels.
Actually, I don't have room enough for 9 audio channels
( but I am stubborn, of course :D ),
and have no plans of trying the full possibilities of the Wave_Format_Extensible "dimension". :)
That wasn't really want I meant.
With 16 channels you can drive the tweaters and woofers of 7 speakers separately, and still have 2 channels for subwoofers.
A fully active, PC based crossover, 7.2 system. Schweet :)
The audigy Kx project drivers can't get to 16 channels?
Midzuki
29th April 2011, 03:21
That wasn't really want I meant.
You're the only one to be blamed in this particular case. :devil:
The audigy Kx project drivers can't get to 16 channels?
As I said ;) a-n-d meant :rolleyes: , no. :)
Being as clear as possible,
their "``geographic´´ channel mapping" is very straight-to-the-point :cool:
NW = front left
NE = front right
N = front center
SW = rear left
SE = rear right
S = rear center
W = side left
E = side right
LFE = "hell" :devil:
TOP = "heaven" :D
deathlord
29th April 2011, 12:36
Mark_A_W, thanks again very much for pointing out the auto-loading presets! It is working!
First of all, I have confirmed the three scenarios described in the first post behave exactly the same way when using MPC HC, madFlac Source/File Source (Async.) and reclock in direct sound/WASAPI mode.
Now I did the following (I'll write dummy stile, just to make sure it is reproducible):
Win7x64
MPC HC 1.5.1.2903
ffdshow tryouts 3184
madFlac 1.10
ReClock 1.8.7.3
Haali Media Splitter 03/03/2011 (for flac in mkv container)
- disable all internal filters in MPC
- go to external filters, add and prefer:
- Haali Media Splitter (AR)
- madFlac Decoder
- madFlac Source
- ffdshow audio processor
- double click on ffdshow audio processor
- go to codecs, make sure it says Uncompressed: all supported
- go to Profiles/Preset settings
- Add a new Preset named "8_Channel"
- double click on it to activate it
- open Preset autoload conditions
- activate "on number of channels match", enter "8", close the window
- activate Automatic preset loading at the bottom
- go to Swap channels, activate it
- set it to swap side to back
(alternatively, you can use 6 channels and go to mixer and enter the matrix of your choice)
- press ok
Now the Preset "8_Channel" should load automatically whenever an 8 channel source is played.
You can check if it is loaded: During playback, go to Play->Filters->ffdshow Audio Processor->Properties->Profiles/Preset settings
where the active preset is shown at the top.
I have tested this to work for both wav and flac files for both my soundcards. Flac in an mkv container is also working.
For my RME card, this solves the problem for all situations in which I can use ffdshow audio processor (in particular: MPC movie playback).
Now of course for soundcards that behave differenty for different file formats, the above works only for some formats (e.g. flac). But this is no problem:
In the Preset autoload conditions, make sure
"On all conditions match (AND)" is active, then activate also
"on movie file name match (with wildcards)"
and enter all file formats that need swapping for 8 channels, separated by semicolons, e.g. "*.flac"
I have found this to work aswell.
To summarize:
The 5.1/7.1 channel swapping problem can be solved in direct show players by using the auto-loading presets feature found in ffdshow audio processor.
Of course the problem remains in non-direct show players like foobar2000 and vlc. It also remains in Linux.
Also, it would still be interesting to understand why some soundcards behave differently with different file formats (is WASAPI really used, according to the reclock info display: yes).
Thanks to everyone who has contributed in this thread!
Cheers
deathlord
Midzuki
30th April 2011, 07:23
<NIT-PICK status="on">
...
I used the official 8 channel test file from Microsoft (http://www.microsoft.com/windows/windowsmedia/howto/articles/creating71audio.aspx) and created 48/16 versions for 7.1 and 5.1 from it using eac3to and wavewizard:
...
There is something wrong in those .WAV files. Just because I was bored :) , I remuxed them into videoless .AVIs through ffmpeg, and wavi.exe ( fixed build from tebasuna51 :thanks: ) did not detect a valid PCM stream inside them :p Notwithstanding, sox.exe can do miracles :cool: Bottom line is,
« don't use wavewizard, that's all » :devil:
</NIT-PICK status="off">
TL;DR — To the <irony>geniuses</irony> from Dolby, from DTS and from Microsoft: it's very anti-sportive to change the rules in the middle of the game ;)
deathlord
30th April 2011, 07:36
Hm, wavewizard has always worked well for me.:confused:
But thanks for the hint.
Rest assured I have also tested using the unmodified files directly from the microsoft homepage.
http://www.microsoft.com/windows/windowsmedia/howto/articles/Multichannel.aspx#link6
The 5.1 file is 44.1/16, the 7.1 is 48/24. I uploaded converted files just for convenience, the results remain the same.
Midzuki
30th April 2011, 08:14
FWIW, I will upload an 8.1 test file to my Skydrive folder A.S.A.P.
( it'll be a 7-zipped .WAV, sadly I cannot trust FLAC, nor TTA, nor WavPack :( )
Mark_A_W
30th April 2011, 08:47
http://search.dilbert.com/comic/Topper
How is 8.1 of any use to anyone? No filters handle it, no sources exist.
tebasuna51
30th April 2011, 11:55
Hm, wavewizard has always worked well for me.:confused:.
WaveWizard don't fill correctly (always put 0) the field ChannelMask in the WAVE_FORMAT_EXTENSIBLE header and some soft can reject the wav file.
deathlord
30th April 2011, 12:20
WaveWizard don't fill correctly (always put 0) the field ChannelMask in the WAVE_FORMAT_EXTENSIBLE header and some soft can reject the wav file.
Ok, then running it through eac3to should fix it?
Midzuki
30th April 2011, 14:50
How is 8.1 of any use to anyone? No filters handle it, no sources exist.
There exists at least one quote from Michael Faraday, and several others from Chas Kettering, that will show how stupid your question is. :(
http://search.dilbert.com/comic/Topper
WTF does that page have to do with what I said?
I'd better re-study the book "The Psychology of The Narrow-Minds", because it will probably make me stop annoying them. :rolleyes:
FWIW, I will upload an 8.1 test file to my Skydrive folder A.S.A.P.
Forget it —.—
Midzuki
30th April 2011, 15:39
Question:
Ok, then running it through eac3to should fix it?
Answer:
sox.exe can do miracles
...
« don't use wavewizard, that's all »
deathlord
30th April 2011, 18:31
Answer:
What's the alternative? Wavewizard is the only program I know that can e.g. build a 7.1 .wav file out of 8 mono streams.
Midzuki
30th April 2011, 20:07
^ @ deathlord:
1) the Swiss Army knife of sound processing programs (http://sox.sourceforge.net/) ;
or
2a) wavavimux
&&
2b) wavi
deathlord
3rd May 2011, 14:54
Thanks, I'll try those out.
Mark_A_W
15th May 2011, 04:19
Mark_A_W, thanks again very much for pointing out the auto-loading presets! It is working!
First of all, I have confirmed the three scenarios described in the first post behave exactly the same way when using MPC HC, madFlac Source/File Source (Async.) and reclock in direct sound/WASAPI mode.
Now I did the following (I'll write dummy stile, just to make sure it is reproducible):
Win7x64
MPC HC 1.5.1.2903
ffdshow tryouts 3184
madFlac 1.10
ReClock 1.8.7.3
Haali Media Splitter 03/03/2011 (for flac in mkv container)
- disable all internal filters in MPC
- go to external filters, add and prefer:
- Haali Media Splitter (AR)
- madFlac Decoder
- madFlac Source
- ffdshow audio processor
- double click on ffdshow audio processor
- go to codecs, make sure it says Uncompressed: all supported
- go to Profiles/Preset settings
- Add a new Preset named "8_Channel"
- double click on it to activate it
- open Preset autoload conditions
- activate "on number of channels match", enter "8", close the window
- activate Automatic preset loading at the bottom
- go to Swap channels, activate it
- set it to swap side to back
(alternatively, you can use 6 channels and go to mixer and enter the matrix of your choice)
- press ok
Now the Preset "8_Channel" should load automatically whenever an 8 channel source is played.
You can check if it is loaded: During playback, go to Play->Filters->ffdshow Audio Processor->Properties->Profiles/Preset settings
where the active preset is shown at the top.
I have tested this to work for both wav and flac files for both my soundcards. Flac in an mkv container is also working.
For my RME card, this solves the problem for all situations in which I can use ffdshow audio processor (in particular: MPC movie playback).
Now of course for soundcards that behave differenty for different file formats, the above works only for some formats (e.g. flac). But this is no problem:
In the Preset autoload conditions, make sure
"On all conditions match (AND)" is active, then activate also
"on movie file name match (with wildcards)"
and enter all file formats that need swapping for 8 channels, separated by semicolons, e.g. "*.flac"
I have found this to work aswell.
To summarize:
The 5.1/7.1 channel swapping problem can be solved in direct show players by using the auto-loading presets feature found in ffdshow audio processor.
Of course the problem remains in non-direct show players like foobar2000 and vlc. It also remains in Linux.
Also, it would still be interesting to understand why some soundcards behave differently with different file formats (is WASAPI really used, according to the reclock info display: yes).
Thanks to everyone who has contributed in this thread!
Cheers
deathlord
This just does *NOT* work for me.
ffdshow audio decoder (or processor) NEVER triggers a profile change based on the channel number of the input to ffdshow.
I'm intrigued that it works for you, but it no workee for me.
Got the presets set correctly, got the autoload box checked, got the conditions set to OR and 8 or 6 channels......nup.
Any more ideas?
Mark
Weirdo
15th May 2011, 15:54
And what on earth happens when we've got a 6.1 setup, with a single surround-back speaker? This configuration was more common when the surround-back channels emerged, but now it's all about 5.1 or 7.1.
deathlord
16th May 2011, 08:02
This just does *NOT* work for me.
I just have a default profile (that does nothing) and a 8 channel profile (that swaps). It just works!
Do you have the same versions of ffdshow and madflac? Or what files did you test?
I tested 6/8 channel wav/flac and mkv files containing 6/8 channel flac.
@ Weirdo,
When playing a 7.1 signal through a 6.1 setup, you would probably divide the BL/BR channels to go part through SL/SR, part through the back channel. You can calculate the correct matrix, make sure you have correct acoustic power and it is normalized to avoid clipping.
See here (http://forum.doom9.org/showthread.php?p=1144930#post1144930).
Mark_A_W
16th May 2011, 10:15
I just have a default profile (that does nothing) and a 8 channel profile (that swaps). It just works!
Do you have the same versions of ffdshow and madflac? Or what files did you test?
I tested 6/8 channel wav/flac and mkv files containing 6/8 channel flac.
Yes, I got it working!
I think my mistake was creating a 5.1 profile and a 7.1 profile and removing the default profile.
Thanks!!
Mark
mindbomb
17th May 2011, 18:19
the profile switching only works for me when default is in bold.
if the new profile is in bold, it always uses that one.
deathlord
20th May 2011, 07:38
Yes, I got it working!
Great!
Ghitulescu
20th May 2011, 16:49
In order to get maximum audio quality in Windows, it is probably a good idea to avoid kmixer (whatever its name in the different Windows versions, more details how to avoid it below). It appears that in this case, 5.1 and 7.1 material plays inconsistently, i.e. the side channels of the 5.1 signal are played through the back rather than through the side speakers.*
There also other issues as well (worst in vista, promised to be better in seven but I don't have seven).
I can’t test the RME card in direct sound, since the people at RME have not yet managed to write a driver that can correctly play multichannel formats in direct sound.
They won't probably release any driver, directshow is not required for professional tasks RME is aiming at. Want a gaming soundcard? well, there are plenty...
What strikes me is, that with the Creative card there is a difference between wav and flac, while with the RME card there isn’t.
Creative fans always try to minimize the impact of intentionally badly written drivers and to emphasise the HW features (inclusive that some Creative are clones, or viceversa, of pro and semipro cards). Of course they are wrong, Creative cards are for gaming and/or multichannel, the "windows style".
When playing back an audio file, some entity has to make sure, each channel is routed to the right speaker. Now as far as I understand, kmixer is this entity. When using direct sound, i.e. kmixer is active (I am not quite sure the two are equivalent), the routing should be correct.
If kmixer is not used, I would assume the routing will be 1:1, which would explain exactly why the surround channels come through the back.
However, two entries in the above table cannot be explained like this:
1) The creative card plays back wav correctly even in WASAPI
2) The creative card plays back flac incorrectly in direct sound
Why?
1): All I can think of is WASAPI is not used/not working here or the Creative driver is doing something creative on its own
2): Maybe kmixer is not used here? But why?
How can it be solved?
First of all, I believe, before solving anything, we have to understand what is going on. To me, the above explanations are not yet satisfactory.
My explanation seems plausible at least for what’s happening with the RME card. There, I can see to ways of solving the problem (not involving Microsoft or the sound card manufacturers):
1) Encode differently
2) Change the playback
For 1) one could simply swap side and back of all 7.1 material in eac3to.
Pro: problem solved for a given setup
Con: bad for playback in a setup that actually works correctly
For 2) it gets difficult. Something in the playback chain will automatically have to check if it is a 5.1 or 7.1 file and swap channels accordingly. Maybe it is possible to write a directshow filter that will do this, though I don't know this would be done.
I think it's a bad idea to destroy the audio source to fit a framework designed around DRM issues rather than around technical needs.
Secondly, WASAPI is nothing else than another library (abstractisation layer) from MS. Don't we have plenty of them?
It will pass through kmixer unless (they say!!!) one activates Allow aplications to take exclusive control of this device. Use ASIO or ASIO2 or similar "abstractisation layer" bypass methods.
deathlord
24th May 2011, 16:52
Ghitulescu, thanks for your input!
They won't probably release any driver, directshow is not required for professional tasks RME is aiming at.
No, a WDM driver exists and is constantly being developed. Multi channel playback even seems to be working "reasonably" well with some cards. But it is not working with the HDSP 9632. In their manual they even claim playback of 7.1 material through PowerDVD is possible, which is simply a lie.
I think it's a bad idea to destroy the audio source to fit a framework designed around DRM issues rather than around technical needs.
I agree, but I don't understand how this is related.
Secondly, WASAPI is nothing else than another library (abstractisation layer) from MS. Don't we have plenty of them?
It will pass through kmixer unless (they say!!!) one activates Allow aplications to take exclusive control of this device.
Sorry, I should have written this somwhere, when I write WASAPI, I always mean WASAPI exclusive (which is what you get using reclock).
Use ASIO or ASIO2 or similar "abstractisation layer" bypass methods.
Reclock does not support ASIO, unfortunately.
There is an ASIO plugin for foobar2000, but the problem described in this thread can then not be overcome with the solution I described, because foobar is not a direct show player.
Isn't WASAPI *exclusive* comparable to ASIO? It does promise bit-exact playback at very low latency.
Let's assume you are a producer of movies with surround sound and you want to test your product on a PC, what would you do? Buy a gaming sound card?
Mark_A_W
24th May 2011, 22:59
I can't use ASIO with the new bit-perfect Xonar driver.
It's so bit-perfect it bypasses the system volume control. As I couple directly to Power Amps that means it 100% volume, all the time.
But WASAPI through Reclock or JRMC works fine, with volume control.
Oh, and ffdshow profiles aren't working again - it won't select my 8 channel profile. I didn't change anything, and I have NFI why it's not working. It's so flaky..
deathlord
25th May 2011, 06:41
It's so bit-perfect it bypasses the system volume control.
That's the kind of bit-perfect I am looking for.:)
I am using an analog multi channel preamp, so I want to have 100% output from the sound card.
But then there is still a big difference between WASAPI excl. and ASIO.
BTW when I lower the volume in MPC, this results in lower volume of the front channels only, the others remain at 100% (on my 9632). Does this even make any sense?
Oh, and ffdshow profiles aren't working again - it won't select my 8 channel profile. I didn't change anything, and I have NFI why it's not working. It's so flaky..
Strange. It has never failed for me, I have tested it quite extensively.
Mark_A_W
25th May 2011, 07:13
What multi channel volume controller are you using?
I'm after an 8 channel IR control analogue one. A Rotel would do the job, but it's an expensive way to get a simple volume control...
deathlord
25th May 2011, 14:59
What multi channel volume controller are you using?
I'm after an 8 channel IR control analogue one. A Rotel would do the job, but it's an expensive way to get a simple volume control...
I am using a PGA based 24 channel custum product, partly diy, that is no longer available. But there are similar projects, e.g.
http://www.dh3ben.de/html/electronics/pga2311_preamp.shtml
There is also this thing here:
http://spl.info/hardware/monitor-controller/volume8/beschreibung.html
Don't know if you can get it with a remote, though.
deathlord
26th May 2011, 21:21
@ Mark_A_W
When I use reclock's WASAPI excl. windows volume has no influence.
BTW when I lower the volume in MPC, this results in lower volume of the front channels only, the others remain at 100% (on my 9632)
This is no longer true in the new RME driver. Now all channels are influenced.
deathlord
19th April 2012, 20:09
A little update:
I reinstalled windows, including the most recent versions of all the relevant things.
Then I just could not get ffdshow audio processor to work (i.e. it did not load at all).
I found this:
http://www.avsforum.com/avs-vb/showthread.php?p=21206859#post21206859
(bottom of post after , "to do so")
Don't know how to get this merit value, but I then moved ffdshow audio processor to the top in MPC-HC's external decoders list and this did the trick.
(I also checked check all of 16-bit integer/24-bit integer/32-bit integer/32-bit floating point in both profiles as suggested.)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.