PC based digital crossover with dolby digital live

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
The synchronization is required to make sure the cards consume audio data in the same rate. Otherwise overruns/underruns of each card DMA memory buffer will inevitably occur after some time.

As the example above shows, e.g. linux alsa can be configured to merge outputs of several cards into one large multichannel device, provided their clocks are synchronized.
 
Your 7.1 card can output 7 Stereo signals and a .1 sub channel.

Do you not only need 2 stereo (4 channels) to output for a 2way speaker?

You are true. but I wanted to use my external card wich is waaaaaaay better than the internal one. Leaving it to handle the tweeters, wich I consider a bit less important.
Or as I say, to use 2 external stereo interfaces at the same time. One DAC for each kind of cone.

Just wondering if it could be possible...

To phofman: Now i know why some cards carry a clock gen connector :p But, lets try to see it more clear.
I can have, for example, Winamp playing in one card, and Foobar in other card. Both playing OK their own streams. They play different streams (files), on different interfaces, different amplifiers and speakers. You don't need to syncronice anything, we agree on that.
I can imagine that is it possible to have one player wich, once applied the digital filter, you get 2 different streams. 2 different audio streams that would be the same as having 2 different audio files. What stop it from sending each one to each sound card? Like two instances of Foobar in the same player, something like virtual integrated players.

To oublie: The flaw of your solution is the crossover thing. Foobar still outputs only ONE stream. What I would like to do is using Foobar dsp, and having out of foobar the two different streams.
I still have to fiddle with foobar asio options and the dsp. Will tell you later
 
I have just found a guy who gave me an idea. It does in fact what I've been looking for.
Yes you can combine channels from different sound cards or extrnal DACs. At least it works for me with two USB DACs using the generic USB driver of Windows. I also have an internal sound card and built into the motherboard. It looks like I could join all these channels as one multi-channel device but don't have the need to and so I haven't tried that yet.

To do this you need to install ASIO4ALL version 2. In its config applet select both sound devices so that they are green. Then open Foobar2000 v0.9 and go to Preferences...Output...Virtual Devices... and add ASIO4ALL there. (it may already be there) now highlight it and click the "Edit" button. You should see a list of channels from both or all devices you selected in ASIO4ALL's control panel. In mine it also shows my internal motherboard channels when I haven't selected them. Now click on the channels and you can map them to Left, Right and so on. I just found this feature a couple days ago, I love it and this DSP crossover smile.gif

I have USB DACs that I consider to be audiophile quality and when I use one DAC for the Right channel and one for the Left the sound stage is much improved. I don't know why, but I love it. A difference in sound like this is worth lots of money in the audiophile world. I haven't done anything to join the clocks on the DACs, why it sounds extra good is a mistery.

I had another idea, wich is to map L&R rear channels to the spdif output of my emu. Foorbar asio allows me to do that. That way, the 1st EMU will output L&R front in nanalog, then and I can take the spdif output to feed another EMU or the internal audio card.

I have to try both when I get home
 
...
I can imagine that is it possible to have one player wich, once applied the digital filter, you get 2 different streams. 2 different audio streams that would be the same as having 2 different audio files. What stop it from sending each one to each sound card? Like two instances of Foobar in the same player, something like virtual integrated players.

The playback chain is clocked by the card. If you have two cards with two independent clocks, these will eventually drift away and so will do the two audio streams, no matter how you generate them. SW supporting multiple sound cards takes one as a reference and does asynchronous sample rate conversion for the other cards.
 
USB soundcards using the adaptive mode (vast majority) are clocked by the common USB controller clock located on the motherboard, thus running synchronously. It is not the case for USB asynchronous (e.g. E-MU 0x0x) and all PCI(-e) cards.

But, despite not being an E-MU 0x0x, I would be able to chain them by spdif as I explained before. And the spdif would break the usb clock between the PC and the emu, generating a new clock for this connection.

In the other matter, I still dont understand why do you need two cards (internal, for example) clocked between them to play different streams. When I play 2 different files, one on my internal card with a software, and other with my external and another software, are they being sincroniced in any way?
If not, I can't understand why I would not be able to make 2 filtered files of the same file, one with the sounds from 0 to 100Hz and the other from 100 to 20.000Hz. Then click playback exactly at the same time, each one in their own player and connected to the appropiated amps and speakers.
 
If not, I can't understand why I would not be able to make 2 filtered files of the same file, one with the sounds from 0 to 100Hz and the other from 100 to 20.000Hz. Then click playback exactly at the same time, each one in their own player and connected to the appropiated amps and speakers.

There is no way you could start the playback at the same time, especially not by clicking :) The OS schedules processes and cannot start them simultaneously. Even on a multicore CPU it would be a pretty complicated task.

