Routing Audio Signal

I want to route the signal which comes from my electric guitar. Simply what I want to do is to take audio signal into Arduino Uno and then send it to different pedal chains via selected pins. Is that possible with an Arduino Uno?

It's not practical to send the signal through the Arduino. The guitar's signal is (obviously) analog. The Arduino is (obviously) digital, and it has an analog-to-digital converter. But, the ADC is only 10-bits, and the Arduino doesn't have a true digital-to-analog converter built-in, and it just doesn't make since to digitize the signal at that point.

What you CAN do, is use the Arduino to switch relays (or you could use solid state analog switches). A relay is simply a switch that's controlled electrically. Look for a relay that has a coil voltage of 5V and a coil current of less than 40mA. (The Arduino powers the coil, which magnetically changes the state of the contacts.). The contact ratings are not critical, since the a guitar signal is low voltage & low current and any relay can handle it.

How many different pedal chains?

I was looking for a bipolar supply MUX chip for my own project, and found this one:
http://www.mouser.com/Search/ProductDetail.aspx?R=DG408DJ-E3virtualkey61360000virtualkey781-DG408DJ-E3

It lists “Audio signal routing” in the applications, so it should be sufficient for this project. Only trick is you need a positive and negative supply.

Relays won’t need a negative supply, but will have significantly more current consumption. In contrast to DVDDoug’s suggestion, I wouldn’t recommend running a relay coil directly off an Arduino pin. An Uno’s absolute maximum rating if 40 mA, and you don’t want to operate near that if you can avoid it. Use a transistor switch if you’re going to use a relay.

Thank you DVDdoug, it was really helpful. Because I need an unnoticeable transition between incoming signals, I can not use solid state switches. Sometimes I use switch without muting the note. And ordinary switches are making a noticeable interruption on unmuted notes . I thought about using relays but I wondered if I can use my Arduino directly because I remember that I saw some guys made guitar pedals using Arduino like distortion, delay...
And thank you Jiggy-Ninja, five or six chains I plan to use but not long chains, even sometimes only two pedals. I am going to research the product you suggested and also similar ones. But I wonder if it allows me do a complicated switch map. For example one switch will be push-n-use but other two switches will be rotative and maybe the other one will open and close another chain separately. I can program Arduino to work this way.
By the way I am new and still learning electronics.

Sometimes I use switch without muting the note. And ordinary switches are making a noticeable interruption on unmuted notes .

If I understand the problem, relays alone are not going to help with that... A relay is just a switch. If you switch from A-to-B, any sustain from A is going to get cut-off as soon as switch.

And, there is a general rule that you shouldn't connect two outputs together, so it's going to be A or B. If you want to mix two signals together, you need a mixer. If you want to make a simple mixer yourself, you can build a mixer with a [u]Summing Amplifier[/u], which is just an op-amp and a few resistors. (Audio mixers are built with a summing amplifier.)

I thought about using relays but I wondered if I can use my Arduino directly because I remember that I saw some guys made guitar pedals using Arduino like distortion, delay...

I know that's been done, but I don't know the details. That's not going to help with routing/switching your existing pedals. I assume these Arduino based effect boxes use an audio shield (an add-on board that has a digital-to-analog converter). You'd need a separate audio shield for each signal path, and just I don't think that takes you where you want to go. And, the regular Arduino isn't quite capable of "CD quality" audio (I think the Arduino Due is powerful enough for good audio). That's probably not an issue with a distortion box. :wink:

But I wonder if it allows me do a complicated switch map. For example one switch will be push-n-use but other two switches will be rotative and maybe the other one will open and close another chain separately. I can program Arduino to work this way.

You can get as complex as you want. The only limitation is the number of inputs/outputs on the Arduino. You can get single-throw relays which are simply on/off, or double-throw relays which are like an A/B switch. Probably the most common type of relay is DPDT (double-pole, double-throw), which is two switch-circuits that work together. These can be used as on/off or A/B, and you can leave the 2nd set of contacts unconnected if you don't need them. To simulate a rotary switch, you can use multiple relays and switch them on in sequence.

In contrast to DVDDoug's suggestion, I wouldn't recommend running a relay coil directly off an Arduino pin. An Uno's absolute maximum rating if 40 mA, and you don't want to operate near that if you can avoid it. Use a transistor switch if you're going to use a relay.

That's a good point. Obviously it makes your circuit simpler if you can directly drive the relays, but there are always engineering trade-offs. There is also a 200mA total current limitation for the Atmel chip and that may limit the number of relays (and LEDs etc.) you can have on at the same time.

And, relays that meet the 5V/40mA spec are not that common. 12V relays are much more common, and with a transistor (or someghing like the [u]ULN2803[/u]) you can use a 12V relay.

P.S.
It's probably a good idea to connect an LED (with the normal current-limiting resistor) to each relay coil so you can see which relays are on.

P.P.S.
A couple of things you may want to try to help in "development" of your project -

  • You can get some regular SPST (or DPDT) switches and connect them in your signal chain where the relays will eventually go. You can then switch them manually to make sure you've got all of the signal paths working & switching.

  • Then, you may want to connect the switches to the relay coils to simulate what the Arduino is going to do, before programming the Arduino.

  • When you are developing your program (sketch) you may find it easier to just connect LEDs instead of relays.