!
As someone working in this area, the USB interface is the boring standard bit and the actual analogue bit is both difficult and determines quality.
For what purpose do you want an open source DAC? Would you be happy with a chip doing USB to I2S for you and then doing the DAC yourself?
Or is this more of a marketing game of adding hiss / distortion / lowpass / other non-idealities that perceptually improve quality and convincing people to use your DAC to do it rather than software? It seems a bit unlikely.
If I had to guess, it would be that the narrowly defined task of a DAC has been thoroughly solved and commodified while the high end of the space differentiates itself with industrially relevant features like failover, monitoring, durability, and compatibility. But then why the interest in a DIY DAC? Maybe I'm reading too much into this, it's all curiosity driven, and I shouldn't interpret a desire for DIY DACs as a statement that audio DACs aren't a solved problem.
ESS "sabre32" DAC ICs are widely regarded as excellent and even integrated into high end audio products, yet they can be bought in small quantities for 12$ each: http://www.shawelectronics.com/es9018k2m.html
Unfortunately, this phenomenon seems to make it quite hard to find genuinely well designed equipment. I would love to get a small A/V receiver with high efficiency, the ability to drive a load of varying impedance from 1-16 ohms (possibly frequency dependent), and better linearity and noise characteristics than I can perceive. Actually buying such a thing is not so easy due to all the snake oil and the fact that almost no one reviews equipment on any objective axis.
There is one genuine complication that I’m aware of: analog audio connections tend to be old, bad designs. RCA is single-ended. XLR is a decent design, but it’s rare in home audio. Speaker wires, in all their silver-plated glory, aren’t twisted. So inductively coupled noise is everywhere, especially at 50-60 Hz. Ground loops are hard to avoid. Unlike RF, audio should have a flat response down to 20 Hz, so cheap, small tranformers are out of the question. Nice isolation hardware isn’t that expensive, but it would still add up if you wanted to build an A/V receiver with a bunch of isolated inputs and outputs. With professional systems, you are much more likely to encounter differential signaling, but you are also likely to have very, very long wires and rather low signal voltages from microphones and such. This can result in unpleasantness like AM radio becoming audible if you have non-linearities that might accidentally rectify the radio signal.
I would like to see the audio world move to digital signaling for everything, but good luck getting everything to interoperate.
XLR connectors are huge. One can get DVD players that are too slim to accomodate XLR plugs.
With RCA, you have none of these benefits. Heck, with RCA stereo, unless one end is isolated or you cut one of the shields, you cannot avoid a ground loop — the stereo connection by itself contains a ground loop.
Matching impedance is necessary for connecting high-impedance output stages like tubes to low-impedance circuits like speakers. But transistor amps are generally already operating with low impedance outputs.
Unfortunately a lot of the advancement, especially in the high end space, is proprietary. I read a somewhat vague article about some of the more recent innovations, and one that stood out was the need to set the Initial Condition of the Delta Sigma Modulator in a specific way. Delta Sigma quantization noise is notoriously poorly behaved, and because of its periodicity, it was actually perceptible even at its lower levels.
I would agree that audio DACs are indeed a "solved" problem, but at this point so is pretty much everything in integrated circuit design. Most advances in design are very incremental. The need for innovation comes from the continued push to reduce power and cost. Eventually you have to change process node - smaller transistors means a smaller die and lower cost, and also lower power for many circuits. That tends to be very challenging for a lot of mixed-signal circuits because the smaller transistors are worse in analog domains. You end up having to play a lot of tricks to make things work, but its pretty well understood and nothing revolutionary.
So you're right that within the industry we already have the analog side as re-usable IP. However, someone starting from scratch - and especially starting with a FPGA - would need a lot of analog design experience. Analog silicon design is an even more rare skill (we are, I think, hiring if you have this).
What we are generally doing is support features; headphone detect, power management, power amplification (built-in boost converters etc), as well as post-processing and EQ. You can use EQ to compensate for the nonlinear response of tiny speakers in mobile phones.
(An odd side effect of the hardware pipeline and my role in software support is that anything you can actually see on the public website is very out of date compared to what's in development and heavily NDAd)
I'm still not clear why the OP wanted an open source DAC.
It's a USB stack implemented as pure gateware - no hard/soft CPU needed, although I think you can hook one up if you want to.
edit: Here is the actual USB core that's in there: https://github.com/im-tomu/valentyusb/
Its actually not that much for the bare minimum needed, though the USB docs are pretty daunting.
If you go with USB1, you basically just need enough to answer the descriptor and set interface queries and set up the endpoints (in particular the isochronous endpoint for audio is a bit more complex). If you stick to exactly one supported format and sample rate and don't include any control units, you can basically skip all the audio class control messages.
For USB1, in a pinch, you can use a cheap generic 24MHz usb logic analyzer and pulseview to decode the raw usb protocol for debugging (though with 24MHz you get some corruption in the capture from clock drift, you need at least 48MHz for more reliable signal sampling).
I'd guess you can make do with ~1k LOC in this case.