The circuit can also be used to drive other voltage controlled modules that are used in analog music synthesis. The output of the waveform generator is a 0-10V DC control voltage.
One of eight waveforms can be selected using an 8 position BCD switch. Waves include: ramp, triangle, sine, cos(x)*sin(5x), damped 4 cycle sine wave, and pseudo random. Other waveforms may be substituted by changing the assembly language waveform tables.
The waveform generator runs in an asyncronous manner, int can be syncronized with other devices by use of an external (5V logic) sync signal or a manual sync trigger button. The waveform is generator is clocked by an oscillator circuit, the oscillator has three range selections, and an LFO rate control for fine speed adjustments.
The output waveform can be smoothed with an adjustable low pass filter. This can be used to remove the stair steps in the output waveform for a more rounded waveform.
An array of 8 LEDs is included for displaying where the current panning position is located, these are spread evenly across the device front panel for an interesting visual effect.
Power Requirements: +5V DC @ approximately 200mA +12V DC @ approximately 25mA -12V DC @ approximately 25mA Output Levels: 0-10V DC External Sync Input: TTL level (0-5V) DC, triggers on rising edge
The LFO clock signal is fed into the microprocessor's interrupt pin. Each pulse causes the software to advance to the next waveform value in a stored table and send the value to the input side of the DAC, resulting in a new analog value on the output of the DAC. When the end of the table is reached, the software loops back to the beginning of the table. The sync input goes to pin PC3. This signal is either manually generated with a pushbutton, or externally generated with a TTL level signal. When the sync input goes high, the microprocessor resets the to the beginning of the selected waveform table.
One of eight waveforms is selected from eight tables using the 3 bit BCD select switch that is wired to PC0, PC1 and PC2. If a suitable BCD switch cannot be found, three SPDT toggle switches can be substituted.
The microprocessor is set to use its internal clock, the 15K resistor on the Xtal pin is part of the oscillator circuit. The internal oscillator only provides low clock accuracy, this is fine since the timing is gated by the LFO clock. For stable LFO operation, good quality capacitors should be used for the three LFO range parts.
The microprocessor reset circuit involves a resistor, diode, and capacitor. This produces a slowly rising reset signal at power-up, and a quickly falling signal in the event of a brief power outage.
The eight waveform display LEDs are connected to the microprocessor's PB0 through PB7 outputs via some 330 ohm current limiting resistors.
The MC1408P8 DAC receives the waveform level values from the microprocessor's PA0 through PA7 outputs. The DAC converts the digital values into one of 256 analog levels. The output of the DAC is fed through the LM741 low pass filter stage for waveform smoothing. The LPF value is selected by changing the value of the capacitor across the feedback path.
Power is supplied to the circuit from a triple voltage "wall wart" or another source of regulated +5, +12, and -12V DC power. Standard bypass capacitors are connected across the three power supply lines.
It is advisable to observe the control voltage output on an oscilloscope in order to become familiar with the effect of the various controls on the output signal.
This effect is featured on my Soundtrack for a Low-Budget Sci-Fi Movie audio CD.