4-Bit Audio Output Via Voltage Reference

[Bruce Land] switched his microprocessor programming class over from Atmel parts to Microchip’s PIC32 series, and that means that he’s got a slightly different set of peripherals to play with. One thing that both chips lack, however is a digital-to-analog converter (DAC). Or do they? (Dun-dun-dun-duuuuhnnnn!)

The PIC part has a programmable, sixteen-level voltage reference. And what is a Vref if not a calibrated DAC? With that in mind, [Bruce] took to documenting its performance and starting to push it far beyond the manufacturer’s intentions. Turns out that the Vref has around 200 kHz of bandwidth. (Who would update a voltage reference 200,000 times per second?)

Anyway, [Bruce] being [Bruce], he noticed that the bits weren’t changing very often in anything more than the least significant bit: audio waveforms, sampled fast enough, are fairly continuous. This suggests using a differential PCM encoding, which knocks the bitrate down by 50% and saves a lot on storage. (Links to all the code for this experiment is inline with his writeup.)

The audio hacks that come out of [Bruce]’s Cornell ECE classes are always a treat. From the lock that you have to sing to open, to chiptunes programmed into an FPGA, there’s something for music fans of all inclinations.

18 thoughts on “4-Bit Audio Output Via Voltage Reference

  1. It’s 4 bit, not 16 bit.

    By the way, at 200kHz one can push a lot of the quantization noise beyond of the audible frequencies.

      1. It’s still 4-bit, however it can “simulate” more levels by use of dithering.
        It is like dithering in picture – if you get far enough from the picture, the dithered pixels merge into a continuous picture which looks like a picture using more colors. This happens because the spatial bandwidth of the picture exceeds spatial bandwidth of your eyes.
        The same applies to sound – dither at such a high frequency that most of the noise lies in non-audible part of spectrum and et voilá, you have something that may sound like 16-bit audio. And if the oversample ratio is high enough, it even may be a 16-bit audio.
        For more clear explanation, see “Oversampling” on Wiki— errh some encyclopedia of your choice.

      2. Hackaday recently ran an article on Delta-sigma converters by Bil Herd. That explains the concept of oversampling and noise-shaping. Search for those keywords if interested

  2. I wonder if [Bruce] has ever seen Roman Black’s “BTc Sound Compression Algorithm”. It goes a step further than dithering, simulates closed-loop operation by modelling the time constant of your low-pass filter at time of compression. I’d expect [Bruce] could get a noticeable improvement in quality using this technique.

  3. Elliot – always enjoy your Hackaday articles (and the resulting comments). Thank you for another interesting one.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.