Saturday, July 2, 2022


My old buddy Matt Wright contacted me recently and asked if he could buy my FUNKY GLITCH BUDDY. I don't know why, but it is hard for me to sell things to good friends... Do you give them a discount?.. Or just give it away?.. Either way, I didn't want to give up my funky buddy just yet, so instead, I would build him something unique as a friendly gift. Matt is a master guitar tech/luthier, so I wanted to make him something guitar shaped that he could hang in his shop and maybe be a conversation piece. 

I have been holding on to this "Music Maker" guitar for years, and I was actually about to get rid of it. I grabbed it from the pile and devised a plan for the circuit and hardware arrangement. The original circuitry in the guitar probably could have worked, but it was a little slow to respond to key-presses, so I decided to go with another toy organ COB circuit from an old Hal Leonard Piano Fun keyboard. A lot of early 90's toy keyboards can actually be pretty useful as the base for a synthesizer. They usually have gate outputs that trigger volume envelopes on key-presses. A little reverse engineering, and you have a square wave VCO with a keyboard input and a gate out. 

I thought it would be cool to use the square wave VCO to clock an LFSR noise generator circuit. I have been experimenting with LFSR's a lot lately... The only problem with this idea, is that the LFSR patterns are so long, the pitches of the VCO end up being too low for my liking, so I fed the square wave VCO to CD4046 frequency multiplier. I found that the CD4046 can cover almost 7 octaves, and since I didn't want to be stuck with just one, I added a CD4512 data selector chip to set the one of seven octaves. I also wasn't content with just one LFSR pattern length, so I selected my favorite 8 of a certain combination of taps, and fed them to another CD4512. I wanted to be able to shift through the pattern lengths and octaves smoothly, so I programmed a micro-controller to be a dual 3-bit flash ADC with code from robstave/ArdinoComponentSketches. The octave and LFSR shifting are the heart of this design, and they sounded really crazy and fun on their own, but I wanted a little more control, so I threw in a diode based Lunetta style VCA, as well as a PWM filter for the main voice. For modulation, I put in two looping AR generators; one for the VCA and one for modulating the PWM or the pitch of the keyboard. I modified the VCA envelope generator so that it could be switched from Attack/Decay, to Attack/Release in "SUST" mode(see faceplate).

Once everything was bread-boarded, working, and documented, I thought it might be nice to use the design in other builds. I was also thinking it would be a lot easier to have some nice new PCB's made instead of the painstaking task of engraving a PCB on my CNC, so I opened up KiCad and did it the easy way. I think I was overcharged, but you won't hear me complaining because I only spent about $20, and 10 perfect circuit boards were on my doorstep in just one week! I really don't think anything can bring me more joy than circuit boards in the mail.

Anyway, while I was waiting for the PCB's to arrive, I prepped the body of the guitar. I made all of my hardware selections and designed a faceplate. Without an accurate method for measuring the dimensions of the guitar toy, it was difficult to determine a good perimeter for the faceplate. In the end, I ended up just taking a picture of the guitar and tracing it. I cut the shape out of paper on my laser cutter and adjusted the drawing as needed. Surprisingly, I got a pretty good shape on the third try. I cut out the faceplate and painted it blue. I use acrylic airbrush paint because it doesn't react with the plastic, but it can scratch easily, so I usually always cut out a piece of dust cloth to match the shape of the faceplate and protect the paint from the hardware that is mounted to the underside.

Well, I'm sure I haven't covered everything, but this one is pretty straight forward. Hopefully my future self will be able decipher the details in ten years time ;)


1 comment: