|
|||||||
| 3-D Audio kX 3-D Audio, DirectSound 3D, OpenAL and EAX discussion |
![]() |
|
|
Thread Tools |
|
|
#31 | |||||
|
Tail Razer
Join Date: Jun 2005
Location: Bernyurass, AZ - USA
Posts: 4,027
Rep Power: 0 ![]() ![]() |
Quote:
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. Quote:
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. Quote:
Quote:
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. Quote:
(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 by Maddogg6; Oct 14, 2005 at 10:12 PM. |
|||||
|
|
|
|
|
|
|
DriverHeaven Newbie
Join Date: Oct 2005
Posts: 18
Rep Power: 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 by mirko2; Oct 14, 2005 at 11:27 PM. |
|
|
|
|
|
#33 | ||||||
|
Tail Razer
Join Date: Jun 2005
Location: Bernyurass, AZ - USA
Posts: 4,027
Rep Power: 0 ![]() ![]() |
From DTS's website...
Quote:
Then theres: Quote:
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? Quote:
Quote:
Quote:
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. Quote:
Directshow is NOT the only interface to a KX driven SB card - theres ASIO also - which btw - gives far supeior latency. |
||||||
|
|
|
|
|
#34 | |
|
S-3D enthusiast
|
Quote:
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. |
|
|
|
|
|
|
#35 | |
|
Tail Razer
Join Date: Jun 2005
Location: Bernyurass, AZ - USA
Posts: 4,027
Rep Power: 0 ![]() ![]() |
Thanks for the informative post Tril.
Quote:
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. |
|
|
|
|
|
|
#36 | |||||
|
S-3D enthusiast
|
Quote:
Quote:
Quote:
Quote:
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. Quote:
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. |
|||||
|
|
|
|
|
|
|
DriverHeaven Newbie
Join Date: Oct 2005
Posts: 18
Rep Power: 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
|
|
|
|
|
|
#38 |
|
Tail Razer
Join Date: Jun 2005
Location: Bernyurass, AZ - USA
Posts: 4,027
Rep Power: 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 - - lolBut 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.
|
|
|
|
|
|
#39 | ||
|
S-3D enthusiast
|
Quote:
Quote:
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. |
||
|
|
|
|
|
#40 |
|
DriverHeaven Newbie
Join Date: Mar 2006
Posts: 1
Rep Power: 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. |
|
|
|
|
|
#41 |
|
DriverHeaven Newbie
Join Date: Apr 2006
Posts: 1
Rep Power: 0 ![]() |
I tried to go throug this thread but it's completely incomprehensable for me... I have just a tiny easy-to-answer question:
I own a Leadtek TV2000XP Expert CX23881 based card and a SB Live! 5.1 (with original Creative drivers) along with Logitech X-530 speakers. Is it possible to get Dolby Surround sound out of NiCAM broadcasts on my setup? Thanks in advance for any replies. |
|
|
|
![]() |
| Thread Tools | |
|
|