Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
|
|
Thread Tools | Search this Thread | Display Modes |
26th April 2011, 19:18 | #1 | Link |
Registered User
Join Date: Mar 2008
Posts: 101
|
Avoid kmixer and still get correct 5.1 playback in a 7.1 setup
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: Code:
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/win...ng71audio.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.ph...89#post1496289) Last edited by deathlord; 28th April 2011 at 11:48. |
27th April 2011, 01:49 | #2 | Link | |
Unavailable
Join Date: Mar 2009
Location: offline
Posts: 1,480
|
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 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). Quote:
Last edited by Midzuki; 27th April 2011 at 01:50. Reason: typo |
|
28th April 2011, 09:51 | #3 | Link | |||
Registered User
Join Date: Mar 2008
Posts: 101
|
Quote:
Quote:
Quote:
Code:
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 Source: http://www.dolby.com/consumer/setup/...ide/index.html Last edited by deathlord; 28th April 2011 at 11:30. |
|||
28th April 2011, 11:10 | #4 | Link | |
Moderator
Join Date: Feb 2005
Location: Spain
Posts: 6,915
|
Quote:
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.
__________________
BeHappy, AviSynth audio transcoder. |
|
28th April 2011, 11:23 | #5 | Link |
3 eyed CRT supporter
Join Date: Jan 2008
Location: Or-strayl-ya
Posts: 563
|
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). |
28th April 2011, 11:31 | #6 | Link | |
3 eyed CRT supporter
Join Date: Jan 2008
Location: Or-strayl-ya
Posts: 563
|
Quote:
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. |
|
28th April 2011, 11:46 | #7 | Link | ||
Registered User
Join Date: Mar 2008
Posts: 101
|
Quote:
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). Quote:
|
||
28th April 2011, 14:20 | #8 | Link | |
3 eyed CRT supporter
Join Date: Jan 2008
Location: Or-strayl-ya
Posts: 563
|
Quote:
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 |
|
28th April 2011, 14:36 | #9 | Link | |
Unavailable
Join Date: Mar 2009
Location: offline
Posts: 1,480
|
Quote:
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: Code:
SIDE speaker <-- 0.65*Side Channel + 0.30*Back Channel BACK speaker <-- 0.65*Back Channel + 0.30*Side Channel |
|
28th April 2011, 14:53 | #10 | Link |
3 eyed CRT supporter
Join Date: Jan 2008
Location: Or-strayl-ya
Posts: 563
|
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?) Last edited by Mark_A_W; 28th April 2011 at 23:01. |
28th April 2011, 16:52 | #11 | Link | |
Registered User
Join Date: Mar 2008
Posts: 101
|
Quote:
Judging from their website, the opposite is the case: http://www.dts.com/Consumer_Electron...2F50468B0.ashx http://www.dts.com/Consumer_Electron...81EB6F952.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. |
|
28th April 2011, 17:29 | #12 | Link | |
Unavailable
Join Date: Mar 2009
Location: offline
Posts: 1,480
|
Quote:
http://forum.doom9.org/showpost.php?...ostcount=10157 http://forum.doom9.org/showpost.php?...ostcount=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. Last edited by Midzuki; 28th April 2011 at 17:47. Reason: better wording |
|
28th April 2011, 17:45 | #13 | Link | |
Unavailable
Join Date: Mar 2009
Location: offline
Posts: 1,480
|
With the drivers from the Kx Project, plus two Audigies, it's possible to manage up to 10 (9.1) channels.
Quote:
( but I am stubborn, of course ), and have no plans of trying the full possibilities of the Wave_Format_Extensible "dimension". |
|
28th April 2011, 19:05 | #14 | Link | ||
Registered User
Join Date: Mar 2008
Posts: 101
|
Quote:
The top right setup on your image corresponds to the "7.1 standard" configuration (http://www.dts.com/Consumer_Electron...gurations.aspx), the image i posted above. Quote:
But I regard these non-standards configs merely as design studies. 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. |
||
28th April 2011, 22:28 | #15 | Link | |
Unavailable
Join Date: Mar 2009
Location: offline
Posts: 1,480
|
By looking at the pictures, and by not misunderstanding the text below:
Quote:
http://www.dts.com/Consumer_Electron...0743DB5CE.ashx And from a "historical" POV, the config below is/should-be clearly wrong: http://www.dts.com/Consumer_Electron...2F50468B0.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. Last edited by Midzuki; 28th April 2011 at 22:57. Reason: argh |
|
29th April 2011, 02:33 | #17 | Link | |
3 eyed CRT supporter
Join Date: Jan 2008
Location: Or-strayl-ya
Posts: 563
|
Quote:
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? |
|
29th April 2011, 03:21 | #18 | Link | |
Unavailable
Join Date: Mar 2009
Location: offline
Posts: 1,480
|
You're the only one to be blamed in this particular case.
Quote:
Being as clear as possible, their "``geographic´´ channel mapping" is very straight-to-the-point 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" TOP = "heaven" Last edited by Midzuki; 29th April 2011 at 04:31. Reason: semantics |
|
29th April 2011, 12:36 | #19 | Link |
Registered User
Join Date: Mar 2008
Posts: 101
|
Great!
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 Last edited by deathlord; 29th April 2011 at 14:34. |
30th April 2011, 07:23 | #20 | Link | |
Unavailable
Join Date: Mar 2009
Location: offline
Posts: 1,480
|
<NIT-PICK status="on">
Quote:
« don't use wavewizard, that's all » </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 |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|