About the audio from the hardware perspective:
Quality of audio playback depends from the signaling path from the very beginning to the end. Starting with the quality of the ripped music and the rip it self trough the player, digital to analog conversion, amplification and of course speakers. Going deeper, every single discreet element is really important to get desired sound out. If you are one of those guys that care about what they hear listening to music, the difference between just to play some music from some player to some receiver using some speakers or using little bit better equipment coming not from the mass market is huge. Starting with the upgrades, in the beginning, the results (improvement) of the spent money (and time) is really big. But after some point tweaking more become really expensive hobby where the spend amount of money is giving just a little even only theoretical results in some cases. And one very important thing is that there is not one-for-all technical decision. I mean that different people like different type of sound or sounding. So starting audio based hardware project especially for the DIY community or just for enthusiastic individuals it’s important not to give them the best final product (there is not such actually) but the proper base they to build own systems.
Back to VIM, we have HDMI and USB already and s/pdif, toslink and I2s (I hope) trough GPIO.
Speaking about audio on VIM we need to work on two directions: stereo and multichannel. Existing connectivity is giving us an option to connect almost any equipment for stereo and multichannel but trough HDMI directly or USB DAC only or with some extra elementary wiring trough s/pdif. For those that already have DACs, especially DACs with spdif passtrough option is really easy and user friendly, but for all others, especially w/o technical skills it can be a challenging task to connect VIM to their home audio systems if they don’t have HDMI inputs on their receivers. Another topic is the limitation of HDMI which is 24bit/192Khz and spdiff - 24bit/96(192 in some cases)KHz.
So, best case scenario is to add the next interfaces to VIM:
- s/pdif (coaxial) with multichannel support (trough GPIO)
- toslink with multichannel support (trough GPIO)
- dedicated audio (2ch. only) re-clocked s/pdif and toslink (trough I2s or USB and after some circuit)
- Analogue RCA (XLR optional) for native, over 192KHz signals (trough I2s or USB followed by DAC)
- Native I2s output (optional)
Going for above scenario this mean an expensive peace of hardware especially if you go for really high-end sound. My personal opinion is that here we have to focus on proper from audio engineering perspective and good enough for average use and not to go building best in the industry DAC circuit implementation. More over most of the high-end enthusiasts, already have own USB DACs and for them only USB is enough.
We need three basic extensions boards as a beginning:
- spdif/toslink from the GPIO (cheapest one)
- simple combo analogue + digital: spdiff/toslink + analogue output 3,5" jack or 2xRCA trough simple DAC (average use, not too expansive)
- “Hi-End” all-in-one with separate linear power suplay:
- Multichannel audio spdiff/toslink trough GPIO (as is)
- Two channel, isolated dual mono DAC with re-clock (capable of minimum 32bit/384KHz) analogue outputs RCA/XLR and spdif/toslink pastrough after re-clock.
I work on the 3th option.
Of course it is good to have adequate cases as well
Any comments, suggestions and corrections here are welcome.
Next is the software part which is the most important actually and all of the above in this post is more or less for information only.