Here are any of my hardware projects that I think are interesting.
Digitizing the Weeping Demon Wah Pedal
Official Weeping Demon Digitization Homepage
The Weeping Demon is one of the sickest wah pedals around. This is a digital model of that pedal. The details are discussed in the presentation PDF below. It's a really cool circuit. Rather than using a potentiometer to control the pedal angle, there is a clever optical sensor that won't get dirty and noisy over time. In the digitization, the filter stage, which consists of several op-amps in feedback with each other (state variable filter) is reduced to a block of multiply/add blocks and a state dependent transfer function is obtained via Mason's gain law. A frequency warped bilinear transform is used to digitize the model. Click the link below for schematics and stuff.
This is an analog tremolo unit that I designed. The input signal is modulated with a triangle wave that can be continuously deformed into a rounded square wave. An operational transconductance amplifier is used for the voltage controlled gain stage. I decided to put it inside of a rubber duck, which is way funnier than a little metal box.
Commodore 64 Synthesizer
The Commodore 64's sound chip, the SID 6581, is prized for it's classic 8-bit sound. I am working with Anders Øland to build a synthesizer using this chip. Unlike Anders, I'm not an expert yet on writing music with it, but I've got the chip all set up and ready to go. I have interfaced it with a Raspberry Pi using 74LS245 logic level shifters. The code has a bunch of functions built in for note bending, vibrato, chord cycling, and there is a basic timing library included, too. It's a work in progress. Before trying to tackle the task of writing music my own music with the chip, I wanted to try something a bit more familiar. I have the first few bars to Passion Pit's Little Secrets attached. You can download the code below. It's not thoroughly tested, but it works. Please report any mistakes to me. I am not responsible for anything that may go wrong when using the code. However, assuming your hardware is hooked up right, the code won't destroy your chip (it only controls logic signals). See the datasheet and the install notes. See the datasheet below for a working schematic.
You must install the wiringPi library on your RPi in order for this to work.
The current version is set up to compile outside of an RPi. In order to make this work on your RPi, replace the contents of wiringRPi.h with this statement: #include < wiringPi.h >
You can set the pins used in the file raspberryPi.h
You should use a level shifter to interface the chip with the RPi. Note that 5V logic could destroy your RPi's GPIO pins and 3.3V logic may not exceed the high threshold on the SID chip.
The SID's read capability is not used in my code, because there isn't much that the SID's read functions do that I can't do in the software. For that reason, I left the POTX and POTY pins unconnected.
Seven jack-o-lanterns are equipped with infrared proximity sensors and synchronized flameless candles. In response to a human player moving their hands in an almost percussive manner, the jack-o-lanterns light up and produce tones. The system uses 555 timers as tone generators that are then processed and filtered using analog circuitry. An Arduino microprocessor is used to control lighting and volume envelopes and to receive the signals from the IR sensors. Thanks to Jordan for helping me name this ridiculous thing.
Low Noise Load-Bearing Recording Interface
I have a 100W Mesa Boogie Dual Rectifier amp that sounds absolutely great--at high volumes. The problem is that I live in the city in a house with other people and I like to record at night. Additionally, I am too cheap to buy a microphone. I figured, why not kill two birds with one stone? I can't record straight into my computer from a 100W output without destroying my computer and the amp, so I am designing a circuit to step my high power signal down to line level. I bought a really cool resistor from China to take the load off of the speaker (16 Ohm, 100W) and I put that in parallel with the rest of my circuitry. I used an audio isolation transformer to ensure that there are no ground loops and a voltage follower amplifier to make sure that there are no impedance issues. I have an LM339 IC chip and some FETs set up to drive a peak detecting LED display. The circuit works and is majorly done. You can listen to my keyboard through the amp here and see the schematic here. The schematic is incomplete, I left out the peak detection and LM339 comparators mostly because they are pretty straight forward and to include all of that would be really redundant. I finally finished the box for this thing (thanks to Mike's uncle and Danny in the woodshop). I learned a bit about staining and sealing wood as well.