Should I use this driver for TV surround sound?

Discussion in '3-D Audio' started by mirko2, Oct 10, 2005.

  1. mirko2

    mirko2 New Member

    Joined:
    Oct 10, 2005
    Messages:
    18
    Likes Received:
    0
    Trophy Points:
    0
    > I understood the media source player would actually decode DTS and is not just upmix. - But ONLY if played in their mediasource player - which as I understand is the *only* way to play DVD-A discs, DVD-A discs being the only thing I've seen thats DTS encoded personally.

    The name might be misleading. I don't think DTS NEO:6 is a DTS decoder at all. I've used it with stereo sources. It provides good matrix decoding for stereo sources. See this:

    http://www.dtsonline.com/media/uploads/pdfs/neo6.pdf


    What I find interesting is the bit about steering. The MatrixMixer (a free DirectShow filter that implements ProLogic) has a similar feature, if I understand "steering" correctly: its decoding matrix is adjusted dynamically, depending on content. For example, if the frequency band associated with human speech has a strong signal, the center could get a more prominent role. I wonder if something like that can be implemented in DSP hardware? If NEO:6 is just a DSP program and one could dump the code... NEO doesn't have any configurable options, just two modes: movie and music.
     
  2. Maddogg6

    Maddogg6 Tail Razer

    Joined:
    Jun 21, 2005
    Messages:
    4,027
    Likes Received:
    26
    Trophy Points:
    0
    That wasn't my impression - I beleive(d) it use()s the CMSS to do a matrix decoding IF no DTS material is detected.
    DTS - specs out 5.1 only - the move to even more channels is what the NEO added - like - a simulation of surround for 2 channel - Just like CMSS does.

    It also adds a combo of discrete and matrix decoding to 'create a back channel from 5.1 encoded material' -ala 6.1 (I imagine just like DPL did for front center channel - strip the 'normally' MONO or common to both rear channels and send to a rear center channel. Neo claims to get 7.1 also.

    Ill admit I have plenty to learn about DTS and its specs - as Im not even sure if thats Dolby Digital Surround compatable or not) - it looks like no if I had to guess.

    DPL IS matrix encoded surround- first off. DPL added specs like delaying the rear channels 20 ms. and some filtering also as I recall.

    I have built simple DPL circuits using OPAMP to derive the (L+R/L-R, filter then add delay for rear) back in tech school, when fox first started their TV channel (anyone remeber AIlien Nation - I built the decoder JUST for that TV show- and IT WAS broabcast in DPL -btw.), only audiophiles had it in their homes previously and was starting to be found in low-mid end consumer receivers.

    ANY stereo signal would produce sound at the rear. Mono signals would always be predominant in the front center - Front L/R were NOT affected - while the mathmatics of deriving the rears produced weak and un-dynamic sound (but still present) until a DPL stereo encoded signal was put through it - THEN the rears were more pronounced and dynamic - no electronics changed - ONLY the source material.

    I have since see (more like heard) exact results in all the receivers that claimed DPL compiance (Sony, Yamaha etc..)

    Its ('steering') inherent to the DPL system and was intentional to keep compatibility in existing theater systems (this was when 'home theaters' were but a dream for all but movie producers) as well as reduce their upgrade costs.

    DPL was created to 'piggyback' a plain stereo system to ADD additional channels IF you had a DPL decoder.

    YES!. - in a few ways - adjustable - and Prologic (20 ms delay to rears, non adjustable)

    You could - send a (analog) stereo signal from your dvd player - (like JUST the rear channels) and derive a center channel -
    Or The front AND rears - to get 7.1 side channels.
    Using the DPL plug-in in KX - if your DVD gives 5.1 analog decoding.

    In reguards to 'steering' - Its just marketing verbage - and was explained above.

    I dont understand why DPL is of such great interest anyway - as Digital is by far better - AND IS supported in KX (with SW decoding - like AC3 filter)
    Yes, it allows use of more than 2 speakers if playing straight stereo material, but there are other ways also, like adding reverb and chorus to make a rear channel - add a bandpass filter to make a center channel - all simple to do in KX.

    DTS on my DVD player - is what provides the digital audio outs - SO, there are obviously more aspects to DTS specs than I know about. Im thinking DTS - IS WHAT a PCM spdif stream encoded for DDS 5.1 is called or specified as and stored as on a dvd..??.

    DPL - I never even see that anymore as it was an inferior surround encodeing/decoding scheme compared to the current digital.

    6.1 and 7.1 just adds matrix decoding to derive additional channels from the 5.1 dolby. And of cource suffers from the same seperation and dynamics issues DPL did, with some improvements Im sure. I dont buy into the 6.1 and 7.1 until I see that 6.1 and 7.1 are discrete and NOT matrix derived - as DTS admits to and is even marketing and admint matrix is not as good as discrete.

    My next tests will be if my A2ZS will decode that digital audio from my DVD player - but I may need an optical cable to do so, if its coax Ill do it soon, if it is optical - I may never - hehe.
     
  3. mirko2

    mirko2 New Member

    Joined:
    Oct 10, 2005
    Messages:
    18
    Likes Received:
    0
    Trophy Points:
    0
    Big pile of movies recorded from dvb-s card, that's why. Many stations, even though digital, still don't have AC3.

    I tried the bandpass idea, doesn't work. Impossible to find settings that work with all voices. Some go down to subwoofer range, like Sam Elliott, and others let glass shatter. If you put a bandpass before that, it will sound weird. At the moment, I'm using a lowpass. Not to change/highlight the center but to extract very low bass (50Hz, width=5). The center is too small to reproduce good bass. That goes through 8db gain and is added to large front speakers. If I'm not posting tommorow, my neigbours have killed me :)
     
  4. Maddogg6

    Maddogg6 Tail Razer

    Joined:
    Jun 21, 2005
    Messages:
    4,027
    Likes Received:
    26
    Trophy Points:
    0
    I used a bandpass (paralleling NOT in series) for center channel simulation - that ALWAYS workes for MONO voices.

    Ex
    signal chain in DSP...
    Stereo IN - MIXER A w/ send - MIXER B w/ send - Front L/R out

    Mixer A send 1: Reverb - MIXER B
    Mixer A Send 2: SUMM - bandpass (~1Khz - low Q) - FRONT OUT

    Mixer B Send 1: SUM - LOWPASS - LFE out
    Mixer B Send 2: Stereo Chorus - Rear L/R out.

    I used sends and return mixer channels to adjust releative levels.

    This is what I have now for stereo - 'upmix' - and sounds pretty good for TV, MP3's, CD's. etc.

    This arrangement sounds better than KX prologica plug-in, as prologica has some hefty filtering (sounds like 2Khz thru 4Khz or so, with out a means convenient to measure) to the rears unless DPL encoded signals are sent through, then lower freqs pass through, as well as more 'head room'.

    Also something to note: surround is best when all speakers are matched (freq response, sensitivity etc..) - EQ just wont do any justice to compensate. - so as you say, your center speaker cant hadle much bass - you need a better center channel speaker.

    I had mis-matched speakers prior to yesterday - as my results with out were un- acceptable to my ears (1 pr real cheap, and1 pr better for monitors).

    Im sure more experimenting will yeild better results - and dont be affraid to.


    AND - kill your neighbors BEFORE the kill you.. LOL
     
  5. Maddogg6

    Maddogg6 Tail Razer

    Joined:
    Jun 21, 2005
    Messages:
    4,027
    Likes Received:
    26
    Trophy Points:
    0
    Ok... after much testeing and listening...

    Prologica ia very good at decoding Dolby Prologic encoded material...
    StarTrek TNG - the rear channels are *almost* completely silent (that signature noise thats supposed to be the ship is there and somewhat faint) - UNLTIL explosions, sound effects, transporter.. etc... then the rear channels are quite pronounced.

    for plain old stereo encoded material - there are noisy artifacts affecting the hi-mids (above 2.5Khz) comming through the rears and passing the rears throuh a low q bandpass set to ~1.5Khz cleaned it up a bit. So it appears the filter i *thought* DPL specs out for rears hasn't been implemented - and assumes another KX module would be placed between its outputs and the phyical output (on epilog or KxLT).

    I also tried mixing the original stereo with the prologicas fronts with a little of the center channel together to make non DPL encoded material sound better with minimal loss to the original DPL effect.

    But for best stereo only material - adding a reverb (efx reverb station) and st. chorus to the rear channels sounds way better and gives a nice, warm ambiance. - Straight copy front to rear is also good too.

    I need a DVD to test more of Discrete surround decoding from an SPDIF in from my set top dvd player - I should have one in 1-2 days (i dont keep a library of movies on hand).

    I should have gotten surround speakers before - cuz its fun playing with KX and surround actually - I always just went to the TV room for surround sound and such prviously - but now I can watch while I work now - then again, I may never get any work done now.. lol
     
  6. mirko2

    mirko2 New Member

    Joined:
    Oct 10, 2005
    Messages:
    18
    Likes Received:
    0
    Trophy Points:
    0
    > So it appears the filter i *thought* DPL specs out for rears hasn't been implemented

    There is no filter in ProLogic II. ProLogic, ie. the version before, had a 7 KHz lowpass or shelf (what is that?) in the surround path. By the way, this draft almost looks loke a kx diagram:

    http://www.audioholics.com/techtips/specsformats/Prologic_2.pdf

    This document mentions steering, too, and here is another one that explains it (it's not just markting talk and probably not implemente in the kx driver because it requires logic, it's not just a filter):

    http://www.homecinemachoice.com/articles/hccarticles/techarticles/200101DolbyPrologicII/200101DolbyPrologicII.php

    It's apparently about precise SL/SR positioning and to avoid leaking between center and rear:

    "When the decoder input signal is left or right heavy by a certain amount of dB, and the left/right inputs are driven out of phase, the decoder steering logic senses this as an SL or SR signal and will therefore be output by one surround channel or the other."

    (in other words, it makes surround pseudo-stereo, you can have effects coming out of one corner)
     
    Last edited: Oct 14, 2005
  7. Maddogg6

    Maddogg6 Tail Razer

    Joined:
    Jun 21, 2005
    Messages:
    4,027
    Likes Received:
    26
    Trophy Points:
    0
    well, you keep changing the subject matter - DTS - to DPL to DPLII - theyre not the same.
    And youre 'suffering' from the confusion they want you to have in trying to uderstand all the surround sound technology.
    This confusion gets people to upgrade their equipment more frequently. - not just consumers but those that license thier technology (Hollywood, equip manufacturers etc.)

    DONT EVEN get me started on the whole THX thing.

    If you require to have the DSP do ALL the decoding to decode everything out there - no KX isnt what you want. Its DSP is locked (not a KX limit, but CL's DSP) at 48Khz - which seriously hinders what it can do for muti-channel decoding on its own and MUST have a software to do much of it. - Just like creative does. Things like delay and filter are where the 10Kx dsp come in.

    Note: CL makes no claim to be PLII - only Dolby Digital EX
    http://www.dolby.com/consumer/technology/tech_overview.html
    http://www.soundblaster.com/products/product.asp?category=1&subcategory=204&product=4915

    CL USES CMSS INSTEAD of DPL or DPLII - KX on the other hand give you DPL with a plugin thats easy (and fun, imho) to play with.

    Thats it Im trademarking MY OWN - MadDigital Virtual Surround - that I developed within KX.
     
    Last edited: Oct 14, 2005
  8. mirko2

    mirko2 New Member

    Joined:
    Oct 10, 2005
    Messages:
    18
    Likes Received:
    0
    Trophy Points:
    0
    Not really, the topic of this thread is two channel TV surround sound and that includes all matrix decoders, from ProLogic and ProLogic II over CMSS to DTS NEO:6

    I don't feel like having (many) problems understanding the technology. I have problems understanding how kx relates to it because so little documentation exists. All you get is names like "surrounder" and "prologica" and little information what is in these black boxes unless you understand the DSP code.

    Well, if you say so. The DSP is a mystery to me. I briefly looked at the documentation and was surprised to learn that elementary operations like division are not supported and require weird mathematics (power series). I suppose it is not very versatile?
     
  9. Maddogg6

    Maddogg6 Tail Razer

    Joined:
    Jun 21, 2005
    Messages:
    4,027
    Likes Received:
    26
    Trophy Points:
    0
    My mistake, sorry :( - TV shows out here doesnt show (anymore) if they are in encoded dolby (DPL/DPLII/EX/SX/XP/123/ABC - j/k lol) or not -
    ATC (Digital 'HDTV' in the U.S.) assumes AC3 - but not 'advertised' at the beginning of the show like they used to when DPL/DPL first became 'popular' tho - except possibly in the closing credits.

    Well, my point was your not comparing apples to apples, when you take my statements and apply it to something I wasnt talking about.

    Dolby wants money to use the words 'dolby' or 'pro logic'. To do so with out license would equate to law suites/seize and desist orders and such..

    To better explain the 'suurounder' plug in - it is bassically a plugin that provides a stereo to muti-channel upmix - like CMSS or DPL does - probably not in same manner as that would also be patent infringement - but is similar. It also provides an convenient interface to 'turn off' the 'CMSS like' effect and to pass through multi channel sound when it is present/desired.

    The prologica plug in 'sounds like' DPL (not II) - while IT DOES produce output to the rears for ANY stereo material fed to it - it dosent sound very good on its own and I found requires additional filtering for *some* cases like MP3s (its compression atrifacts - if audible to begin with - are more pronounced in the SL/RL - which is exacly what I would expect because of the nature of the 2 beasts), Audio CDS on the other hand - artifacts are less of an issue and moves more into odd filtering effects (missing singers voice, or in an un-expected channel) un less it was encoded for DPL. This is the same effect on my receiver also btw.

    There isn't a DPLII equivelent plug-in in KX, but im pretty sure if you knew C++ and microcode it is possible. Or if a DPLII filter is around, Im pretty sure it would work.

    The Prologic decoder you mentioned before (as a filter like the AC3 filter) - would probably work - just as the AC3 filter does (the AC3 filter just makes use of system sound devices - direct sound or wave device) - but does the decoding and passes the mutli-channel sound to the default direct sound or wave device, in my case is set to wave HQ - and the seperated multi-channel sound is present on the pins of the P16V plugin (not connected in the default dsp setup- btw).

    Yes, the 10Kx dsp's are not the most power dsps - just the most powerful that you will find in a relatively low cost consumer sound card.
    Not to mention it only deals with numbers between -1 and 1, any thing else like whole numbers - requires a host PC's interaction. This may be true for all audio dsps..??

    Also,
    You missed part of my quote that was significant - it said:

    The 'ON ITS OWN' - part, in otherwords - CL claims to do DTS:NEO - the 48Kxz that the DSP is locked at does prohibit the a decoding of dolby digital surround ALL on its own - there must be software to decode it - AC3 filter for instance as Im sure the Media Player DTS:NEO is (probably) using software to 'help decode' in addition to using the dsp for the chores that take most burden from the PC and still not use too much of the DSP resources.

    KX plugins are no different - there is some effects that are dsp micro code only - and there are ones that have C++ code (thats compiled for the PC to execute) in addition to the microcode executed by the DSP.

    KX does include an SDK so if you knew more about pragramming than me, and have a C++ compliler with the M$ MFC libraries (as found in M$ Visual Studio 6) - anything is possible (just about).

    KX is very flxible - the DSP is what I would call 'Pro AM' - as it is quite flexible - but its 48Khz limit means it is not as high of quality as DSPs youd find in newer professional recording studios.

    Which brings me to my next point - KX's flexibility was aimed more at music production than games/voip/movie decoding etc.. Although games / voip / and software DPL/DPLII/DDS/DTS are possible - wasnt 'optimized' for in KX. KX biggest strong point is the flexibility in routing and ability to make your own effects (and learn about dsp techniques) - and superior (to CL driver) ASIO performance - which is mostly used in music production.

    I am convinced (even with CL drivers) DOLBY/DTS/THX surround decoding/compliance needs additional software and not just a driver. CL drivers included some where KX expects you to use the alternatives/equivelents available elsewhere (like the AC3 filter or that DPL filter one you mentioned - do you know where I can find that?)

    Example that supports this statement - CL driver package is like 25MB and KX is like 5MB (?? about) - CL is adding much more than JUST a driver - and its got to be the THX, DOLBY/DTS decoder, DVD-A player - (Media Center DTS:NEO, as I recall), demo wav files etc... (plus all the advertisement stuff of course - also absent in KX) which are reported by many as 'buggy'.

    IF IT SAYS DOLBY - they paid for a license, or should have - I doubt many will as Im pretty sure it isnt cheap. CL can afford to pay it tho.

    I cant compare the surround quality in KX to CL as I refuse to install their driver 'package' just to test (lol). The surround (all in all - minus DTS encoded material - ?? none available to test) in KX is as good as, and even better ( ie. DPL), than my (Sony) receiver that I watch most movies/TV through in my living room. DPL on my sony (for stereo only) sounds like crap - but has the DPL logo on it.

    KX does require some learning to realize its power and flexibilty - but the great thing is.. its possible - without any DSP/C++ knowledge at all.

    I created my own DSP set up (a few actually) for stereo (upmix to 5.1) play back that sounds better to me than CMSS or prologica/DPL (my opinion, enhanced by the 'I did my self' prejudices Im sure) - something only available in KX for the $$$. I could send you some DSP setup files if youd like some examples of some of my techniques. It is optimized for my speakers im sure, but it will give you an idea on how to make and ajust your own.

    Its alot of fun too.
     
    Last edited: Oct 14, 2005
  10. mirko2

    mirko2 New Member

    Joined:
    Oct 10, 2005
    Messages:
    18
    Likes Received:
    0
    Trophy Points:
    0
    > The 'ON ITS OWN' - part, in otherwords - CL claims to do DTS:NEO - the 48Kxz that the DSP is locked at does prohibit the a decoding of dolby digital surround ALL on its own

    DTS NEO:6 (or just "NEO:6") is just a matrix decoder for a stereo signal, like ProLogic. It's not the DTS you seem to think about (Dolby Digital). The following review compares matrix decoders for stereo signals, including NEO:6 (doesn't get a good rating):
    http://www.hometheaterhifi.com/volume_8_1/dolby-prologic2-3-2001.html

    > There isn't a DPLII equivelent plug-in in KX, but im pretty sure if you knew C++ and microcode it is possible.

    You'd have to have the DPL II algorithm... So far, I haven't found it anywhere (beyond cute diagrams). Is it possible that DPL II is still Dolby's secret?

    Of all programs on my computer, including Creative's drivers, several media players, kx, open source filters etc., only Intervideo's WinDVD player has a ProLogic II option and the official logo. Curiously, while this program seems to be built entirely on DirectShow filters, I can not find an Intervideo ProLogic II DirectShow filter. The closest I have found is "InterVideo Audio Processor Fx", which has a TruSourroundXT tab. I don't think that's the ProLogic II filter. If anybody knows of a ProLogic II DirectShow filter (or how to use the WinDVD filter, if it exists), please report.

    > KX plugins are no different - there is some effects that are dsp micro code only - and there are ones that have C++ code (thats compiled for the PC to execute) in addition to the microcode executed by the DSP.

    But the C/C++ code is only for the user interface, right? There is no way to call C/C++ code from DSP code, right? Otherwise (if one could break out of DSP code and have C/C++ code in the signal path), it would be possible to encode EAX sound into AC3 with a software codec :) But I believe that's not possible: Once you are "on" the card, you are n the card and everything happens there, "outside" the computer. Or?

    > I am convinced (even with CL drivers) DOLBY/DTS/THX surround decoding/compliance needs additional software and not just a driver

    If you look at the list of installed DirectShow filters, you will find a whole lot from Creative, including AC3, Karaoke, CMSS3, etc. (but maybe these are just to initialize the DSP, so it may not mean anything).

    > Its alot of fun too.

    Yes :)

    PS: Why don't you post your kx graphs? I don't have a 2x2 system but would be intersted anyway.
     
  11. Maddogg6

    Maddogg6 Tail Razer

    Joined:
    Jun 21, 2005
    Messages:
    4,027
    Likes Received:
    26
    Trophy Points:
    0
    I dont beleive this to be true.
    http://www.dts.com/consumer/pc/

    DTS:NEO 6 IS ownded by DTS - the NEO6 ADDED matrix decode to extract the 6th (rear center Channel) - AFTER decoding a 5.1 dobly digital surround encoded PCM stream.
    Matrix anything is inferior to anything discrete.

    DTS:NEO 6 - additionally added a way to upmix stereo to 6 channel - similar to CMSS or DPL/II.

    AC3 filter has a setting 'Dolby Pro Logic II'

    The winDVD only supports DPLII in the 'Platinum' version. Not in Gold version.
    Same with PowerDVD - it supports DPLIIEX - in its upgraded version.

    Is DPLII a secret - I doubt it - its IS patented - and Im sure they agressivly attack those 'using their logo' with out a license.

    Dolby shows the 'cute diagram' (- lol) which *could* be used to make a similar effect (in KX or otherwise) - but legally cant call it a DPLII decoder unless you pay their licensing fees.

    This is also NOT my understanding with KX - granted MOST seem to only use C++ for special GUI's - but Im pretty sure its not limited to that, if you know C++, I was under the impression things MUCH more domplex can be accomplished when combining DSP w/ C++.

    I dont beleive they 'JUST' init the dsp - I would more assume they are interfaces to their proprietary software - like a bonus to add some additiojnal functionality.

    Im fairly certain they perform much more and utilize cpu useage (just like the AC3 filter does - even has a CPU usage meter on it) - but the filters you mention got un-installed when I went to KX - so I dont have them now. - Im suprised they work for you. - Media source gave me errors without seeing the CL driver (i assumed thats why it didnt work).

    My ac3 filter that I use is from source forge -not CL btw.

    I can - BUT - realize there are other setting NOT JUST in the DSP - for instance - for 5.1 DDS playback - I use a completely cleared DSP - and all channels are routed thru the P16V (P16V - routing in KX) - via the AC3 filter (set to use default Direct sound device and I selected - '24bit source stream' or something like that) - which then just simply uses the default direct show device (I have WAVE HQ selected - in windows sound control panel applet) - in turn sends the channels to the outputs.
    (on my A2ZS Plat - using KX 3538h) - This may be something over looked in that version of the driver and not sure if its intended or a bug/anomaly.

    I can post the pictures of my dsp set ups, but its not the 'full story' - but I can if you like.
     
    Last edited: Oct 14, 2005
  12. mirko2

    mirko2 New Member

    Joined:
    Oct 10, 2005
    Messages:
    18
    Likes Received:
    0
    Trophy Points:
    0
    > DTS:NEO 6 IS ownded by DTS

    Yes.

    > the NEO6 ADDED matrix decode to extract the 6th (rear center Channel) - AFTER decoding a 5.1 dobly digital surround encoded PCM stream.

    Nope. It don't want to sound like a broken record but "NEO:6" decodes two channels (L/R) into multi channel 6.1 sound. This decoder is in the same class as Dolby Prologic (II), CMSS3 etc. I've found this explained on many web sites and already posted two links in the thread.

    > but the filters you mention got un-installed when I went to KX - so I dont have them now. - Im suprised they work for you

    They don't work for me. It's just a lot of references left in the system (by the dumb Creative uninstaller). They are gone but apparently still registered.

    > AC3 filter has a setting 'Dolby Pro Logic II'

    Yes, but that's an encoder, not a decoder. The special features of ProLogic II are on the decoder side. The same author has written a decoder (MatrixMixer) but admits ProLogic II is not properly implemented, due to lack of information. I doubt it's implemented at all in his codec because the ProLogic II option described in the manual can not be found in the program ;) I'm still looking for a DirectShow ProLogic II codec.

    > Same with PowerDVD - it supports DPLIIEX - in its upgraded version.

    Don't have that one. Can its ProLogic II decoder be accessed as DirectShow filter (can you see it in GraphEdit)?

    > This is also NOT my understanding with KX

    Do you have any source to prove that C/C++ code can be executed inside the DSP's signal path and that DSP code can effectively call C/C++ code? I find that highly unlikely.

    > just like the AC3 filter does

    That's different, DirectShow filters sit BEFORE the card (multimedia software -> DirectShow graph -> DirectShow device -> card -> DSP graph). They process the signal before it enters any PCI hardware (ie. sound card). As soon as the signal has entered the card/graph/dsp, I believe the signal is out of reach for software on the computer?

    > use a completely cleared DSP e.

    I see. That's not so interesting.
     
    Last edited: Oct 14, 2005
  13. Maddogg6

    Maddogg6 Tail Razer

    Joined:
    Jun 21, 2005
    Messages:
    4,027
    Likes Received:
    26
    Trophy Points:
    0
    From DTS's website...
    the words STEREO MATRIX - I interpit that as being encoded - like DPL/DPLII is encoded

    Then theres:
    Which tells me - something capable of NEO6 - does discrete also.

    Oh ok - It just hit me - I see All DTS-EX enabled devices will do neo6 - but not necessarily the other way around.
    It just so happens everything that does neo6 that I found, does do DTS/DDS also. Is there something out there that ONLY does neo 6 and NOT DTS/DDS?

    You obviously are more informed about the ac3 filter than I. I have no DPL/II material except for what ever the TV is providing, and I dont use AC3 filter for that.

    I dont have it either - but like with windvd - im sure there are some DS filters installed...?? no idea what they do tho.

    Well, first off - i said C++ that the PC EXECUTES - the DSP ONLY understands microcode - which is alot like assembly language.

    Also, the fact a PC needs a driver to use a SB card - indicates its a combination of PC executed code and DSP microcode. The KX driver includes the source / SDK but its all greek to me. So to find an example would mean nothing anyway.

    Previous threads discuss IR filtering with KX, which was indicated 'would need extesive C++ code to acheive'. Which was affirmation that if you combine DSP/PC much more is capable. Are you familiar with DX/VST effects - which run in PC only - but output (near or) realtime effects to just about any sound card and are NOT direct show filters.

    So, if a DS filter can, why can't anything else?

    Directshow is NOT the only interface to a KX driven SB card - theres ASIO also - which btw - gives far supeior latency.
     
  14. Tril

    Tril Triple screen racing ftw

    Joined:
    Sep 26, 2004
    Messages:
    1,665
    Likes Received:
    19
    Trophy Points:
    48
    You can't. You can send the signal to the processor for processing by using ASIO. You lose the hardware acceleration but you can do stuff that is impossible with microcode.

    I tried to make an ASIO host that would take six channels of audio and compress it to AC3 to use with passthru. I almost got it working and then I gave up due to lack of time, frustration and lack interest. I have a SB live so even if I got it working it would be useless since my sound card does not support passthru.

    The information to make such a program is available on the internet. You can look in the ASIO SDK, on MSDN, in the source code of VLC, in the source code of VSTHost and in the source code of FFMPEG. That's where I looked and I found all the information necessary there and many examples of working code. I also used an example of how to use waveout found using google. Using those ressources, a good programmer (better than me) should be able to make something that works.

    If what I made was coded better and if I did not do so much copy pasting from other people work, I would share what I did with other programmers so they would not have to start from scratch. They could find the bug(s) or mistakes I made. It may be something silly that keeps the software from working like incorrectly using a pointer.

    I'll probably restart working on this project someday but it won't be soon. If I ever get it working, I'll rewrite the borrowed code and share the working project. I usually get frustrated when I can't get what I'm programming working and don't stop working on it until I succeed. This time, I lacked the time to work on it until it worked but I was close. I don't know which part of my code does not work and its hard to find out for me.


    I'll try to give some information. You can easily make an ASIO host by using the working example in the ASIO SDK. You need to add a little bit of code to read what are the available ASIO drivers on the computer and choose the correct one. You can use getDriverNames.

    You access the buffer containing all the ASIO input data in the bufferSwitchTimeInfo callback. If you don't know how to do it, you can look into the source code of VSTHost to see how it's done.

    You use the function audio_encode from FFMPEG avcodec to encode to a52. An example is in the file apiexample.c.

    You then need to make a conversion from a52 to spdif. One of the reasons why it's necessary is that the a52 audio is 6 channels and spdif is 2 channels. VLC does it and the source code is available. You can look at how it's done.

    You then need to queue the spdif audio to be played by sending it to a waveout function.

    You adjust the passthru setting in kX and it's done.

    Apart from that, you need more code to initialize the waveout device (with the correct type of file to be played, and many more settings) and the parameters of the AC3 encoding.

    All of that needs to be done fast without slowing down the execution of the ASIO callback thread or else it will skip. What I did was to make a function in a separate thread for the encoding, the conversion and sending the data to be played. I gave this thread a high priority. The bufferSwitchTimeInfo callback trigered an event and the encoding thread executed every time this event was trigered.

    To get my code working I'll probably modify the code to output the sound at intermediate steps to the speakers or to write it to disk. That will allow me to find where in the chain it stops working.

    Some of this information may not be totally accurate but I tried my best to explain all the details of what I know.
     
  15. Maddogg6

    Maddogg6 Tail Razer

    Joined:
    Jun 21, 2005
    Messages:
    4,027
    Likes Received:
    26
    Trophy Points:
    0
    Thanks for the informative post Tril.

    Would the resulting stream be Dolby Digital Surround compatable/complient?
    If no, how would it differ?

    the discussion has been more in the lines of decoding instead of encoding - the most recent inquiry you may be able to help with:

    Dose there exist a direct show filter that is a Dolby Pro Logic II complient decoder?

    Do you happen to know what algrythm is used in prologica (KX Plug-in)?

    Another question I do have (because of your informative post) -

    Is ASIO the only interface between the PC and the 10Kx DSP - for creating effects not possible with DSP microcode alone - I would imagine a direct show filter could be made that used 10Kx DSP to offload some CPU strain. - Is this correct?
    in otherwords is a direct show filter that used KX dsp (completely or partially) to decode DPLII or DTS NEO:6 even possible?

    What about DX plugin - that interfaces with the 10Kx DSP (again to offload burden from CPU) ?

    I assume with quite some assurity that CL DTS:NEO6 implementation is a combination of DSP and PC code - is this correct/do you agree?

    Its just curiosity, as Im not even close to being a programmer, its more to verify my assumptions.
     
  16. Tril

    Tril Triple screen racing ftw

    Joined:
    Sep 26, 2004
    Messages:
    1,665
    Likes Received:
    19
    Trophy Points:
    48
    I don't really know much on the subject but it seems logical to think that it would be or else it would not work with an external decoder.

    I have absolutely no idea.

    I don't. I took a quick look at the microcode and it's hard to understand. If I took the time to write down the equations from the microcode and I tried to understand, I would be able to figure out what it does.

    You can use an ASIO host and a plugin to do something like that. You can apply some DSP filtering to a signal, send it to the ASIO host, filter the signal with a filter loaded in the host, send the audio back to the sound card using ASIO, filter it some more and output it. I used a similar setup before when I experimented with applying big FIR filters in realtime or when I played with active noise cancellation in realtime.

    You could make a custom ASIO host that loads a direct show filter instead of a normal ASIO plugin. I think that it's possible but I know close to nothing on direct show filters. Same thing with a DX plugin. You would need to make a special host to load it and use it.

    I don't really understand what CL DTS:NEO6 is and what it does so I can't say how it works.

    You gave me an idea. Maybe I should try to make an ASIO host that can load a direct show filter like AC3 filter and send it audio data. It's worth a try.
     
  17. mirko2

    mirko2 New Member

    Joined:
    Oct 10, 2005
    Messages:
    18
    Likes Received:
    0
    Trophy Points:
    0
    I assume what Tril means is that he gets a signal into the card - let's say via the wave 0/1 device - then applies a graph which outputs to an ASIO line, then has the signal in the computer again, does something to it which is not possible in microcode and then routes it to another input of the sound card, to yet another graph? So you can't write modules in C/C++ and use them in the graph like modules written in microcode (as far as I understand). Only the user interface of modules can be written in C/C++, and set the values in DSP registers?
    > Is ASIO the only interface between the PC and the 10Kx DSP

    Looks like the only software interface on the output side (the only software interface I see in epilog). If you'd feed a digital output back into a digital input, you'd have a hardware interface DSP->PC :)
     
  18. Maddogg6

    Maddogg6 Tail Razer

    Joined:
    Jun 21, 2005
    Messages:
    4,027
    Likes Received:
    26
    Trophy Points:
    0
    I guess Im thinking it WONT be 'just a KX plug-in/module' that can do the FIR - but requires a special host.
    This was my mis-understanding - As there is the C++ aspect in KX plug-ins - and the C++ (as probably the most popular to develope with) to aspect in external hosts. - I guess I was confusing the two.

    If this is true - thats a shame - because if you could directly process audio in C++ via a 10Kx dsp plug-in - would seem to unleash even more potential - by accomplishing things like realtime FIR and transparent use with existing ASIO hosts, and the FIR's GUI in the DSP page in KX.

    My grand visions have just become blurry - :( - lol

    But it is disappointing to learn that the C++ side of KX is ONLY for making a nifty GUI.

    That seems like a huge hinderence to have to create a special host to be able to 'gang' process (10Kx DSP and C++ cooperative) an audio stream out side of the 10Kx DSP.

    Boy have I got alot to learn. :D
     
  19. Tril

    Tril Triple screen racing ftw

    Joined:
    Sep 26, 2004
    Messages:
    1,665
    Likes Received:
    19
    Trophy Points:
    48
    There is also the issue of latency. It takes time to transfer the audio data from soundcard to cpu to soundcard. It's usually best to stick with only dane plugins when possible.

    I changed my mind on this. I won't be trying to make it and maybe it already exists. I was thinking that it could be possible to use the AC3 encoding built in AC3 filter but it's still in development and it does not seem to work like I thought it would.

    You can read and write to registers using c++ code but it's only used to read and write parameters used in the microcode. It's not made to transfer large amount of data seamlessly.
     
  20. omnichaos

    omnichaos New Member

    Joined:
    Mar 17, 2006
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    Hi all,

    I don't know if you're still interrested in a DPLII decoding directshow filter but if you are then check out Aud-X at www.aud-x.com. It's a free ds filter that decodes Pro Logic II signals.
    Hope this helps.
     

Share This Page

visited