Electronic – How to mix two audio tones from two 555s to make a polyphonic chord


I have set up two 555 chips in astable mode to produce a tone each through a speaker.

However, I am not sure how to mix them together to produce a musical chord.

If I directly combine the two outputs from the 555s into a single output, it creates a third tone, but it is just a single tone being some combination of the two frequencies.

Instead I would like to hear each one independently, but on top of each other, just like a keyboard (or a hammond organ if you prefer).

I have tried using an op-amp but with the same result.

Is an op-amp the solution here? Or is there some better strategy?

I just need a push in the general direction.


Both methods below seem to work, but it turns out the main problem was that the two 555s need to be "decoupled" by putting capacitors across pins 1 and 8. That is, when one 555 was sucking power from the battery, it was affecting the frequency of the other one. This (along with the large resistors from the 555s to the opamp) has more or less solved the problem, although the sound quality is not that responsive or stable. Thanks for the help!

Best Answer

The reason you are getting something other than the sum of the two independent signals is because the two circuits are interfering with each other when you connect their outputs.

One solution is to put enough resistance in series with each output so that the signal generators can't interfere with each others' operation. 100 kΩ resistors in series with each signal generator output should be high enough that it doesn't matter what is going on at the other ends of the resistors.

The problem now is that the combined signal is high impedance due to all those series resistors. The solution is a unity-gain buffer. Any rail to rail opamp that is unity-gain stable can take the high impedance signal from where all the resistors are connected and make a low impedance signal that can drive a power amp or some other audio equipment.

Here is what I described above:

The resistors are large enough so that the circuits on their left ends are not effected by whatever is happening at their right ends. Together, these resistors create the average of all the input signals. If any of the inputs are unused, leave them floating and they won't be included in the average.

The standard knee-jerk answer for something like this is a inverting summing amplifier. I figured sooner or later someone would post that. I'm actually surprised it took as long as it did.

The reason I didn't go that route was for simplicity, especially in handling the DC levels.

Just connecting each signal generator to the inverting input via its own resistor does NOT get you what you want unless you are prepared to deal with the resulting negative voltage, and have a negative supply handy to provide to the opamp. The inverting summing circuit can be modified to not require negative power voltage and to create a 0-5 V output, but that adds a little complexity.

Another minor issue is that you really want the average, not a sum. The difference is only one of scale factor, so can be dealt with. The circuit above inherently averages. Any input left floating isn't included in the average. The inverting summing amp has a fixed gain from each input to the output. If the number of active inputs change, the overall gain needs to be manually adjusted so that the result is the average of the inputs.