The two streams will eventually drift away. Not only will the clocks run at a slightly different speed, a single drop-out on one stream will drift the streams further apart.

You need a single SW playing into a multichannel device, real or virtual.
 
Haven't thought about that, you are true about the sincronization between processes. A little bit of unbalance between timings could make one being played some miliseconds ahead the other.
About starting playing them at the same time, is physically impossible, but today's processors are fast enought to not produce any discernable difference.

Haven't thought neither of the little unbalance between clock speeds, due to manufacture imperfections. At the end of a song, one of them will inevitabily be a tiny bit ahead of the other.

I still have to try the asio4all approach that I quoted before. After all, when a new song starts, the "desincronization counter" starts again. And is using the same process, only one, foobar. Will tell you later.

Thanks phofman for the aclaration, you seem to be a very clever guy in this matters :devily:
 
About starting playing them at the same time, is physically impossible, but today's processors are fast enought to not produce any discernable difference.

The CPUs are fast, but the OS must switch between processes. Especially windows run huge number of processes and I guess there will be at least tens of millisecs between two processes started in close sequence.


I still have to try the asio4all approach that I quoted before. After all, when a new song starts, the "desincronization counter" starts again. And is using the same process, only one, foobar. Will tell you later.

Sure, I am looking forward to hearing your results.
 
Unloaded linux system, simple command:

Code:
pavel@sara:~$ date +%N &  date +%N
[1] 7149
163552686
165563689
[1]+  Done                    date +%N

The shell starts at background two date commands printing nanosecs of the current second. I cannot get under 2ms (165 - 163 = 2) which is an excellent time. This command is WAY lighter than running any player, not even talking about a graphical one. Plus windows are not renowned for low overhead of process startup.
 
I agree with that, windows sucks in all kind of real-time stuff.

By the way, putting '&' between both commands, will execute both simultaneously or one after the other? I can imagine the 1st option is :D

It will START them one after another, they will run "simultaneously" afterwards. I have no idea how to start two processes at the same time, even on a multicore machine.
 
So, the important fact is, does any of them finish BEFORE the other? In that case, we could explain the time difference between them. Could be simply because of the different execution time, you get different timestamps.

Gotta go out all the weekend, when I come I promise to try what I have in mind. But, unluckily, I dont have a biamped system. But i will get another pair of speakers to test
 
The timestamp does not show when they finish. It is what the system call returns when the date binary gets to call it. Since the amount of code executed by the date command before this system call is minimal and probably exectued in a single run uninterrupted by the scheduler, I assume the lowest difference of statistically many repeated runs can be taken as the delay between startup of these two processes.
 
The Card I use is the Audiotrak Prodigy 7.1 hifi. This card has the capability of using an external clock there a switch in the control panel for the card. I'm wondering if i got two of these if I could switch one to use the clock from the other card and therefore keep then synchronised?

Has anyone done this with this card or a similar card e.g. ESI?
 
By reading at the ASIO4All manual, I have found this interesting quote:

Multi-device-setups require that all the devices involved are running from the same clock source. You can
achieve this by daisy-chaining devices via S/PDIF etc. Fortunately, most USB devices will automatically
synchronize themselves for as long as the host controllers they are connected to have a common clock
source, which is trivially true for the USB host controllers embedded in the south bridge on any mainboard.
Note: If devices are not accurately synced, their audio streams are likely to drift apart over time! Note: If devices are not accurately synced, their audio streams are likely to drift apart over time!
 
I would go with a higher quality pro oriented sound card. This would probably be a firewire interface box. I know it isn't cheap but the drivers of say an RME multiface 2 are outstanding-rock solid.

I have used the M-audio profire 610 with some success. You absolutely must use a TI chipset firewire card though. :mad:They crash regularly without it.

I've also hear of people having success with the Echo Audio AudioFire 12. This one can be picked up for around 600.00 at musicians friend. I'm looking at it myself and have heard some good things.:devily:

Hi there,

I'm looking at going PC-based for my setup, but budget is tight so I cannot afford an expensive Firewire interface like the Echo or RME.

What I am looking for is the typical stereo hi-fi setup :
+ be able to use an external digital source (CD or media player) and, if possible, an analogue one, using only foobar is not an option
+ probably use the Thuneau software for crossovers (3-way stereo, so 6 outputs needed)
+ a master volume (knob or remote control) would be very nice


What's the cheapest card I can go with ? Is MAudio Profire 610 suitable ? This site DIY Home Theater Speaker, how to do Build the best DIY Speakers. : recommends Echo Audiofire 8, a bit pricey for me :(

Thanks a lot in advance !
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.