|Start Date: 09/01/2015|
|End Date: ?|
It's a gh-gh-gh-ghooOOOOOOoooost! This project is a head-first dive into audio electronics with the end goal of making a sooper spoopy reverse-echo ghost voice! While most of the progress noted on this page is about the analog prototype, part way through the creation of that I finally knew enough to determine whether I could use external RAM with an Arduino. (The answer is Yes...) That discovery obviates this design pretty badly, assuming that it actually operates fast enough to use for audio.
The first design makes use of 3x PT2399 guitar delay chips chained back to back due to their short maximum delay time of about 250 ms.
Progress, in most-recent-first order.
Completed the third delay! I tested quickly for shorts, and no pins are unexpectedly shorted to power or anything, so I installed the chips. I wired the powers and grounds to each other using hookup wire. Everything else will be hooked up with test leads for the initial pass, though.
Mixer with Buffered Output and Pots
- Going to redo this a bit to give all the inputs 100k trim pots. This will let me nail down a good resistance value for each stage. The output buffer is still the same, really, just now more pots.
- Added a cap on the first input juuuuust in case. The rest are delays and I definitely decoupled the delays.
Installed the chips in the second delay, soldered about 2/3s of the parts of the 3rd. Tomorrow I should be able to finish it, install chips, wire things up, and give it a go. I'll need to breadboard the mixer, but otherwise that's it.
I have enough 100kΩ pots that I might just set the mix values using those. This would allow me to more easily adjust the relative delay volumes, although the 3rd delay will probably always be at 10kΩ.
Delay Unit (Unbuffered, Capped) r3
- I moved the VREF cap down a bit to squeeze things tighter horizontally by another pin width.
Finished a delay unit. Success! It delays my voice about a 1/4s, which is the intended amount. Amp use for the power regulator, mic, mic amp, and 1 delay unit is 40 mA total, about 20 mA without the delay. Total use is then estimated to be about 90~100 mA all together.
I was only able to get up to about 18 kΩ, so I may want to use a 20 kΩ pot instead of just a 10kΩ there. Either that or start with a higher base resistor. 18 kΩ seems to yield a decent enough delay time, though.
Where to go from here? I want to make another order, for a couple RAM chips (I already have an Arduino) but I think I'll go for the DIPs first, because I don't want to bother fiddling with SMD stuff until I actually know I can do this. But since I'd only be ordering a few RAM chips (3 or so tops) it's not really worth it trying to make another lone order. Hm.
In the mean time, each Delay unit takes about 5 hours to solder together. Wouldn't take nearly as long with a PCB :U Most of the time is taken up by mooshing the leads about to make the traces.
Mic Amp r2
- Tested the mic amp. It works! However, the output is a bit low compared to line-out from a phone or computer headphone output.
- Modified design to increase the the boost: RBIn increased to 22kΩ, RBf increased to 100kΩ.
- This allows a gain of approx 0x to 4x. 0% is 0x, 50% is 2x, 100% is 4x.
- Also, flipped the two input pins of the pot so that the turning it anticlockwise turns down volume, r1 was the other way around.
- On the minus side, this is a bunch of extra R right at the mic stage. Not too much of a concern in this lo-fi set up, though.
- I forgot to decouple the output in r1. The output is buffered, so a cap shouldn't be a problem, so I've put a 1µF cap on the output. Too bad I already soldered this together.
Delay Unit (Unbuffered, Capped) r1
- In light of the current mic amp I've already made, I added a cap on the input. 1µF BP, though. We'll try this, see if that's high enough. I should have enough 1µF BPs, but... yeah. Looks like it's up to 2x 1µF BPs per delay unit.
- On the original circuit, the filter output has 1 µF with the + towards the filter, then the feedback/output volume pots, then the two returns (one to mix with the input and one to mix with the output) each with a 1µF cap with the + towards the PT2399.
- I noticed that Rin1 and Cin were in the wrong place from the original diagram, Cin before Rin1, which is not how an LPF works. Fixed!
Delay Unit (Unbuffered, Capped) r2
- Rearranged board to be more vertical so I can stack it on to one big board since I've got a couple of those. This design is 35.7mm wide, or about 1.5".
- Changed the output to 10 µF BP.
- Also, squished things together a bit. Basically 36x74mm, or 1.5x3". That's actually pretty tiny, but not costume tiny. An Arduino Mini + some sort of SMD RAM chip will drastically improve things.
- Also also, double checked the Typical Operating Circuit from Maxim, and the pin use seems correct. This matches the pin names on Circuit Salad's diagram, though the pin numbers are all off on theirs for some reason.
I didn't keep a design log book, so all I can really say is that since I couldn't yet evaluate the feasibility of using external RAM with an ATMega328, and actual information seemed to be sparse I had to approach this with what I currently knew, which was actually not a whole lot about electronics in general.
Much of this time was spent learning about one thing that seemed to be used quite a lot in audio circuits, the humble op amp. I went through the op amp pages on Electronics-Tutorials.ws, actually taking notes so that I could understand enough to recognize what's occurring in other circuits. The inverting op amp, used as a summing node, seems particularly prevalent in audio circuits, likely due to the simplicity of adding the half-voltage reference through the non-inverting input. I also found the text Op Amps for Everyone a useful reference, particularly in how multiple-feedback filters are setup.
The examples and demo math work also helped cement the knowledge, allowing me a basic grasp of circuits, enough at least to kit bash other circuits together.
It took me a little while to settle on a program to draft circuits in, though I eventually found Fritzing to be quite friendly.
The PT2399 circuit I chose to use as a base is a very easy to understand circuit on this Circuit Salad blog. This along with other Circuit Salad articles related to that chip gave me a nice starting point.
Due to other parts of the circuit, I removed the input FET buffer and the delay-input FET switch, as well as the feedback path from the filter. I kept the MAX7401 filter because it's an 8th order filter that's way more compact than anything I could do discretely. This also would turn out to cut down on solder time, so yay. The extras might even be useful elsewhere.