Since you guys brought it up, here is a little primer on USB audio. 

All modes in the official USB audio spec use isochronous transfer, this
means the host is sending out packets to match a particular transfer
rate (44.1 48 etc), this bandwidth is reserved on the bus. There is no
handshake per packet, the host keeps on shoving them out no matter
what. 

There are three audio modes: synchronous, adaptive and asynchronous.
(remember these are ALL isochronous, so you cannot say "isochronous or
asynchronous", asynchronous IS isochronous!) 

Synchronous connects a PLL to the actual data stream on the USB bus.
This is the simplest connection but is VERY susceptible to jitter on
the bus since the PLL is directly tracking the bus. A number of cheap
early USB audio devices used this mode, but its pretty rare today.

Adaptive mode uses a frequency sysnthesizer of some sort to clock the
data out of the chip. The frequency is changed slowly based on how full
or empty the fifo is getting. The host is still in ultimate control, but
the output clock is not directly slaved to the bus, this can have much
lower jitter than synchronous mode. There are MANY different
implementations of this mode, some almost entirely analog and some
implemented in software on a processor. Some of these are actually
pretty darned good. Almost all implementations today use this mode.

Asynchronous mode, a completely separate clock is used to clock out the
data (you CAN use a super low jitter clock for this). A separate channel
is opened over the bus going from the receiver to the host which tells
the host to occasionally slightly speed up or slow down the
transmission. If the FIFO in the receiver is getting empty it tells the
host to speed up etc. 

Note the asynchronous mode is not really the same as TCP/IP, there is
no request or handshake per packet, there is NO error correction, if a
bad packet is found, tough. (error detection bits are sent, but the
only thing you can do with them is blink a front pannel light, there is
no retransmission capability)

The TI 1020 and 3200 are the only USB audio chips I'm aware of that
even have the capability of asynchronous mode, BUT you have to program
the chip to do this. This is not easy, I spent many months trying to do
this and finally gave up. I only know of one person that has
successfully implemented asynchronous mode on one of these chips. 

There HAVE been a couple of implementations using non-audio USB enabled
microprocessors, but again this takes custom firmware and drivers on the
computer. The companies that have done this are not high end companies
and have not taken advantage of the asynchronous mode to produce very
low jitter implementations. The high end companies can't afford the
manpower and time it takes to implement one of these, and the companies
that have implemented it are not sharing thier implementation with the
rest of the world. 

I hope that clears the air a little on this subject.

John S.


-- 
JohnSwenson
------------------------------------------------------------------------
JohnSwenson's Profile: http://forums.slimdevices.com/member.php?userid=5974
View this thread: http://forums.slimdevices.com/showthread.php?t=33836

_______________________________________________
audiophiles mailing list
audiophiles@lists.slimdevices.com
http://lists.slimdevices.com/lists/listinfo/audiophiles

Reply via email to