First off, I'm a programmer and I have only a little experience with electronics and I'm aware that what I'm after may seem a little ludicrous.

My goal is to process the audio of an electric guitar with an MCU (most likely an Arduino for prototyping). Most specifically I want to process each individual strings by using piezo elements under each string. My ultimate goal is to convert this data to MIDI but in the short term I mostly want to experiment (e.g. building an on-board tuner etc.)

While I have a general idea on how to proceed to process the signals with an MCU, what leaves me pondering is that I also want to mix the piezo signals with the magnetic pickups of the guitar.

I cannot wrap my head around how to sum the piezo signals and mix them with the magnetic pickups while keeping the signals separated for the MCU to process. My basic knowledge of electronics tells me that I cannot simply have two leads from each piezo, one wired to the multiplexer and the other to the blend potentiometer, as this will connect all the signals together by the blend pot and thus all signals will be merged before reaching the multiplexer.

Here is a revised schematic of what I understand: simplified circuit

TL;DR To recap what I'm asking, I would like to know how you can mix (sum) a defined number of audio signals while keeping a "copy" of the originals in a way that further processing of the mixed signal won't affect the separated signals and vice-versa.

Additional info I forgot to say that the ADC requires a DC signal (if I understand correctly) so at some point the piezo signal must be offset by a reference voltage (e.g. 2.5V). I also assume that the splitted signal that blends with the magnetic pickups must remain AC. I'm a little confused on how to achieve that.

  • \$\begingroup\$ Your ADC doesn't require a DC signal, it requires a non-negative signal. \$\endgroup\$ – Hearth Jan 30 at 2:04
  • \$\begingroup\$ In response to your updated schematic, you'll likely want DC blocking capacitors where you have indicated "isolation required?", otherwise the inputs to your opamp summer will have a DC bias. \$\endgroup\$ – esilk Jan 30 at 16:17

Six piezo inputs drive six opamps (1 each). The opamps can be simple unity-gain buffers, have some gain to equalize signal levels, have some filtering action, etc. The outputs of the six opamps have a very low output impedance, so they can drive multiple things downstream without introducing crosstalk.

For example, each opamp output can drive one channel of the mux and also drive one channel of a six-input summer (see esilk post). The summer circuit will blend the six signals without affecting the isolation among signals at the mux inputs.

  • \$\begingroup\$ This is exactly what I wanted to confirm. Now I just need a little clarification/explanation on how to wire the output of the opamp. Is it because there is a resistor on each channel before they merge in front of the summing opamp that there is no crosstalk? I have the idea that this question shows how little knowledge I have of basic electronic physics. \$\endgroup\$ – Polymaker Jan 29 at 21:46
  • 1
    \$\begingroup\$ Yes. In a summing circuit, the inverting input pin is a "virtual ground". That is, the voltage there doesn't change no matter what the input signal voltages are (within reason) because negative feedback from the output cancels out the algebraic sum of the input voltages. The ratios of the input resistor values to the feedback resistor value set the (inverting) gains for each input signal. They do not have to be equal. Besides setting the gains, the input resistors prevent the signal sources (outputs of six opamps) from fighting each other when one is up and another is down. \$\endgroup\$ – AnalogKid Jan 29 at 22:49
  • \$\begingroup\$ Thanks again. The only thing that remain is how do I implement the DC offset for the ADC. I've remade the schematic in my post following what I now understand. Could you check if I got it right? Thanks. \$\endgroup\$ – Polymaker Jan 29 at 23:53

The summation should be easy enough, just use an Opamp Summer (no, not the season!). You'll just need to extend the design to 6 inputs, rather than the 3 in the example.


simulate this circuit – Schematic created using CircuitLab

And the output is described by: $$V_{Out} = V_1(\frac{-R_F}{R_1})+V_2(\frac{-R_F}{R_2})+...+V_6(\frac{-R_F}{R_6})$$

The only major limitation here is the output will be inverted -- you can fix this by putting another inverting op-amp stage after this.

As for the DC Bias required by the ADC, you can do this with a buffer stage as well:


simulate this circuit

Typically, R1=R2 so your DC bias will be half of V1, and C1 is calculated to be large enough for your lowest frequency of interest: $$f_c=\frac{1}{2\pi R_1||R_2 C_1}$$This implementation also has the advantage of allowing you to run it from a single voltage source, rather than a split supply.

  • \$\begingroup\$ I'm pretty sure I saw some circuits placing the DC offset after the opamp. What are the differences of placing the offset before or after the opamp? (if possible at all) \$\endgroup\$ – Polymaker Jan 29 at 21:59
  • \$\begingroup\$ Probably not much, although I encourage you to try things out in a circuit simulator and then on a breadboard to see for yourself :) \$\endgroup\$ – esilk Jan 30 at 16:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.