More than one audio codec on a PC mobo

J

Joerg

Guest
Folks,

The AC97 standard describes only up to four sound chips operated
simultaneously, on page 21:

ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf

What if one would like to connect, say, 20 of them and all are supposed
to run nicely synchronous? Like in a digital mixer board for music.

--
Regards, Joerg

http://www.analogconsultants.com/
 
Den tirsdag den 25. februar 2014 23.01.26 UTC+1 skrev Joerg:
Folks,



The AC97 standard describes only up to four sound chips operated

simultaneously, on page 21:



ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf



What if one would like to connect, say, 20 of them and all are supposed

to run nicely synchronous? Like in a digital mixer board for music.

I'm guessing that is how people do it

http://www.soundonsound.com/sos/feb99/articles/multisound.987.htm

-Lasse
 
Folks,

The AC97 standard describes only up to four sound chips operated
simultaneously, on page 21:

ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf

What if one would like to connect, say, 20 of them and all are supposed
to run nicely synchronous? Like in a digital mixer board for music.

My guess is that you'd need to have multiple AC-link busses (one per
each set of four AC97 codecs). A single output bus couldn't push bits
fast enough to keep 20 codecs properly fed at any reasonable sample
rate. Inputs are already split out (one input line per codec), so
you'd have to replicate these.

Presumably the bit-clock would be buffered and split and sent out to
all of the codecs in parallel in order to maintain fine-grained
synchronization.

I suppose you might be able to do all of this by simply replicating
the AC97 controller IP at different PCI-bus locations, but I suspect
that maintaining adequate synchronization between the codecs on
different controllers would be a nightmare in this case.

So, you'd probably have to build a single block of IP which *looked*
like a set of five AC97 controllers, and had some additional mojo
which ensured that commands and data could be pushed out to multiple
codecs with adequate time synchronization.

I've seen some limitations in the AC97 architecture which make me
think it's not a great choice for your application. As far as I can
tell, it's not great about handling timing from sources other than
itself (e.g. from the controller, a fixed crystal, or one specific
codec on the bus). As a result it doesn't deal well with external
signals having their own timing (e.g. S/PDIF input). I have yet to be
able to get an AC97 system to receive external S/PDIF input in a
bit-exact fashion... usually, it drops or duplicates samples as the
input data rate differs from its own idea of 48 ksamples/second.
 
On Tue, 25 Feb 2014 14:01:26 -0800, Joerg <invalid@invalid.invalid>
wrote:

Folks,

The AC97 standard describes only up to four sound chips operated
simultaneously, on page 21:

ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf

What if one would like to connect, say, 20 of them and all are supposed
to run nicely synchronous? Like in a digital mixer board for music.

Why AC97? There are dozens of DACs and CODECs around with all sorts
of interface options.
 
Joerg wrote:

krw@attt.bizz wrote:
On Tue, 25 Feb 2014 14:01:26 -0800, Joerg <invalid@invalid.invalid
wrote:

Folks,

The AC97 standard describes only up to four sound chips operated
simultaneously, on page 21:

ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf

What if one would like to connect, say, 20 of them and all are supposed
to run nicely synchronous? Like in a digital mixer board for music.

Why AC97? There are dozens of DACs and CODECs around with all sorts
of interface options.


The goal was to use sound chips because of their attractive pricing
while offering 20+ bits of dynamic range and potentially high sample
rates. Is there another standard that comes to mind?

I know how to roll this using individual ADCs and DACs but that gets
expensive. Plus we'll have to write our own drivers and all this fun
stuff.

If you don't want to roll your own cards, find a Magma PCI cage. I can drive
7 sound cards at once on mine, well on Linux. No idea about windows. My
Magma was from an old recording studio. I wouldn't want to pay the price of
one new, so look on ebay. And ignore all the buy it now assholes. I got mine
for about $200 plus change years ago when they were worth something.
Nowadays they have fancy multichannel soundcards. You need the cage,
backplane, and most important, the freaking PCI host cards. One your your
PC, the other in the cage. So an eight slot Magma runs 7 PCI cards.

If you were really clever, you could build this yourself. They use Pericom
chips and off the shelf PCI backplanes. I found it easier just to by a Magma
and cheap sound cards rather than make a project out of it. The setup is for
SIGINT, so the cards works independent of each other. But there is an
opensource Linux program for multi-channel recording.

TI makes some chips that are 8 channel oversampled converters. They use
individual analog front ends then multiplex the digital in a manner that is
transparent to the user.
 
Lasse Langwadt Christensen wrote:
Den tirsdag den 25. februar 2014 23.01.26 UTC+1 skrev Joerg:
Folks,



The AC97 standard describes only up to four sound chips operated

simultaneously, on page 21:



ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf



What if one would like to connect, say, 20 of them and all are supposed

to run nicely synchronous? Like in a digital mixer board for music.


I'm guessing that is how people do it

http://www.soundonsound.com/sos/feb99/articles/multisound.987.htm

Yes, they do it. But the author points out where things can seriously
hit the wall. Quote "The insurmountable problem with freewheeling
several soundcards side by side is simply that they are not locked
together". This means that the tie-in would need to be before the
signals even reach the innards of the PC. It probably would require some
sort of hardware concentrator.

--
Regards, Joerg

http://www.analogconsultants.com/
 
David Platt wrote:
Folks,

The AC97 standard describes only up to four sound chips operated
simultaneously, on page 21:

ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf

What if one would like to connect, say, 20 of them and all are supposed
to run nicely synchronous? Like in a digital mixer board for music.

My guess is that you'd need to have multiple AC-link busses (one per
each set of four AC97 codecs). A single output bus couldn't push bits
fast enough to keep 20 codecs properly fed at any reasonable sample
rate. Inputs are already split out (one input line per codec), so
you'd have to replicate these.

Presumably the bit-clock would be buffered and split and sent out to
all of the codecs in parallel in order to maintain fine-grained
synchronization.

I suppose you might be able to do all of this by simply replicating
the AC97 controller IP at different PCI-bus locations, but I suspect
that maintaining adequate synchronization between the codecs on
different controllers would be a nightmare in this case.

Sync is exactly my concern.


So, you'd probably have to build a single block of IP which *looked*
like a set of five AC97 controllers, and had some additional mojo
which ensured that commands and data could be pushed out to multiple
codecs with adequate time synchronization.

I've seen some limitations in the AC97 architecture which make me
think it's not a great choice for your application. As far as I can
tell, it's not great about handling timing from sources other than
itself (e.g. from the controller, a fixed crystal, or one specific
codec on the bus). As a result it doesn't deal well with external
signals having their own timing (e.g. S/PDIF input). I have yet to be
able to get an AC97 system to receive external S/PDIF input in a
bit-exact fashion... usually, it drops or duplicates samples as the
input data rate differs from its own idea of 48 ksamples/second.

That's what I've (so far) read as well when studying the AC97 concept.
Is there any other standard that's better or do we have to totally roll
out own? Can't imagine that there aren't others interested in digital
mixers and stuff.

--
Regards, Joerg

http://www.analogconsultants.com/
 
krw@attt.bizz wrote:
On Tue, 25 Feb 2014 14:01:26 -0800, Joerg <invalid@invalid.invalid
wrote:

Folks,

The AC97 standard describes only up to four sound chips operated
simultaneously, on page 21:

ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf

What if one would like to connect, say, 20 of them and all are supposed
to run nicely synchronous? Like in a digital mixer board for music.

Why AC97? There are dozens of DACs and CODECs around with all sorts
of interface options.

The goal was to use sound chips because of their attractive pricing
while offering 20+ bits of dynamic range and potentially high sample
rates. Is there another standard that comes to mind?

I know how to roll this using individual ADCs and DACs but that gets
expensive. Plus we'll have to write our own drivers and all this fun stuff.

--
Regards, Joerg

http://www.analogconsultants.com/
 
In article <bn4vduFg4o9U1@mid.individual.net>,
Joerg <news@analogconsultants.com> wrote:

That's what I've (so far) read as well when studying the AC97 concept.
Is there any other standard that's better or do we have to totally roll
out own? Can't imagine that there aren't others interested in digital
mixers and stuff.

My impression is that AC97 was intended for the mainstream motherboard
application space... basically, for integrating onto the motherboard
the same capabilities that you'd get with a vanilla soundcard and
(perhaps) a modem. It extends well enough to handle typical "home
theatre" multichannel applications... which are all primarily
output-driven.

It definitely seems to focus on being cost-sensitive and
multivendor-friendly.

I don't think it was ever targeted at the medium-to-high-end
application space.

As the article you pointed to suggests, there are solutions to this
using plug-in (typically PCI) sound cards that have been designed with
multi-card timing synchronization features.

I haven't heard of anybody trying to standardize this sort of many-way
timing and control synchronization for motherboards. Not enough of a
(perceived) market to justify the effort, I would guess.

You're probably in roll-your-own territory, I'd guess. Maybe a modest
FPGA, with PCI or PCI-E bus IP on one side, a tuple of AC97 controller
blocks (or something wire-compatible?) on the other, and a big hunk of
on-board or closely-attached memory for buffering? If you stick with
AC97 codecs of the same make and model, you might be able to maintain
timing and messaging synchronization all the way down to the bit
level?
 
Joerg <invalid@invalid.invalid> wrote:
What if one would like to connect, say, 20 of them and all are
supposed to run nicely synchronous? Like in a digital mixer board for
music.

I know very, very little about this; most of what I know comes from
talking to a former co-worker who used to run a recording studio, and
recorded to hard disk in his computer. The way that it seems to work is
that you stick a PCI (or PCIe or whatever) interface card in your
computer, and then run a (probably propietary) cable from that to an
external box that actually has all the A/Ds, D/As, and clocks in it.
This external box is "doing its own thing" and is not really connected
to the audio system that lives on the motherboard. You then run
software on the computer that knows about this setup and can tell the
external box what to do - when you hit "record", the PC's main job is to
take the digital data coming from the PCI card and write it to disk.

He used a Mac for this and had, if I remember right, the then-current
version of the "Pro Tools" software, from Digidesign (now Avid). A
quick read of the Wikipedia page suggests that at least in the past, and
possibly today as well, this software only worked with the I/O hardware
that was also sold by Digidesign/Avid.

The competitor that he mentioned was Apple's "Logic" software, but I'm
not sure which external hardware it works/worked with, or even if it
supports external hardware.

One vendor that I know of that plays in this area is Mark of the
Unicorn. I don't know if their stuff is any good or not; I just know
they exist. Their "24I/O" box seems like it might do what you want:
24 channels of 24-bit (max) inputs at 96 kHz (max). Top level at
http://www.motu.com/products/pciaudio/24IO/body.html . The summary
http://www.motu.com/products/pciaudio/24IO/summary.html says it comes
with Windows and Mac drivers, and can sync to external time bases. The
first couple of Google hits say that a package with one of those boxes
plus the PCI card to drive it costs about US$1,420 quantity one. This
may well be beyond your budget, but it gives you some idea of what you
can have in your hands tomorrow. You then have to go and write the
software for it, but you have to do that anyway... :)

Standard disclaimers apply: I don't get money or other consideration
from any companies mentioned.

Matt Roberds
 
Joerg <invalid@invalid.invalid> wrote:
Folks,

The AC97 standard describes only up to four sound chips operated
simultaneously, on page 21:

ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf

What if one would like to connect, say, 20 of them and all are supposed
to run nicely synchronous? Like in a digital mixer board for music.
Use an external audio interfaces with ADAT interface. AFAIK such interfaces
can be synchronized.


--
Dipl.-Inform(FH) Peter Heitzer, peter.heitzer@rz.uni-regensburg.de
HTML mails will be forwarded to /dev/null.
 
On Tue, 25 Feb 2014 17:50:44 -0800, Joerg <invalid@invalid.invalid>
wrote:

krw@attt.bizz wrote:
On Tue, 25 Feb 2014 14:01:26 -0800, Joerg <invalid@invalid.invalid
wrote:

Folks,

The AC97 standard describes only up to four sound chips operated
simultaneously, on page 21:

ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf

What if one would like to connect, say, 20 of them and all are supposed
to run nicely synchronous? Like in a digital mixer board for music.

Why AC97? There are dozens of DACs and CODECs around with all sorts
of interface options.


The goal was to use sound chips because of their attractive pricing
while offering 20+ bits of dynamic range and potentially high sample
rates. Is there another standard that comes to mind?

Sure, just about any audio DAC should work. For many channels, you'd
want something with a TDM interface. How many channels do you need?

I know how to roll this using individual ADCs and DACs but that gets
expensive. Plus we'll have to write our own drivers and all this fun stuff.

You'll need your own drivers anyway. ADI makes DACs up to 16
channels. I generally use Cirrus Logic 8-channel DACs (CS4385)
because they're cheaper (around a buck in volume). AKM and TI (Burr
Brown) also make some good ones.
 
On 2/25/2014 8:44 PM, Joerg wrote:
Lasse Langwadt Christensen wrote:
Den tirsdag den 25. februar 2014 23.01.26 UTC+1 skrev Joerg:
Folks,



The AC97 standard describes only up to four sound chips operated

