[sdiy] DAC Emulation

Scott Nordlund gsn10 at hotmail.com
Wed Jun 18 17:08:01 CEST 2014

This actually caught my eye too. I've been trying to emulate the DX7's DAC to see how significant it is to the sound. I think this can be broken into several components: quantization (either just accurate conversion of the waveform data or with some added linearity errors), zero order hold, and reconstruction filters. You can also add fractional delays to slightly offset the different outputs of a time-multiplexed DAC. And beyond that there's op amp noise, sample and hold charge injection, settling time, resistor ladder heating, etc. But these become much more difficult to model, and in most cases probably much less significant. I think a lookup table with linearity errors should be generally sufficient for emulating the DAC itself. The errors can be adjusted or randomized since the table is easily recalculated. 

In the DX7's case, the DAC and analog circuitry should entirely account for the differences in sound between the original DX7 (floating point with 12 bit mantissa and 2 bit exponent; 15 bit dynamic range) and the DX7 II (15 bit linear) models. The metal film resistor ladder in the DX7's floating point section contributes significant distortion (an ideal floating point conversion on its own isn't audibly different from linear). At least in this case, the linearity error is worth taking into account.

> Date: Tue, 17 Jun 2014 15:37:42 +0100
> From: rburnett at richieburnett.co.uk
> To: synth-diy at dropmix.xs4all.nl; grant at musictechnologiesgroup.com
> Subject: Re: [sdiy] DAC Emulation
> I think it's a valid statement. You are emulating the behaviour of hardware with a mathematical formula implemented in software. Granted it is probably a very simple memoryless time-invariant mapping function, but I'd still call it emulation or modelling. Similar to how you might model saturation in a guitar fuzzbox.
> Of course it might not be that simple if the original hardware also has some imperfections that the emulation attempts to faithfully reproduce. Eg, glitch energy, finite slew rate, etc.
> -Richie,
> Sent from my Xperia SP on O2
> ---- MTG wrote ----
>>I find this odd:
>>"The VLINN use DAC AM6070 emulation to decode the EPROMS content in real 
>>time, a specialized DAC back in the days that was able to encode/decode 
>>µ-Law companded data. A form of compression enabling a 12bit range out 
>>of 8bit storage."
>>I mean, this conversion can be done mathematically quite easily or even 
>>using a look-up table. I wouldn't exactly call that "emulation".
>>Synth-diy mailing list
>>Synth-diy at dropmix.xs4all.nl
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy

More information about the Synth-diy mailing list