About 30 years ago, before every computer had CD quality audio built in, audio cards and chips were technological marvels. MIDI chips, FM synthesis, and synths on a chip reigned supreme but one little device – just a handful of resistors – sounded fantastic. it was the Covox Speech Thing, a simple resistor ladder wired up to the parallel port of a computer that would output 8-bit audio to an external amplifier. [FK] recently built his own Covox (Czech, Google translatrix) with just 18 resistors, and the results sound fantastic.
Instead of fancy chips, the original Covox Speech Thing used the 8 bit parallel port on a PC. Back in the olden days, this was the fastest way to get digital data out of a computer, but since it was digital only, a DAC was required to turn this into audio. A simple resistor ladder was sufficient, and this hardware was eventually supported by the old DOS games from Sierra and Id.
[FK] has a demo of this LPT DAC available here, but we’re not thinking that link will last long. If anyone has a better link, leave a note in the comments and we’ll update this post. Thanks [beavel] for sending this in.
Oh the memories! I have this thing on a piece of PCB in my drawer still!
It was also known as Disney Sound Source and there were several variants of it. Even a stereo one!
AFAIK, the Disney Sound Source had an additional latch/buffer and an audio amplifier.
But nevertheless, games that had support for it also worked with the Speech Thing (clone).
Covox was in Oregon. Other than the Speech Thing they made two 8 bit ISA soundcards. The Sound Master and Sound Master II. The Sound Master was essentially an internal Speech Thing with a pair of Atari 2600 compatible joystick ports and IIRC another feature or two.
The Sound Master II lost the 2600 ports, and (IIRC) gained Adlib compatibility plus Covox’s own digital audio while retaining the Speech Thing. One of the last things the company did was releasing drivers to make the card Soundblaster compatible.
Even after Covox was gone, the Sound Master II wasn’t done. Media Vision released a sound card dubbed “Pro Zonic” that rolled all the major sound card standards into one, including all the features of the Sound Master II. The Pro Zonic was the successor to the Pro Sonic. I think the Pro Sonic had Adlib, Soundblaster Pro, Soundblaster 16, and Pro Audio Spectrum support. Don’t recall what else the Pro Zonic added other than Sound Master II. Most likely had wavetable MIDI too, which I’m pretty sure the Pro Sonic did not.
The card was very short lived, soon after that, Media Vision was done, bankrupt and bought by another company that denied the “Pro Zonic” (and some other MV products) had ever existed. Yes, a company rep told me over the phone there had never ever been such a product, nor did the Jazz 16 exist, despite me having one in hand while talking to him. (Nevermind all the games with Jazz 16 in their configuration options.)
There was even a windows (3.0) driver for this thing. Watching videos was somewhat odd, though, because the sound output needed realtime access to the parallel port, and the computers at this time couldn’t do both at the same time, output sound and decode and display video. So you saw about a second of the video, then it stopped and you heard the corresponding sound for a second, then the sound stopped and the video started again.
Funny things we wasted our time with, back in these days.
“The results sounds fantastic” – Yea right. If you think that 7 bit (you won’t get more without carefully selected 1% resistors) lofi sounds good then I suppose so, but personally I prefer a few bit more resolution to get rid of the horrible quantisation noise and other artifacts.
Well, samples sounded awful, but FM synthesized music (tracker) was much better than you would have expected. Maybe, because the music from home computers (C64) always had a “rough” touch, and the composers back then were clever enough to use this characteristic to their advantage, and created a whole new musical style, that is still known as “8-Bit”.
When you went from the PC speaker to this, yes the sound was fantastic, the difference is huge. Boy I’m old.
you just need to get some crappier speakers that don’t reproduce the artifacts
there is a very good reason why those original “multimedia” speakers were so awful.
It’s allright [F], we all have been once young, some of us still are:)
Thing is, by “PC speaker” [semicolo] most likely meant internal tiny (piezo?) buzzer, which produced maybe 5 distinguishable beeps. At least so it was on the first computer I saw insides of. Covox was not only wonderful, it was mindblowing, compared to this. Wolfenstein 3D was suddenly immersive and fun (neighbors must have died of heart attack when we connected Covox to a large amplifier and started rippin’). Covox was pure magic in a tiny package.
It was years before we got to experience 16bit clone of Sound Blaster, and stereo, through unbelievably crappy “multimedia” speakers…
maybe this should have been filed under Retrotacular?
Still, it’s about 30 years old, and while matseng may be correct that it suffered from the limitations of audio DAC in that form factor, it also shows how innovative the hackers of the time were when they did this.
I had all but forgotten about the technique.
I remember that some guys used two parallel ports with resistor ladders to drive 2 coils connected to mirrors, as a poor man’s laser light show.
I haven’t heard the phrase “CD quality” for about 30 years…
Instead of this elaborate ladder one can just use 8 Resistor, each with twice the resistance as the one before. Use 1% or better 0,5% resistors, and add a simple filter, the result will actually sound surprisingly well. but the precises resistors are expensive, one might end up paying a tad more then one euro for a set ;)
If you’re willing to overspend then you’ll get even better results by carefully testing and picking resistors to match them as closely as possible.
if you are actually doing work to get better sound then why not just use a real sound card and be done with it?
“my poorly designed hack is better than your poorly designed hack”
Because a resistor ladder DAC isn’t restricted to audio only? You may need to add a low cost or simple DAC to a uC and don’t want or need a full DAC chip. Carefully selecting the resistors in your VGA DAC will give better results but you’ll say you should integrate a full graphics chipset into your uC presumably.
Yikes! I don’t think I saw a CRT with a radiation guard in at least 10 years.
Here is better 16bit/stereo DAC with PIC and DAC chip… http://dzi.n.cz/8bit/Stereo54/
This was also supported by a lot of the DOS mod trackers back in the day.
God yes. I built one of those from the instructions that came with Modplay for my electronics merit badge in Boy Scouts.
OMFG. I did the same. I was 12 yo and didn’t know a damn sh*t about electronics (or soldering), but I built my DAC and I’m still proud of it.
Parallel port? Haven’t seen one of those in years.
Have you looked? My current system, while not the absolute latest and greatest, is still fairly new (I just finished building it a couple of weeks ago – but I didn’t use the most up-to-date parts, but rather what I could afford – which is still a sight better than my old machine) – and while it doesn’t have a parallel port on the back panel, there is a connector for the port on the motherboard. Maybe you have one and don’t know it? I know I was surprised when I saw it (that, as well as a 9-pin serial port, too!)…
lots of buisness grade boards have those, because a lot of office people dont want to give up their still functional 30 year old dot matrix printers.
We just purchased 8 new Lenovo workstations. They came with serial and parallel ports.
Even if it’s not on the backplane, check the motherboard headers. I’d be very surprised if your motherboard doesn’t have the ability to add a parallel port.
Here you go, a second version of the video.
https://www.youtube.com/watch?v=n8DPvYDFYCU
When I was 12, 30 years ago, learning electronics with my father, I used to package R2R ladders directly soldered into DB25 plug pins, no PCB, ending into a female cinch exiting the connector plastic cover via the cable hole. I made the whole thing less fragile by filling the cover with silicon. I would sell them for 100 Belgian francs :) I recall I had de-asm’ed a SoundBlaster driver called something like ctdrv.SYS, and created one with same API targeting that LPT-R2R driven by the clock interupt… Good old 8088 DOS days :)
I never realized there was a sound device could be as simple as that. Learn something new…
A few links to put the sound card development and audio quality in perspective.
PC audio development as seen thru Monkey Island theme: https://www.youtube.com/watch?v=a324ykKV-7Y
A sound card history http://www.crossfire-designs.de/?lang=en&what=articles&name=showarticle.htm&article=soundcards
Another with audio samples http://macgateway.com/featured-articles/sound-card-history/
I ran across a better list a few months back but can’t find it now.
I remember trying to get something like this up and running in college as part of my labwork (extra credit, off the clock). Unfortunately, my college wasn’t set up with the latest OSs and systems, so it was really hard to get any drivers. We ended up using 2 LPT ports and a serial port to make a rudimentary 16-bit stereo card. One port controlled the first 8 bits. The other port controlled the second 8 bits. The serial port controlled the switching between stereo channels and voltage levels of the op-amps at the outputs. It took way too much time and energy. But, the $10 in parts and the learning experience was WAY better than spending the $300+ that sound cards cost at the time.
Those last-generation parallel ports can get up to about 2.5MHz. Plenty enough to do a *very* high quality stereo output.
You can trade excess sample rate for more bit depth, a sort of partial-PWM approach. (look at it this way, PWM DAC and “Class-D” audio amps are really just doing exactly as above, but with a “1 bit” DAC. ).
You just need to digitally resample up to the higher rate, add a little high frequency jitter, digitally filter (a few daisy-chained moving average filters will do it) and truncate to 4 bits (so you can have stereo), then for the parallel port circuit have two four bit resistor DAC’s feeding a couple of low pass filters, say bessel aligned passive inductor/cap setups (will need to adjust values depending on what the input impedance of your load looks like, but that can be done. ) Just make sure the cut off frequency is not too high (I prefer around 8 kHz, or so).
For bonus marks, measure the resultant channel impulse response with a real ADC setup, then add another stage to the digital filtering you’re already doing to correct for the inaccuracies on your passive filters. Oh, you might be able to improve the 4-bit output further by using a logarithmic scaling (changing the resistor values and digital truncator appropriately), and using some digital negative feedback to reduce the error between the log-scaled-truncated stream and the desired high-precision output.
I wonder if I’ll ever get around to doing this little thing :)
The big hairy hard part is that you’ll probably need to be running a dedicated hard real-time stripped down OS to actually play back audio without glitches, and it’s going to somewhat of a pain to do much more than just play back .wav’s.
PC’s are just really lousy at doing something reliably at the sub-micro-second time scale.
Maybe you can get DMA working to help that though – but you’re still going to have to be never late about preparing the buffers.
Probably easier to just use a microcontroller, DSP or fpga hanging off some USB-audio chip’s I2S stream, that way once you make the damn thing work, you won’t have to dedicate a whole PC to it.
But then, there are a lot of old, otherwise useless PC’s… hmm… All you really need to make it useable as a “sound device” is some way to connect it to your actual PC…
Have fun!
I forgot to mention that this was ~20 years ago. And, we were using 386SX-20 computers running Win3.0 which we later upgraded to 386DX-40 running Win3.1. All of our drivers were run through DOS6.2.
Its a great innovation!! DAC and ADC are all the way the useful findings that helped to enhance the technology to a greater extent. Great chips!!
Hell i build one Months ago with a DAC 0808 :)
8Bit 66Khz with Glx Player, Sounds Great.
Btw.
This Stuff is supported by Temu and Virtual Soundblaster
Virtual Soundblaster gives you Digitalsound in some Games..
(Soundblaster Emulator)
And Temu = Tandy Emulator (Works with Civilisation and Eye of Beholder and much more)
[Eye of Beholder]
Great, now I know what I’m doing tonight!
I built one of these in the early nineties along with a simple LM386 amp, and put it all in a blue Radio Shack project box. I still have it.
The 8bit Guy did a nice video on these.
https://youtu.be/Wt4VcLF8Wug
“[FK] has a demo of this LPT DAC available here, but we’re not thinking that link will last long.”
I have been send from the future to tell you that that link will still be working in 2019.
2023, link is still working.
July 2024; link to video still working.
…trying to write a player in Z80 asm to spit out bytes fast enough to the same 18 resistor setup on a 3 mhz computer.