simultaneously, on page 21:



ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf



What if one would like to connect, say, 20 of them and all are supposed

to run nicely synchronous? Like in a digital mixer board for music.


I'm guessing that is how people do it

http://www.soundonsound.com/sos/feb99/articles/multisound.987.htm


Yes, they do it. But the author points out where things can seriously
hit the wall. Quote "The insurmountable problem with freewheeling
several soundcards side by side is simply that they are not locked
together". This means that the tie-in would need to be before the
signals even reach the innards of the PC. It probably would require some
sort of hardware concentrator.

Yes! Higher end digital music gear and audio interfaces often have "word
clock" input/outputs so everything stays synced to the same sample
clock. It's on a BNC connector. See for example:

http://www.sweetwater.com/store/detail/Multiface2?device=c&network=g&matchtype=&gclid=CNfpoePC6rwCFRPxOgodMGIAmA

http://en.wikipedia.org/wiki/Word_clock
 
On 2/25/2014 5:01 PM, Joerg wrote:
Folks,

The AC97 standard describes only up to four sound chips operated
simultaneously, on page 21:

ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf

What if one would like to connect, say, 20 of them and all are supposed
to run nicely synchronous? Like in a digital mixer board for music.

Here's a dirt cheap way to get a ton of analog audio inputs:

Buy one of these:

http://www.ebay.com/itm/M-Audio-Profire-Lightbridge-/201042188530?pt=US_Computer_Recording_Interfaces&hash=item2ecf0c58f2

4 ADAT lightpipe in/outs

And then get 4 of these:

http://www.soundonsound.com/sos/jun04/articles/behringerada.htm

Then you have 32 analog inputs to Firewire, all synced sample-accurate
via ADAT clock. If you need more, buy another Lightbridge and sync both
setups via their Word Cock connectors.
 
Den torsdag den 27. februar 2014 01.42.23 UTC+1 skrev Joerg:
bitrex wrote:

On 2/26/2014 2:42 PM, bitrex wrote:

On 2/25/2014 5:01 PM, Joerg wrote:

Folks,



The AC97 standard describes only up to four sound chips operated

simultaneously, on page 21:



ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf



What if one would like to connect, say, 20 of them and all are supposed

to run nicely synchronous? Like in a digital mixer board for music.





Here's a dirt cheap way to get a ton of analog audio inputs:



Buy one of these:



http://www.ebay.com/itm/M-Audio-Profire-Lightbridge-/201042188530?pt=US_Computer_Recording_Interfaces&hash=item2ecf0c58f2







4 ADAT lightpipe in/outs



And then get 4 of these:



http://www.soundonsound.com/sos/jun04/articles/behringerada.htm



Then you have 32 analog inputs to Firewire, all synced sample-accurate

via ADAT clock. If you need more, buy another Lightbridge and sync both

setups via their Word Cock connectors.



I neglected to ask if the requirement for 20+ channels of synced audio

to the computer was for a one-off installation, or was a requirement for

some kind of product that you're developing. If it's the latter I'm

curious as to what the application is, because as shown multitrack audio

recording to the PC is a completely solved problem with commodity-priced

hardware already available.





It's not a one-off but for a product. Can't talk about the application

but essentially it's the processing of electrical signals that (luckily)

happen to be spectrally in the audio band. Phase synchronicity of all

channels to each other and dynamic range are the key parameters.

a good start would be to feed them all from the same oscillator, that should take care of the hardest problem, getting the sample rate exactly the same
though there might a pll for some sample rates..

-Lasse
 
On 2/26/2014 2:42 PM, bitrex wrote:
On 2/25/2014 5:01 PM, Joerg wrote:
Folks,

The AC97 standard describes only up to four sound chips operated
simultaneously, on page 21:

ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf

What if one would like to connect, say, 20 of them and all are supposed
to run nicely synchronous? Like in a digital mixer board for music.


Here's a dirt cheap way to get a ton of analog audio inputs:

Buy one of these:

http://www.ebay.com/itm/M-Audio-Profire-Lightbridge-/201042188530?pt=US_Computer_Recording_Interfaces&hash=item2ecf0c58f2


4 ADAT lightpipe in/outs

And then get 4 of these:

http://www.soundonsound.com/sos/jun04/articles/behringerada.htm

Then you have 32 analog inputs to Firewire, all synced sample-accurate
via ADAT clock. If you need more, buy another Lightbridge and sync both
setups via their Word Cock connectors.

