On Sun, Oct 30, 2011 at 8:56 AM, Emanuel Rumpf <xbran(a)web.de> wrote:
2011/10/20 Charles Henry <czhenry(a)gmail.com>om>:
... feedback for a project, namely building an
audio interface, with the goal of creating freely available schematics
and code ...
The concept is to create a modular and scalable system that allows
users to create a sound interface with an arbitrary number of
input/output channels.
Great project !
Maybe try some fund-raising ?
Good point. That's a consideration that needs to be up front.
Now, say thanks to those xmos people, they have a
whole reference design ready, inclusive buyable prototype:
http://www.xmos.com/products/development-kits/usbaudio2mc
Note: This is based on xmos technology, XC - a C like language, that
allows implicit parallel programming.
I heard USB-Audio-Class-2.0 is already supported by ALSA (driver architecture),
thus this device might work OOTB or with very little effort on linux.
I am floored. This leaves me about speechless. It's possibly a new
direction to go--the processors themselves are about as expensive as
FPGA chips.
In the following, some of my ideas:
You could take it as base,
- modularize it further
- or add some missing components,
- make IOs balanced,
- add ADAT
- add AES3, (AES/EBU)
- add AES10 (MADI)
- add AVB
- support MIDI IO
- Allow the synchronization of two or more cards, to allow more than 6
IN channels.
That's clearly just for the development board--I think their
processors can handle more channels, but the $350 development board
will support up to 6 channels. It would be better to develop some
board designs around the chips, and see how the cost comes out.
- Make most of it optional and modular.
- Make 1 (extensible) low-cost + 1 (all-incl.) high-end design
Yes, I tend to agree. There's several different processors in their
product line, and it's a good development platform to look at tiered
approaches with different goals.
Since most of the modules exist, work is to connect
and integrate all of it,
and the design of a beautiful case and package ;)
I would make most of the design digital, with the exception of pre-ADC
(analog limiter, balancer) and post-DAC (amplifier, balancer) stages.
You would end with about these modular stages:
- analog inputs ADC_01 ... ADC_XX
- ADCs would deliver I2S streams, send to a mixer (fpga ? or xmos uC)
, or directly to output modules.
- digital IO SPDIF
- digital IO ADAT
- digital IO AES3
- digital IO AVB
- digital IO USB 2.0
- digital IO IEEE 1394 (maybe)
- digital word clock (75Ω BNC)
- analog outputs DAC_01 .. DAC_XX, would receive digital I2S streams
- controler , routing-, configuration- and switching module
Digital INs would be routed to the mixer stage.
Digital OUTs, could optionally be routed back to the mixer stage,
maybe with a feedback-loop detection, to prevent damage of ear and device.
--
E.R.
Thanks for your feedback, Emanuel. It's sort of a game-changer to me.
Clearly, there's no point in starting a project that would duplicate
an existing solution. I appreciate new information like this.
I'll have to think this over for quite a while to see which way I'd
want to go--whether there's a worthy project goal in an FPGA based
design that cannot be more easily (or more cheaply) accomplished.