Spectramin
The Spectramin is a just-for-fun project to make a theremin that drives the AY chip in a 128K Spectrum. The interface card is a ZX Breakout board, using an XC95144 CPLD. The interface provides three channels (all of them essentially 12 bit counters, to read the frequency of the theremin oscillators). As such it'll be really a theremin synthesiser, using the AY chip to make sounds other than the sine wave most theremins make. It might offend purists, since it'll have a foot pedal as a 3rd channel (so that volume, effects and pitch can all be controlled simultaneously).
It's planned that it'll be ready for the next VCF-GB which will be held within the Silicon Dreams festival, near Ashby-de-la-Zouch in the summer of 2013.
Browse SVN: Spectramin SVN
General description
The Spectramin consists of two major parts: the theremin part (which is actually two theremins, one for each hand - in a traditional theremin, one controls pitch and the other volume), and the Spectrum interface part. It departs a little from the traditional theremin, in that there are actually three channels.
The two theremins make channel 1 and 2. They'll either both be used for pitch for two simultaneous tones, or one for pitch and the other for effects depth. The third channel is a foot pedal (and yes, I know theremin purists will hate that, but tough, I need three channels and I don't have three hands). The foot pedal will be used for volume. Basically, all three channels are audio frequency oscillators, and the interface to the Spectrum is a frequency counter so that the Spectrum may read a value depending on the frequency. (The high resolution frequency counter is 12 bits). The theremins work in the traditional way, the player's hand forming part of the capacitance of the theremin's frequency generating circuit, and the foot pedal is basically a resistor in a multivibrator circuit, determining its output frequency. Since the Spectrum's power supply circuit is obscenely noisy, the theremin circuits and footpedal circuit operate from an independent power supply (a battery, since that's a very clean and stable power source - however, a regulated linear power supply should also work), and are optoisolated from the Spectrum's noisy digital circuits.
The Spectrum interface is implemented in a Xilinx XC95144XL CPLD. This provides three 12-bit frequency counters (plus an 8 bit low resolution read for the user interface displays), as well as a push button interface so that I can add some foot operated buttons to do things such as change instrument.
The theremin to digital interface
The theremin circuits output an analogue wave form (a pretty good approximation of a sine wave) with an amplitude of about 600mV. The box will have a jack so the analogue output can also be used for more traditional theremin use, but internally this analogue wave will be turned into a rail-to-rail square wave by an op-amp circuit. The output of this gets fed to the optoisolator, and from there goes to the Spectrum.
The foot pedal interface
This uses the remaining two op-amps in the CMOS quad op-amp used by the theremin to digital interface. One op-amp provides a reference voltage halfway between ground and the supply to provide the "ground" for a simple multivibrator circuit (basically this one here, the foot pedal goes between R1 and ground). The output of this is a square wave, and it's fed to the optoisolator.