Guitar preamp for use with Arduino- 0 to 5V output

I finally figured out how to input a guitar signal that the Arduino analog input can read between 0 and 5V using simple, readily available hardware

Basically it is a standard JFET-based preamp that outputs to an IR Photoemitter. This circuit is run off of a 9V battery.

On the Arduino end, a phototransistor (receiver) is run at 5V.
The emitter/transistor pair is available at R S.
Let me know what you think!

Here is the schematic and description

Seems to be a lot of trouble for this sort of thing, what's wrong with this approach:-

reading his blog he states:

So far, I have used this circuit to experiment with the Arduino Realtime Audio Processing writeup that can be found here:

And it sounds MUCH BETTER with this preamp than with the setup that is described on their website.

And it sounds MUCH BETTER with this preamp than with the setup that is described on their website.

Yes you might believe it but I don't. A guitarist idea of much better is a sound with lots of distortion which is what he is getting with the crude implementation of an opto isolator.

Hi- I appreciate the feedback and I understand the concerns.
I know that most guitarist would consider better to be distorted/fedback.
To me, I was looking to get as clean a signal as possible, and this worked very well.
As I mentioned in my blog, it also worked very well without the Arduino, directly into the amp.
The advantage (I think) to this preamp for the Realtime Audio setup is that there is much less noise, probably because the bulk of the circuit is physically isolated from the digital part.

I know the Arduino is limited as far as its capability for realtime audio, and I REALLY thought this circuit would be big fail.
I posted it because it defied the odds and turned out really well.

Thanks for your comments!

I was looking to get as clean a signal as possible, and this worked very well.

Have you got any measurements to back this up? An oscilloscope trace perhaps or a plotted transfer function. When some one makes a counter intuitive claim like this it is important that it is backed up by actual measurements or else we are in the, gold plated mains connector, hi-fi voodoo rubbish territory.

Understood. No, I do not have access to anything that would give you scientific proof of concept.
From what you are saying, it seems like posting on this forum was an error and I apologize.
I was thinking only of the usefulness of this circuit to me and possibly to other and not considering the formal nature of this message board.
In the future, I will refrain from contributing unverifiable backyard designs.
Thanks for your criticism.


Perhaps a vocabulary lesson is more useful than quitting the forum.
I plugged the guitar into this preamp, then into my amplifier.
The sound was just as clean as without the preamp, but boosted.
Another way to say this is that there was very little crunch or fuzz contributed by the preamp to the guitar signal.
So when I say clean, I guess I mean that there was very minimal influence on the guitar sound from the preamp, aside from boosting the signal (which is to say the amp had much more headroom with this preamp).
Again, the only Arduino experiment that I had time for was with the Realtime Audio page. I have built their circuit and had many different types of weird background noise. With this circuit, although there was still noise, it was greatly reduced. So, when I say clean, I mean that I personally got closer yesterday to Arduino guitar output that was useable for something other than 'just being able to say i did it'. I say closer because, of course, it is not perfect.
This is all inspired by the Adafruit Wave Shield and the WaveRP library.
The author of that library states that a preamp is required to place the signal between 0-5V. So, this is a rusty and low quality (I guess) way to do that.
I am only a few months in to Arduino and I have used other peoples' code and schematics so much, I was just hoping to contribute something.
Obviously and admittedly my understanding of the engineering involved is very limited.
I appreciate the feedback as I continue to learn.
I think people like you guys really enrich this hobby, and I am grateful.

Yes - I didn't mean you to stop contributing or to go away, I just can't see how putting one great big none linearity into your transfer function could make it better that a direct connection. It sounds like you are having earth loop problems with the direct input rather than anything wrong with the actual circuit.
So please stick around, your input is useful and I am sure that you will go on to enjoy the experience and be able to come up with some amazing stuff. You've amassed me already. :wink:

I am having NO LUCK figuring out what you mean by linearity.
I hear you saying that without a direct link to the Arduino input, something is being lost.
The question is, what?

I appreciate your help.

I see, and thanks for the link.
I attempted about 15 different designs of RC circuits, none of which sounded very good and some of which fried my Duinos'.
I understand I am experiencing the limitations of my knowledge.
Thanks for your help today!

Well normally Wikipedia is useful in situations like this but this is what it came up with:-

Linear simply means in a straight line. If you have a graph of output voltage from your amplifier to input voltage to the arduino then it should be a straight line, that would be a linear transfer function. In practice any deviation from a straight line introduces distortion. In fact I once made a guitar effects peddle that allowed you to make any transfer function you wanted and to morph between two shapes using a foot controller. By picking the correct transfer function you can introduce harmonics into the signal in a very controlled way. This is basically what the famous "audio exciter" did.
So by putting a non liner element in the audio path you have made the transfer function very non linear.
What is being "lost" is the fidelity of the input signal, that is the shape of the waveform going in is not the shape of the waveform going out.