I neglected to ask if the requirement for 20+ channels of synced audio
to the computer was for a one-off installation, or was a requirement for
some kind of product that you're developing. If it's the latter I'm
curious as to what the application is, because as shown multitrack audio
recording to the PC is a completely solved problem with commodity-priced
hardware already available.
 
On Tue, 25 Feb 2014 14:01:26 -0800, Joerg <invalid@invalid.invalid>
wrote:

Folks,

The AC97 standard describes only up to four sound chips operated
simultaneously, on page 21:

ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf

What if one would like to connect, say, 20 of them and all are supposed
to run nicely synchronous? Like in a digital mixer board for music.

I have seen some references to 6 channel codecs intended for 5.1
systems, so you would get six synchronized channels on a single chip.
With four such chips, you would end up with 24 channels.

Anyone of those chips usable for your application ?
 
bitrex wrote:
On 2/25/2014 8:44 PM, Joerg wrote:
Lasse Langwadt Christensen wrote:
Den tirsdag den 25. februar 2014 23.01.26 UTC+1 skrev Joerg:
Folks,



The AC97 standard describes only up to four sound chips operated

simultaneously, on page 21:



ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf



What if one would like to connect, say, 20 of them and all are supposed

to run nicely synchronous? Like in a digital mixer board for music.


I'm guessing that is how people do it

http://www.soundonsound.com/sos/feb99/articles/multisound.987.htm


Yes, they do it. But the author points out where things can seriously
hit the wall. Quote "The insurmountable problem with freewheeling
several soundcards side by side is simply that they are not locked
together". This means that the tie-in would need to be before the
signals even reach the innards of the PC. It probably would require some
sort of hardware concentrator.


Yes! Higher end digital music gear and audio interfaces often have "word
clock" input/outputs so everything stays synced to the same sample
clock. It's on a BNC connector. See for example:

http://www.sweetwater.com/store/detail/Multiface2?device=c&network=g&matchtype=&gclid=CNfpoePC6rwCFRPxOgodMGIAmA


http://en.wikipedia.org/wiki/Word_clock

That looks like an interesting method. Only eight channels but it's
probably a concept that could accomodate more.

--
Regards, Joerg

http://www.analogconsultants.com/
 
David Platt wrote:
In article <bn4vduFg4o9U1@mid.individual.net>,
Joerg <news@analogconsultants.com> wrote:

That's what I've (so far) read as well when studying the AC97 concept.
Is there any other standard that's better or do we have to totally roll
out own? Can't imagine that there aren't others interested in digital
mixers and stuff.

My impression is that AC97 was intended for the mainstream motherboard
application space... basically, for integrating onto the motherboard
the same capabilities that you'd get with a vanilla soundcard and
(perhaps) a modem. It extends well enough to handle typical "home
theatre" multichannel applications... which are all primarily
output-driven.

It definitely seems to focus on being cost-sensitive and
multivendor-friendly.

I don't think it was ever targeted at the medium-to-high-end
application space.

As the article you pointed to suggests, there are solutions to this
using plug-in (typically PCI) sound cards that have been designed with
multi-card timing synchronization features.

I haven't heard of anybody trying to standardize this sort of many-way
timing and control synchronization for motherboards. Not enough of a
(perceived) market to justify the effort, I would guess.

You're probably in roll-your-own territory, I'd guess. Maybe a modest
FPGA, with PCI or PCI-E bus IP on one side, a tuple of AC97 controller
blocks (or something wire-compatible?) on the other, and a big hunk of
on-board or closely-attached memory for buffering? If you stick with
AC97 codecs of the same make and model, you might be able to maintain
timing and messaging synchronization all the way down to the bit
level?

It has to be to the bit level. There cannot be even one sample of slippage.

But as Bitrex and Peter mentioned, ADAT might be an option.

--
Regards, Joerg

http://www.analogconsultants.com/
 
Peter Heitzer wrote:
Joerg <invalid@invalid.invalid> wrote:
Folks,

The AC97 standard describes only up to four sound chips operated
simultaneously, on page 21:

ftp://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf

What if one would like to connect, say, 20 of them and all are supposed
to run nicely synchronous? Like in a digital mixer board for music.
Use an external audio interfaces with ADAT interface. AFAIK such interfaces
can be synchronized.

Thanks. Bitrex pointed out a product that has it. Painfully expensive
though.

--
Regards, Joerg

http://www.analogconsultants.com/
 

Welcome to EDABoard.com

Sponsor

Back
Top