Digital circuit for adding multiple frequencies
When I was a teenager in the 1980's, I had an Apple II+ computer, which had a speaker output similar to the IBM PC speaker. Accessing a memory-mapped I/O port location had the effect of toggling an output connected to the speaker.

I wrote a machine-language program which played triads: three simultaneous notes. A look-up table converted note values (indexed by semitone) into counter values.  The approach was simple: initialize three counters and cycle them independently in a big loop. On any iteration when at least one of the counters has rolled around, toggle the speaker.

This routine, coupled with a BASIC program to drive it with data, played a very good sounding rendition of the synthesizer chord progression from Van Halen's Jump. 

It's a unique sound. There is distortion, but the note separation is quite clear.

Variations in timbre can be produced, by the way, with duty cycle variation. I seem to recall that this translates to perceived volume.