I have gained much valuable insight from reading the posts from last month on Linux Audio Dev and OpenGraphics. I have tried to incorporate what wisdom I could. Someone wiser than I could greatly improve on this, of course. Hence this document.
Low to mid-range markets are saturated. Buildable, but not likely saleable. Top end market is pretty tight. R&D budget for that level of gear is probably more than the video card project. Semi-pro is more doable. Best bet is an aggressive design to sell on performance and features. Most advanced features can be implemented in software, so the hardware should be fairly straight-forward, but it still needs good throughput. Target market Semi-pro audio (high end of target) High end gamers (mid range of target) Home theater (low end of target) Hobbyist -Hobbyist add-ons could greatly increase saleability to other markets US$300? price range for baseline system - this needs to be priced out 19" rackmount boxes may cost more. Mainly due to the sheer volume of good stuff that can be packed into them. see below. Features 192kHz @ 24bit inputs and outputs (48 bit fixed point internal) on board resampling/mixing sample rate bit depth # channels channel swap on board realtime compression/decompression/transcoding all analog I/O is in (shielded) breakout boxes more than one kind of box supported (including custom boxes) more than one box at a time supported breakout boxes may be up to 100m from host system MIDI 5.1 optical ADAT sound samples/effects may be preloaded to card and played/mixed on demand full 3D audio processing custom codecs and effects generators may be loaded on demand on board speech synthesis - just another codec :) on board speech recognition - same :) IR remote control? watchdog timer? Several people have voiced desire for 192kHz capability and have indicated media at this quality is available from some sources. Native sample capabilities 192kHz at 24 bit max - more than this would be overkill, and would hurt other capabilities without benefit 96kHz, 48kHz, 44100Hz, 22050Hz, 11025Hz for good measure -there is no point resampling to a higher rate unless you are going to mix with a higher rate source. digital resampling does not increase sound quality. -resampling from 44100 (CD audio) and lower to 48k or higher creates artifacts (not an even multiple) -more processing power/bandwidth is available for effects/additional channels at lower sample speeds. halving the sample rate doubles the processing power available per sample. 48 bit fixed point internal DSP for best accuracy all samples converted to 48 bit fixed point for internal processing -there should be no data loss from this conversion -if the hardware is efficient: -there should be negligible performance penalty for conversion -there should be no performance penalty for using the higher bit depth -simplified design if all DSP functions and codecs use the same format -downsampling from 48 to 24 bit for output is trivial if implemented in hardware World clock world master capable may also use external world clock -card can repeat clock to host system and breakout boxes if no dedicated world clock wiring is desired or possible, soft world clock may be implemented -ie card and each peripheral generate their own clock and a periodic sync signal is provided over data channel. see below. -unit may not be able to run at full speed due to timing constraints/clock skew in this case. not acceptable for live work, but OK for lower markets. Virtual back plane for maximum flexibility (any input may be mapped to any output with any filtering/effects) external effects box can therefore be patched in at any location, if desired volume controls are 10-12 bit analog inputs sample at 20Hz? volume control sampling does not need to be synchronized to any world clock mutes are 1 bit input arrays. same sampling as above. I/O card is purely digital all analog and most digital I/O is in breakout boxes. see below. Analog inputs and outputs are discrete from each other (no dual I/O jacks to toast a mic with) powered outputs are discrete from line outputs 1/8", 1/4", RCA, balanced XLR as appropriate inputs digitally controlled analog gain or preamp for each channel analog prefilters to reduce digital aliasing digital post filter? (cropping excess digital bits is trivial) outputs digitally controlled output gain or postamp 5th or 7th order Bessel filters standard Digital optical S/PDIF in and out (5.1 audio) ADAT (lightpipe) in and out (8 channel, optical) does anybody have specs on this? how hard is it to get interface hardware? cost? licencing? (this is an open design, so this could be an issue) MIDI CD digital audio in/out (2 channel, 16 bit, 44100, twisted pair) this would be on-card, if provided could be used to link to other cards Breakout Boxes more than one type of box should be supportable 5 1/4" internal/external box? cheapest to build shielded for internal mounting line in/line out/mic/headphone/IR/MIDI 5.1 line out? volume control input may only need 100baseT if bandwidth isn't a problem 9" (approx) external box home theater/gamer 5.1 analog and optical in/out 5.1 analog speaker out (power amp) (5.1 analogs can be configured as 3 stereo pairs, or 6 mono) IR/MIDI/mic/headphone software controlled AM/FM radio tuner? LCD display? digital spectrum analyzer display? 19" rack mount (someone with experience could probably give better layout) I/O patch board 60-80 ports 1/4", balanced XLR (with switchable phantom power), headphone 1-2 volume controls per column ADAT in/out MIDI world clock in/out 1000baseT Control box 8-16 ports 1/4", XLR (with switchable phantom power), headphone ADAT in/out MIDI world clock in/out 32 volume control sliders with mutes (2 banks of 16) 4 master volume sliders with mutes (same as above, just labelled differently?) knob switches? (to select option or backplane presets, etc) 2 16 pos switches could be encoded in a byte or 4 4 pos switches, etc digital spectrum analyzer display? (also a programmable output) -this would suggest an equalizer somewhere would be in order too :) peak/RMS volume readouts? (which they are is a setting) 1000baseT more than one box at a time should be supported master can command boxes to forward streams to each other directly? multi master? ie more than one card connected to a group of breakout boxes and each other more complex design allows cards to talk to each other directly or share I/O resources 1000baseT connection NOT TCP/IP or IPv6 - should NOT be WAN routable don't need the extra overhead somebody is going to want to use the same switch their internet connection goes through.... all analog audio channels are 24 bit volume control channels are 10-12 bit mute controls are bit arrays requires in-box microcontroller as much work as possible should be done in hardware minimal processing requirements due to simple protocol ECC encode/decode/fixup is a large part of workload no DSP capability, other than perhaps hardware filters any digital filtering should be done by Master unit simple remote commands box detection broadcast (true PnP) per channel input signal forwarding (either to output on same box, output on other box, or to Master) world clock mode selection set gain controls box identification manufacturer model serial number(optional) I/O count/descriptions read current settings main load is data stream latch and marshal input signals for transmit (controlled by world clock) unmarshal packets to output signal latches 2 stage latch stepped by world clock lesser load is volume/mute update stream. same profile, just lower bandwidth I/O bandwidth 192kHz at 24bit is 576000 B/s 48kHz at 24bit is 144000 B/s max channels for 24 bit audio 192kHz 48kHz 10baseT 1 6 100baseT 17 69 Firewire 69 277 (400MHz) 1000baseT 173 694 100MHz could barely handle 17 channels @ 192kHz if you add ECC (usually a good idea) it would be even less Firewire can handle up to 69 channels (less for ECC), but protocols/drivers are a mess -how much does firewire hardware cost compared to 1000baseT? how to get? -Firewire2 at 800MHz might be a possibility, but again, cost/availability? Master Unit 1/2 height 1/2 length card PCI or PCIe form factor PCIe should be main focus offers higher bandwidth/lower latency than PCI common on newer machines by the time this gets to market, this will be the dominant standard x1 should be fast enough PCI provided for legacy support large current install base limited lifetime 1000baseT external connector 100 or 1000baseT internal connector (depending on cost and whether the 5 1/4" box needs 1000baseT) world clock in/out (to connect to another card in the same computer) ADAT I/O? 5.1 optical out? RAM 32-64 MB (128?) DDR dual channel? CPU 200MHz minimum can we do 300MHz, or even 400? overclockable with active cooling? 3rd party fan/water cooling mounts dual core? RISC like instruction set 48 bit fixed point DSP instructions or DSP farm 8-32 bit integer math (48 bit integer math?) bitwise functions should be efficient for compression/decompression using various codecs 32 bit address path so memory is upgradeable just by modifying the PCB I/O controls/registers should be separate bus, so memory map is linear minimal onboard boot loader, if required. all software is loaded from host system separate data and instruction L1 caches MMU so codecs run in own memory, don't direct have access to hardware necessary for buggy or untrusted codecs DMA to access host computer memory accelerated task switching multiple register files? OS embedded Linux to start with (at least until design is proofed) a true RTOS would be preferable multi-tasking SMP capable if CPU is dual core zero copy IO for performance will take a while to write :P maybe hack Linux? that is what it is for, after all on board watchdog timer? good if she locks up can be used as host computer watchdog timer as well hardware random # generator? can be used for white noise production 3 profiles of signal handling Live this is usually going from an analog input to an analog output highest priority in processing minimal buffering to reduce delay needs to be < 20ms, even if signal is passed through card more than once eg input -> card -> external effects box -> card -> output) this puts the highest load on the card critical for audiophiles may be important for gamers and hobbyists minimal importance for home theater Real-time this could be recording or playback precise timing is only necessary at source or output, respectively double buffering to improve efficiency is an asset even 500ms delay playing an MP3 doesn't matter. prebuffering several seconds wouldn't hurt anything either. video sync isn't affected if the timing signal back to the computer is generated AFTER the decompression codec output buffer double (or more) buffering during recording is critical to prevent data loss, especially if the audio is being compressed in real time Transcode lowest priority - this could be done entirely using time left over from the other operations buffering to improve efficiency is an must delay, clock skew, etc don't matter could be used with non-audio data with appropriate codecs (SETI at HOME, anyone?) If I have missed or messed up anything, that is just me being me. Please feel free to correct/mock/browbeat as appropriate. :) _______________________________________________ Join Excite! - http://www.excite.com The most personalized portal on the Web!