0% found this document useful (0 votes)
205 views42 pages

Vocoder

This document describes a vocoder and vocal harmonizer circuit designed and built by students. The vocoder allows one sound to be manipulated to sound like another by separating sounds into frequency bands and modulating them. The harmonizer detects the frequency of a vocal input and generates additional waveforms at musically related frequencies to produce a harmonized effect. The circuit uses filters, envelope followers, voltage-controlled amplifiers, and other components to achieve these effects. The document provides detailed diagrams and explanations of the various subcircuits used to implement the vocoder and harmonizer functions.

Uploaded by

Anju Babu
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
205 views42 pages

Vocoder

This document describes a vocoder and vocal harmonizer circuit designed and built by students. The vocoder allows one sound to be manipulated to sound like another by separating sounds into frequency bands and modulating them. The harmonizer detects the frequency of a vocal input and generates additional waveforms at musically related frequencies to produce a harmonized effect. The circuit uses filters, envelope followers, voltage-controlled amplifiers, and other components to achieve these effects. The document provides detailed diagrams and explanations of the various subcircuits used to implement the vocoder and harmonizer functions.

Uploaded by

Anju Babu
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 42

Vocal Harmonizer and Vocoder

Philip Decamp Uriel Klieger Andrew McPherson

December 10, 2003 6.101 Prof. Ron Roscoe

Abstract
We designed and built a vocoder and vocal harmonizer. The vocoder allows one sound to be manipulated to sound like another, such as to make white noise sound like speech. The harmonizer detects the frequency of the operator singing into a microphone and creates a set of output waveforms which form a musically significant chord around that frequency. Used as an input to the vocoder and modulated by the original voice, the sum of these waveforms sounds like a set of separate voices, all in perfect harmony. A comprehensive set of controls allows the operator to choose from a wide selection of available chords.

Table of Contents
1. Project Overview .................................................................................................... 3 1.1 Vocoder [Uriel]................................................................................................... 3 1.2 Harmonizer [Uriel].............................................................................................. 4 2. Circuit Detail............................................................................................................... 5 2.1 Vocoder............................................................................................................... 5 2.1.1 Overview [Philip]........................................................................................ 5 2.1.2 Filter Banks [Philip].................................................................................... 6 2.1.3 Envelope Followers [Uriel]....................................................................... 12 2.1.4 Voltage-Controlled Amplifiers [Uriel] ..................................................... 13 2.2 Harmonizer ....................................................................................................... 15 2.2.1 Overview [Andrew] .................................................................................. 15 2.2.2 Microphone Preamp [Andrew] ................................................................. 17 2.2.3 Filters and Frequency Detector [Andrew] ................................................ 18 2.2.4 Frequency to Voltage Converter [Andrew] .............................................. 20 2.2.5 Harmony Selectors [Andrew] ................................................................... 21 2.2.6 Harmony Keypad Control Logic [Philip] ................................................. 24 2.2.7 Voltage to Frequency Converter [Andrew] .............................................. 26 2.2.8 White Noise Generator [Philip] ................................................................ 27 2.2.9 Mixer [Andrew] ........................................................................................ 28 2.3 Power Supply [Uriel] ........................................................................................ 29 3. Measurements ........................................................................................................... 30 3.1 Filter Bank [Philip] ........................................................................................... 30 3.2 Harmonizer [Andrew]....................................................................................... 30 4. Errors and Corrections .............................................................................................. 35 4.1 Filter Banks [Philip].......................................................................................... 35 4.2 Envelope Follower / VCA [Uriel]..................................................................... 35 4.3 Harmonizer [Andrew]....................................................................................... 35 5. Conclusions [All] ...................................................................................................... 37 6. Acknowledgements................................................................................................... 40 7. References................................................................................................................. 40 8. Appendices................................................................................................................ 41

Catalog of Figures
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Vocoder Block Diagram Harmonizer Block Diagram Single Filter Response Filter Bank Schematic Calculated Total Frequency Response Envelope Follower and VCA Schematic Microphone Preamp Schematic Microphone Filter Schematic Frequency Detector Schematic Frequency to Voltage Converter Schematic Harmony Selector Schematic Keypad Logic Schematic Voltage to Frequency Converter Schematic White Noise Generator Schematic Mixer Schematic Power Supply Schematic Accuracy of F-V and V-F harmony system Pg. 3 4 7 8 12 13 17 18 18 20 22 25 26 27 28 29 34 Uriel Uriel Philip Philip Philip Uriel Uriel Uriel Uriel Uriel Uriel Philip Uriel Philip Uriel Uriel Andrew

1.

Project Overview
This project can be neatly divided into two parts: the vocoder and the

harmonizer. The vocoder is a new implementation of an old idea, while the harmonizer is our own creative addition to the assembly.

1.1

Vocoder [Uriel]
The vocoder was invented in 1939 by Homer W. Dudley, a researcher at Bell

Laboratories. Originally intended as a method of compression for phone signals, the unique sound of the vocoder has since found a very comfortable home in the effects libraries of popular music artists. Our vocoder design actually follows the original design very closely. Two input signals are presented to the device: a control signal (usually a persons voice), and an instrument. Both signals are then separated by an array of bandpass filters into nineteen different frequency ranges. We chose this number of ranges to ensure adequate coverage of the vocal range; more bands would give a better sounding output, but the tradeoff is that incredibly narrow filters are required. The voice, being the control signal, then runs through an envelope follower, which generates a slowly-changing waveform that represents the strength of the voice in each frequency band. This output (V1 to V19 in the diagram) is passed as the control input to a set of nineteen voltageFrom Mixer From Mic Preamp

Bandpass Filter Bandpass Filter

Envelope Follower Envelope Follower

V1

V2

Bandpass Filter

Bandpass Filter

Bandpass Filter

...
V1 VCA V2 VCA

Envelope Follower

...
V19 Output

...

Bandpass Filter

Figure 1: Vocoder Block Diagram

...

V19

VCA

controlled amplifiers (VCAs). The VCAs set the gain of the instrument in each band based on the output of the envelope follower, essentially functioning as a multiplier. The outputs of the VCAs are then mixed back into one signal, which is a purely synthesized version of the voice made by modulation of the instrument. The instrument can be pretty much anything; different inputs will result in a vastly different range of sounds at the output. The output signal is designed to be used with an external amplifier. In Dudleys original design, the envelope follower output was then sent over the phone and used to synthesize voice from a noise generator at the receiving end. These slow-moving control signals required much less bandwidth to transmit than an actual voice.

1.2

Harmonizer [Uriel]
The harmonizer is our addition to the vocoder. Its purpose is to detect the

frequency of the input signal, and generate a set of waveforms in musically useful related frequencies. It then mixes these generated signals with other possible vocoder instruments, such as a guitar, or white noise. A generator for white noise was built for

Mic Input

Mic Preamp

Highpass 60 Hz
To Vocoder

Lowpass 1kHz

Frequency to Voltage Converter

Frequency Detector

x3 Octave Interval

Voltage to Frequency Converter White Noise


Ext. Input

Mixer
To Vocoder

Control Logic

Figure 2: Harmonizer Block Diagram

this feature, as it is useful for production of fricative phonemes like s and f. The microphone input is an XLR jack, differential input, which is amplified considerably in the mic preamp. This signal is then run through a small filter bank to filter out sounds outside of the vocal range. The bandpassed signal is passed through a circuit which detects its frequency and converts this to a voltage via a linear function. This voltage is sent through a set of three harmony generators, which change the frequency of the input signal and output a pulse wave at a different frequency to the mixer stage. To do this, the harmony block amplifies or attenuates the voltage from the frequency to voltage converter, and then converts this voltage to the pulse wave in a voltage-to-frequency converter. Because of the linear frequency-voltage relationship, the proper change in voltage can raise the output a fifth, third, octave, etc. allowing the creation of chords. This block is controlled by a set of rotary switches and a button panel. This mix of synthesized waveforms is sent as the instrument to the vocoder, which applies the voice characteristics, resulting in a set of harmonized voices. An optional connection not shown on the block diagram allows mixing in the original voice after the vocoder stage, for a total of four voices.

2.
2.1
2.1.1

Circuit Detail
Vocoder
Overview [Philip] The vocoder takes two inputs: a voice or microphone input and an instrument

input. Each input is fed into a large filterbank that separates it into 19 different frequency bands. The bands from the voice input are fed into an envelope follower,

which outputs a DC signal indicating the volume in that particular band. That is, an audio signal of a voice goes into the device and the vocoder generates 19 different signals that form a rough frequency spectrum of that input. The instrument input goes through identical filters as the voice input, but does not go through the envelope followers. For each filter there is a Voltage Controlled Amplifier (VCA) that multiplies one of the instrument frequency bands by the volume of the corresponding voice frequency band. This schematic represents one of 19 such circuits in the vocoder, each one covering a different frequency range. The total output of the decoder is the sum of the outputs of all the VCAs. This output is essentially the instrument signal being dynamically equalized to imitate the frequency spectrum of the voice, which is how the vocoder can synthesize speech from arbitrary sounds. While the voice input for the device is always a microphone signal, several possibilities are provided for the instrument input. These include a vocal harmonizer, which generates several tones from the user's voice and adds a chorus effect to the synthesized speech; a white noise generator, which equally covers all the frequency bands and is thus easily intelligible, and a jack that can be used for any kind of input the user wishes. 2.1.2 Filter Banks [Philip] The vocoder has two separate, but identical filter banks. One is used for the voice input and the other for the instrument input. Since the vocoder was intended to be used with a vocal harmonizer, it had to be precise enough to reproduce several, simultaneous notes without significantly obscuring

the tonality. For this reason, most of the filters only cover a forth of an octave. 15 fourth-octave filters cover the majority of the vocal range from 250 to 3364 hertz. Two filters covering two-thirds of an octave are placed at 111 and 177 hertz to cover some of the lower sounds, while a full octave filter placed at 5187 hertz catches most of the higher harmonics. Altogether, each filterbank consists of 19 filters. Another criteria in the filter design was to keep them as discrete as possible. For a vocoder, having the filters overlap causes the various frequencies of the speech synthesis to meld together and become less intelligible. Therefore, the filters need to fall off extremely quickly as the frequency moves away from the center frequency. A third obstacle was the sheer volume of filters needed. Switch-capacitor filter ICs were originally considered because they are extremely easy to wire, but even the cheapest ICs would have cost hundreds of dollars. Elliptical filters could have been used to achieve extremely fast cutoff rates, but each filter would have required at least eight op-amps, making them prohibitively labor intensive as well as expensive.
-40dB -20dB 0dB

-60dB

1/4 Octave Per Division


Figure 3: Single Filter Response

Figure 4: Filter Bank Schematic

The final design is a simple, fourth-order, "multiple-feedback" bandpass filter. The design was taken from Don Lancaster's Active Filter Cookbook on page 154. The transfer function for a single stage of this filter is straightforward to compute, albeit tedious. The result is -1/R1/C2 * s / (s^2+2/R3/C*s + (R1+R2)/R1/R2/R3/C^2). By changing the values of R1, R2, R3, and C, it is possible to set the passband gain, Q, and center frequency of the filter. But selecting a Q of about 8.5, the filters become extremely narrow and steep, thus fulfilling the requirements of being very discrete while only taking up a quarteroctave. The tradeoff for this is that the filters are very resonant, which results to a significant amount of ringing. To lessen this effect, the filters use staggered center frequencies. That is, the individual stages of each filter have slightly different center frequencies, which gives them a flatter passband and allows the filter to maintain a very fast cutoff while lowering the Q. After the narrow resonant peak is passed, the rolloff of the filter is determined by its order. Fourth-order filters were used to achieve 24db of rolloff per octave. One of the drawbacks to using four stages is that, because they are all multiplied together, slight deviations in frequencies of each stage can lead to large deviations in the overall 8

amplitude. 1% resistors and, for the most part, 3% capacitors were used to keep the filters as exact as possible. The resistor and capacitor values used for each filter and filter stage are shown below. Each block of data represents one filter. Each line in that block contains the data from a single stage or all the stages combined. Note that these are calculated, not measured, values.
Filter Stage Total A B C D Total A B C D Total A B C D Total A B C D Total A B C D Total A B C Center Freq(Hz) 111 97 111 128 111 177 143 177 218 177 250 237 264 237 264 297 282 314 282 314 354 335 373 335 373 420 398 444 398 Q 3.17 6 2 6 2 2.16 6 2 6 2 8.46 6 6 6 6 8.46 6 6 6 6 8.46 6 6 6 6 8.46 6 6 6 Gain 0.99 1.39222 1.39222 1.39222 1.39222 0.98 1.6476 1.6476 1.6476 1.6476 1.02 1.2 1.2 1.2 1.2 1.02 1.2 1.2 1.2 1.2 1.02 1.2 1.2 1.2 1.2 1.02 1.2 1.2 1.2 C (nF) 100 100 100 100 R1 (O) 71500 20500 53600 20500 R2 (O) 1400 4320 1050 4320 R3 (O) 196000 57600 150000 57600

100 100 100 100

40200 11000 26700 11000

953 2800 619 2800

133000 35700 86600 35700

100 100 100 100

34000 30100 34000 30100

576 511 576 511

80600 73200 80600 73200

100 100 100 100

28000 25500 28000 25500

475 432 475 432

68100 60400 68100 60400

100 100 100 100

23700 21500 23700 21500

402 365 402 365

57600 51100 57600 51100

100 100 100

20000 17800 20000

340 301 340

47500 43200 47500

D Total A B C D Total A B C D Total A B C D Total A B C D Total A B C D Total A B C D Total A B C D Total A B

444 500 474 528 474 528 595 563 628 563 628 707 670 746 670 746 841 797 888 797 888 1000 947 1056 947 1056 1189 1127 1255 1127 1255 1414 1340 1493 1340 1493 1682 1593 1775

6 8.46 6 6 6 6 8.46 6 6 6 6 8.46 6 6 6 6 8.46 6 6 6 6 8.46 6 6 6 6 8.46 6 6 6 6 8.46 6 6 6 6 8.46 6 6

1.2 1.02 1.2 1.2 1.2 1.2 1.02 1.2 1.2 1.2 1.2 1.02 1.2 1.2 1.2 1.2 1.02 1.2 1.2 1.2 1.2 1.02 1.2 1.2 1.2 1.2 1.02 1.2 1.2 1.2 1.2 1.02 1.2 1.2 1.2 1.2 1.02 1.2 1.2

100

17800

301

43200

47 47 47 47

35700 32400 35700 32400

604 549 604 549

86600 76800 86600 76800

33 33 33 33

43200 38300 43200 38300

732 649 732 649

102000 93100 102000 93100

33 33 33 33

35700 32400 35700 32400

604 549 604 549

86600 76800 86600 76800

33 33 33 33

30100 27400 30100 27400

511 464 511 464

73200 64900 73200 64900

33 33 33 33

25500 22600 25500 22600

432 383 432 383

60400 54900 60400 54900

22 22 22 22

32400 28700 32400 28700

549 487 549 487

76800 69800 76800 69800

22 22 22 22

26700 24300 26700 24300

453 412 453 412

64900 57600 64900 57600

22 22

22600 20500

383 348

54900 48700

10

C D Total A B C D Total A B C D Total A B C D Total A B C D Total A B C D

1593 1775 2000 1895 2111 1895 2111 2378 2253 2511 2253 2511 2828 2679 2986 2679 2986 3364 3186 3551 3186 3551 5000 3900 5657 4757 6900

6 6 8.46 6 6 6 6 8.46 6 6 6 6 8.46 6 6 6 6 8.46 6 6 6 6 1.58 6 2 2 6

1.2 1.2 1.02 1.2 1.2 1.2 1.2 1.02 1.2 1.2 1.2 1.2 1.02 1.2 1.2 1.2 1.2 1.02 1.2 1.2 1.2 1.2 0.99 2 2 2 1.8

22 22

22600 20500

383 348

54900 48700

22 22 22 22

19100 16900 19100 16900

324 287 324 287

45300 41200 45300 41200

10 10 10 10

35700 31600 35700 31600

604 536 604 536

84500 76800 84500 76800

10 10 10 10

29400 26700 29400 26700

499 453 499 453

71500 63400 71500 63400

10 10 10 10

24900 22600 24900 22600

422 383 422 383

60400 53600 60400 53600

4.7 4.7 4.7 4.7

26100 6040 7150 16500

750 2000 2370 422

105000 23700 28700 59000

11

0dB

-20dB

1/4 Octave Per Division


Figure 5: Calculated Total Frequency Response

2.1.3

Envelope Followers [Uriel] Once the inputs have been filtered, the vocoder needs to modulate the instrument

with the voice. This is handled by passing the voice through an envelope follower, and using this new wave as the control input to a voltage-controlled amplifier. The VCA works, for all intents and purposes, like a signal multiplier, setting the gain on the instrument input using the envelope follower output. The envelope follower is essentially a simple diode/RC peak detector, except the diode has been replaced with an ideal diode constructed with an op-amp. The VCA control input requires a negative voltage, so this needs to be considered when discussing the ideal diode setup. Referring to the schematic, when the voice in is positive, D2 is activated, and C is charged to a negative voltage using the op-amp as a current sink. When the voice in goes negative, D1 turns on and D2 turns off, giving the capacitor a discharge path

12

Envelope Follower

R1 R1 D1: 1N4153

Voltage-Controlled Amplifier

1.5K

2N3906

LM837 D2 Control Voltage

R1

Voice In
LM837

100K

Instrument In
R2 8.2K +15V 250K CA3080

Output

130

-15V

Figure 6: Envelope Follower and VCA Schematic

through R1 into the virtual ground at the inverting terminal of the op-amp. Because of this, the envelope follower has an RC time constant of R1C. The values for R1 and C were chosen for a time constant approximately 50 times the period of the center of each band, in order to have good peak detection with as little ripple as possible. Two diodes were used in the envelope follower in order to keep the op-amp from saturating at the rails when the input voltage switches polarity. 2.1.4 Voltage-Controlled Amplifiers [Uriel] The VCAs have two components: a current source, and an operational transconductance amplifier (CA3080). The current source is a 2N3906 driven by an opamp. When the non-inverting input to the LM837 goes negative, the op-amp output goes negative, allowing current to flow through the transistor to the CA3080, and putting a negative voltage (due to emitter drop) on the inverting input, completing the feedback loop. When the input is positive, the op-amp output is positive, and the transistor doesnt conduct. The 1.5K resistor allows us to set the range of current output based on control inputs. We determined control inputs up to -13 volts were allowed, but we tried not to exceed -10V.

13

The CA3080 OTA has an adjustable gain, based on a biasing input current (from the 2N3906 in this design). The instrument input to the CA3080 is first sent through a voltage divider (approximately 12x attenuation) because the OTA requires a small input voltage to maintain linearity, in the range of 100mV. The OTA also has a potentiometer installed to adjust input offset, which was causing output noise. The CA3080 outputs a current. We simply connected all 19 VCAs in parallel, using a resistor to ground (7.5k) to convert the current sum into a voltage. This resistor can be adjusted to control the total gain of all the VCA stages. The following is a table of values used for R1, R2, and C:
Center Freq (f0) 111 177 250 297 354 420 500 595 707 841 1000 1189 1414 1682 2000 2378 2828 3364 5187 C (uF) 0.82 0.82 0.22 0.22 0.22 0.22 0.22 0.22 0.22 0.22 0.22 0.22 0.22 0.22 0.22 0.22 0.22 0.22 0.22 R1 180K 110K 330K 300K 270K 220K 180K 160K 180K 110K 91K 82K 68K 56K 47K 39K 33K 27K 18K R2 91K 56K 160K 150K 130K 110K 91K 75K 91K 75K 43K 43K 33K 27K 24K 18K 16K 13K 9.1K

This design for the VCA was based on a schematic in Musical Applications of Microprocessors, by Hal Chamberlin.

14

2.2
2.2.1

Harmonizer
Overview [Andrew] On many popular recordings, the singer sounds as if he is singing along with

himself, often a third, fifth, or even an octave above the main melody. Twenty years ago, this would have been done by recording on multi-track tape and going back to record another vocal part alongside the initial performance. These days, much of it is done electronically, with circuits designed to transform the voice to sound at a different pitch. Automatic harmony generation is very tricky to do well, and nearly impossible to do in analog. Nonetheless, we were able to construct a circuit that could generate chords to an input pitch with reasonable accuracy and reliability. Most harmony generators work digitally, using an FFT on the input signal, multiplying the result in the frequency domain, and then converting back with an inverse FFT to obtain a pitch higher or lower than the input that still has the same timbre as the input waveform. This option was not available to us. The only good way to directly manipulate the pitch of a waveform in analog is to use a multiplier or ring modulator, where multiplying a wave of one frequency by another results in sum and difference frequencies at the output. Unfortunately, this is not musically useful for two reasons. The first is that pitch is perceived logarithmically: doubling the frequency raises the pitch by an octave, multiplying the frequency by 3/2 results in a perfect fifth, 4/3 a perfect fourth, and so on. The interval generated by adding a constant to a frequency will vary (for example, adding 400Hz to a 400Hz wave will raise its pitch by an octave, but will only add a fifth to an

15

800Hz wave). The second problem is that any real-world waveform is full of harmonics, and shifting the frequency up by a constant will result in the harmonics no longer being multiples of the fundamental frequency, which completely distorts the sound. As such, the system we implemented effectively cheats by not trying to alter the input at all but instead synthesizing completely new waves at the correct frequency, and relying on the vocoder to transform their spectra to match that of a voice. The signal from the microphone, after being amplified by the preamp, goes through a 2nd-order high-pass filter at 60Hz and a 2nd-order low-pass filter at 1kHz to remove unwanted noise and harmonics, leaving only the fundamental frequency of the note being sung. (60Hz is around the C two octaves below Middle C, and 1kHz is near the C two octaves above it). The filtered signal then goes into a frequency detector which generates a clean square wave (of indeterminate duty cycle) corresponding to the positive peaks of the input waveform. The square wave drives a frequency-to-voltage converter, whose output is a DC voltage linearly proportional to the input frequency. The output of the F-V converter goes into three parallel synthesis blocks (for a total of three different voices), where in each block the voltage can be multiplied by 2 or divided by 2, and then passed through a gain stage whose gain can be selected among 8 choices by a multiplexer. Finally, the voltage is put into a voltage-to-frequency converter calibrated identically to the F-V converter, such that if the output of the F-V were hooked directly to the input of the V-F, the input and output frequencies would be the same. The 8 gain choices correspond to the ratios in frequency of common musical intervals, so that a multiplication in voltage there corresponds to a multiplication in frequency at the output,

16

generating a voice a third, fourth, fifth, or sixth above the input pitch. Optionally multiplying or dividing the voltage by 2 allows a selection of three octaves. Finally, the outputs of the voltage-to-frequency converters (each of which is a pulse wave containing a wide variety of harmonics) are mixed along with white noise and an optional external input, and the result fed into the vocoder to be modulated. The level of each voice, along with the level of the noise and the external input, can be controlled independently with knobs on the front panel. 2.2.2 Microphone Preamp [Andrew] The circuit is designed to use a balanced microphone, the standard for all professional recording. (Balanced microphones reduce noise by having a differential signal which is separate from the ground wire). U1a is configured as a differential amplifier. The gain of the inverting signal, with no signal at the noninverting input, is R4/R2 = -10. The gain at the noninverting input with no signal at the inverting input is R3/(R3+R1)*(1+R4/R2) = (10/11)*11 = 10. Thus the output of U1a is 10 times the differential input. Common-mode rejection is mainly determined by the tolerances of R1-R4. A high common-mode rejection reduces noise, which appears on both input signals. Professional microphone preamps will be calibrated for minimum noise. In our case, the
C1: 10uf R1: 6.8k U1a: LM358 C2: 10uf R2: 6.8k R4: 68k R3: 68k R5: 100k U1b: LM358

Balanced Mic In

To Input Filters and Vocoder

R7: 100k

Figure 7: Microphone Preamp Schematic

R6: 10k

17

SNR provided by 5% carbon resistors was sufficient, given the likelihood of noise to be picked up by other long wires or generated elsewhere in the project. U1b is a standard noniverting amplifier with a gain of 11, for a maximum total gain of 110, or 41db. The potentiometer R5 (mounted on the front panel) was inserted between U1a and U1b so that only one pot would be needed to adjust the now singleended signal, and so that a strong signal could be reduced in amplitude before it caused U1b to rail. 2.2.3 Filters and Frequency Detector [Andrew] The frequency detector takes the output of the microphone preamp as its input. The filters are standard second-order Sallen-Key filters, obtained from Horowitz & Hill. U2a is a HPF at 60Hz, which in practice has a -3db point of 1/(2*p*C3*R8) = 58.9Hz after selecting the nearest 5% component values. The LPF at 1kHz (U2b) works out to 1/(2*p*C5*R10) = 965Hz. The precise values are not critical; both values were chosen
R8: 18k C5: .015uF R10: 11k U2a: LM324 R11: 11k C6 .015uF U2b: LM324

From Mic Preamp

C3: .15uF

C4: .15uF

R9: 18k

To Frequency Detector

Figure 8: Microphone Filter Schematic

From Mic Preamp Filters

R13: 220k

1N914 U4: LT1011 R15: 100k

1N914 R12: 220k

R14: 1k C7: .33uF

To Frequency to Voltage Converter


R16: 15k

U3: LF356

Figure 9: Frequency Detector Schematic

18

as a ballpark estimate of the extreme high and low ranges of the human voice, and the frequency of a waveform outside this range could still be detected even with mild attenuation. The point is to reduce the amplitude of the spurious noise and harmonics relative to the fundamental pitch. Two sections of an LM324 quad op-amp were used, because it seemed likely that further filtering might need to be added later. The filtered waveform then passes into U3, which acts as an ideal diode with no forward voltage drop in a peak detector circuit. The improved version of the circuit from class is used which prevents U3 from swinging all the way to the rail on negative inputs. Since R13 provides a path from output to ground even on the negative half-wave, R12 and R13 had to be made very large to avoid reducing the RC time-constant formed with C7, and still provide a gain of (-)1. Of course, the RC time constant is also affected by the series combination of R14 and R15, which form an (adjustable) voltage divider at the input of the comparator U4. (Perhaps R14 = 10k and R15 = 1 Meg would have been a better choice to reduce this influence, but a smaller time constant seemed to work well). The other input to U4 is the filtered wave before it enters the peak detector. The purpose of this setup is that on the positive peak of each cycle, C7 will be charging up and thus following the input voltage. Since the voltage divider of R14 and R15 reduces its amplitude by somewhere around 1%-10%, the positive input to U4 will be greater than the negative input and U4 will swing high (the collector at the output is connected directly to +15, with a pull-down resistor). The rest of the time, the input signal will be below its peak-detected version and the output will be low. The result will be a square wave whose frequency is precisely equal to the input waveforms frequency. This circuit was taken from Musical

19

Applications of Microprocessors by Hal Chamberlin and works well under a wide variety of input waveforms. However, as described in Chamberlin, certain waveforms such as those with two equal positive peaks will cause the circuit to mistrigger. These situations did not typically come up with vocal input signals. 2.2.4 Frequency to Voltage Converter [Andrew] The frequency-to-voltage converter uses a National Semiconductor LM331AN chip (U5) in a configuration taken from the datasheet. C8 and R17 differentiate the input signal, to produce positive and negative pulses on the positive and negative edges of a square wave (the LM331 triggers on the positive edge only, making the duty cycle of the input wave irrelevant). R18 and R19 provide an external reference for an internal current source. According to the data sheet, the output voltage Vout = -fin*2.09V*R24/(R20+R21)*R22*C9. The values of R20, R21, and R24 were left as in the standard configuration, but C9 and R22 were chosen to provide around 3kHz full scale, which is high enough for the highest harmony of the highest input pitch. Allowing a higher full-scale output magnifies
+15V R18: 10k R22: 20k R17: 10k

R19: 68k

From Frequency Detector

7 6

8 U5 LM331 4 3

C9: .01uf

C8: 2.2nF R20: 12.1k

R24: 100k C10: .1uF R23:100k

To Harmony Selector

Figure 10: Frequency to Voltage Converter Schematic

R21: 10k 10-turn

C11: .047uF

U6: LF356

20

the effects of offsets at lower frequencies, which will need to have correspondingly lower output voltages. All resistors were 1% metal film, not becaus100PPM/e of their tolerance but for their temperature coefficient, which is C versus up to 2500PPM/C for carbon film. A high temperature coefficient will cause the circuit to drift out of tune as it warms up or the ambient temperature changes. Similarly, C9 is a polystyrene capacitor, also chosen for its low temperature coefficient. C10, C11, R23, R24, and U6 form a 2-pole low-pass filter at around 16Hz to reduce the ripple on the output voltage. An LF356 is used for U6 because of its low input bias current which reduces offset problems. The linearity of this circuit is 0.01% or better with good components. While such accuracy may seem unnecessary, slight variations in pitch are very perceptible compared to slight variations in amplitude (a chromatic step is only a 6% change in pitch). 2.2.5 Harmony Selectors [Andrew] There are actually three identical harmony and synthesis blocks in our project, which allows independent control of three different voices. (Only one schematic is shown). Thus, one voice can be set to a unison, one to a third, and one to a fifth to form a complete triad, among other possibilities. The harmony selector is effectively a series of gain stages with selectable gain according to a switch on the front panel or other input signal. R25, R26, and R27 form a ladder network voltage divider, where the output voltage between R25 and R26 is half the input voltage, and the output between R26 and R27 is one fourth the input voltage. U7, also an LF356 for low offset, is configured as a noninverting amplifier with a gain of 2, so the output can be selected as twice, equal to, or half of the input voltage. This corresponds to an octave up, a unison, or an octave

21

down. U7 also isolates R25, R26, and R27 from the input impedance of the amp formed by U9, R30, and R31. U9 is configured as an inverting amplifier with a feedback resistor R31 = 20k. However, the input resistor R30 is selected from 8 choices by U8, an Analog Devices ADG408BN analog multiplexer. U8 takes in three digital control signals and connects one of 8 analog inputs to its output. The gain of the system is thus -R31/R30, which can be selected according to the following table:
Input 000 001 010 011 100 101 110 111 R30 20k 16.5k 15.8k 15.0k 14.0k 13.3k 12.4k 11.8k Gain 1 1.2 1.25 1.33 1.41 1.50 1.60 1.67 Interval Unison Minor Third Major Third Perfect Fourth Diminished Fifth Perfect Fifth Minor Sixth Major Sixth

The gain is the ideal from the definition of the interval; the actual values deviate slightly due to component tolerances and closest available values (all R30a-R30h are 1% metal

R30a: 20k

From Frequency to Voltage Converter


R25: 10k

R30b: 16.5k R30c: 15.8k U8: ADG408 Analog Multiplexer R30d: 15.0k U7: LF356 R30e:14.0k R30f: 13.3k C12: .1uF R31: 20k

R26: 4.99k

Rotary Switch R28: 10k

U9: LF356

To Voltage to Frequency Converter

R27: 4.99k

R29: 10k R30g: 12.4k R30h: 11.8k

Control Inputs

Figure 11: Harmony Selector Schematic

22

film). Actual gains are, of course, negative as U9 is inverting. This is in fact necessary as the V-F expects a positive voltage but the F-V outputs a negative one. (In the F-V case, the precision circuit is used. The normal version of the V-F actually worked better than the precision one). C12 adds another low-pass filter (at 80Hz this time) in an attempt to further reduce ripple. The digital control signals come from the logic circuitry, which is driven from a keypad of nine buttons. The buttons are laid out in a grid according to type of chord and the relation of the input pitch to it. Chords can be major, minor, or diminished, and the note being sung could be either the root, the third, or the fifth of the chord. Thus there are nine different possible ways to generate the harmony to make sure it is within the correct chord structure-- a harmony generator that always generated a major third and perfect fifth to any pitch would be useless in any real-world situation. The buttons are laid out with the rows denoting position of the note within the chord and the columns denoting the type of chord. The overall layout is:
Fifth Third Root Major A D G Minor B E H Diminished C F I

So, for example, if the singer was singing C against a background harmony of C major, he would push button G which would generate a major third and perfect fifth above his voice. But if he was singing the same C against a prevailing harmony of A minor, he would push button E which would generate a first-inversion A minor chord of C, E, and A-- a major third and major sixth. Choosing the correct button for any note requires a basic knowledge of music theory, and to use it in any practical context would require a bit of planning to figure out ahead of time which button was the most appropriate for 23

each harmony. This device is in many ways an instrument of its own, and like any instrument, it requires a bit of practice to play properly. The digital logic actually generates a 6-digit sequence for any button. The first three digits are the identity of the third interval, which could be a major third (as in buttons E and G), a minor third (as in buttons D, F, H, and I), a perfect fourth (in secondinversion chords like those of buttons A and B), or even a diminished fifth / augmented fourth (for button C). The identity of the fifth can be diminished (for button I), perfect (G, H), a minor sixth (B, D), or a major sixth (A, C, E, F). Three-pole, three-position rotary switches on the front panel take in all six inputs and produce three outputs, which are either the three digits corresponding to the third, the three digits corresponding to the fifth, or 000, which is a unison and never changes with the harmony. The three voices can be adjusted independently to unison, third, or fifth, although the buttons control the harmony of all three simultaneously. 2.2.6 Harmony Keypad Control Logic [Philip] This circuit utilizes three CMOS ICs containing digital logic gates in order to generate a different, 6-bit digital code for each of the 9 buttons. A register is used to store this code until the next button is pressed. If you follow the precarious logic gates and transistors that run along the bottom of the schematic, it can be seen that pressing any button will cause the voltage on the register's clock pin to rise. Because each button causes a code to be generated while simultaneously signaling the register to trigger, a very small lowpass filter (R1 and C1) has been placed in front of the clock input. This filter slightly delays the voltage on the clock pin and ensure that all the logic propagation will be finished before the register is triggered.

24

The BJT transistors in this circuit are all being used logic gates. The voltage at their collectors should either be 15 volts or close to 0. Transistors were used for a few logic gates in order to save space and not waste ICs. The six digit codes generated by the buttons are described by the following boolean equations:
D0 = C D1 = (A+B+E+G) D2 = (C + E + G) D3 = 1 D4 = (G + H + I) D5 = (B + D + I) CLK = (A + B + C + D + E + F + G + H + I)

Figure 12: Keypad Logic Schematic

25

+15V R37: 20k

C10: .1uF

From Interval & Octave Block

R32: 100k
7 1 6 8 U10 LM331 4 2 3 5

C15: .01uF +15V R38: 10k

C14: .82uF

R33: 100k

R39: 12.1k

+15V R36: 10k

To Mixer
C16: .82uF

R34: 51

R35: 15k

R40: 10k 10-turn

-15V

Figure 13: Voltage to Frequency Converter Schematic

2.2.7

Voltage to Frequency Converter [Andrew] U10, like U5, is an LM331 chip. This flexible part can be used as either an F-V

or V-F converter. The V-F configuration is also taken from the datasheet, but R37 and C15 are changed to match the values in the F-V converter. A 10k trim was selected for R40 (and R21) instead of 5k, because of availability. R35 was reduced from 22k in the datasheet to 15k here to allow a greater range of offset adjustment. Like the F-V converter, resistors are 1% metal film, and C15 is polystyrene. The output of the V-F is given by fout = Vin/2.09V*(R39+R40)/R33*1/(R37*C15). R40 was calibrated such that fout = fin for unity gain on the harmony selector. This made sure the unison was precisely in tune regardless of component tolerances, although other intervals might vary. The offset adjustment is required so that the output frequency is a precise multiple of the input voltage, without any constant added. That is, 0V in should produce 0Hz out. The output of the V-F is a pulse wave with a very low duty cycle. C16 removes any DC component from the output to avoid railing the mixer.

26

Figure 14: White Noise Generator Schematic

2.2.8

White Noise Generator [Philip] The circuit shown in Figure 14 generates noise by utilizing the "avalanche noise"

created by applying a strong reverse bias on PN junction. This is often done with a zener diode, but in this circuit is accomplished with the collector-to-base junction of Q1. In the circuit below, 14.4 volts is applied across Q1, due to the 0.6 volt drop across the base and emitter of Q2. This exceeds the maximum breakdown voltage of 6 volts, as listed in the 2N3904 data sheet, and an extremely noisy current is forced through Q1. The current going through Q1 also goes through the base of Q2, causing a much larger current to go through the collector of Q2. This amplifies the current going through R1 and thus amplifies the voltage noise at the collector of Q2. If Q2 is removed and the base of Q1 is grounded, the amplitude of the noise drops by a factor of five. Even with Q2, the voltage of the noise is only around 25mVpp. The two op-amps in series amplify the noise by a factor of 595 to give an output of 15Vpp. Since the upper range of audio is 20kHz, an op-amp with a gain bandwidth product of 11.9 MHz (595 *

27

20000) is needed. At 75 MHz, a single LM6152 would have been adequate. However, since they come in pairs, the other one was used in the design. This design was modified from a "Hardware Random Bit Generator" found at http://willware.net:8080/hw-rng.html. 2.2.9 Mixer [Andrew] The mixer is a straightforward inverting amplifier formed by U11b. The gain of each of the harmony inputs is -1 (R49/R41, R49/R42, R49/R43). These signals already have up to 15V of swing, and do not need any additional gain. The white noise output was somewhat lower, so its gain is set to -R49/R44 = -4.5. R50-R53 allow independent level adjustment of each of these channels. U11a provides extra gain to an external input signal, whose level is adjusted by R45. U11a is a noninverting amplifier with a gain of 1+R47/R48 = 11, and setting R46 = 10k gives this signal another gain of 10 in the mixer. The reason for this high gain is that the external signal may be something with low output like a microphone or instrument.
Voice 1 In

R50: 100k

R41: 100k

R51: 100k

Voice 2 In Voice 3 In White Noise In

R42: 100k R49: 100k R43: 100k U11b: LF358 R44: 22k

R52: 100k

To Vocoder

R45: 100k

External Input

R53: 100k

U11a: LF358 R47: 100k R48: 10k

R46: 10k

Figure 15: Mixer Schematic

28

The output of the mixer is sent to the vocoder to be modulated by the voice signal. This allows the harmonic-rich pulse waves of the harmony to be shaped into waves that sound more like the human voice, to create the illusion of multiple voices singing at once.

2.3

Power Supply [Uriel]


Based on the number of components in our project, and their listed power

requirements, we assumed that our project would require around 1 Amp of current. Therefore, the power supply was designed with current draw in mind. The basic design of the circuit is a series-pass, emitter-follower DC regulated power supply, using a 16V 1N966B zener diode as the regulator. Our transformer was a 40 VAC center-tapped transformer capable of sustaining 4A. This was rectified by a GBPC-1201, 12A bridge rectifier into two full-wave signals at +/- 20 VRMS, which charged up C1 and C2, creating approximately +/- 26 V DC. A small amount of current from the capacitors crosses R1 and R2 to supply the transistor base and zener diode. We used a Darlington pair to reduce the required base current; with a single transistor on each rail, there was a danger of the resistor exploding

D44H11 NPN +15 V R1: 10k

C1: 1000 uF

1N966B 16V GND 1N966B 16V 330 uF

GBPC-1201

C2: 1000 uF

40 VCT @ 4.0 A

R2: 10k

330 uF

-15 V D45H11 PNP

Figure 16: Power Supply Schematic

29

due to the amount of power dissipating through it. The Darlington pair allowed us to use a larger, lower wattage resistor. Each transistor was mounted onto a 2x2x1 heatsink. Under test loads, the power supply was able to sustain 1 Amp for several minutes.

3.
3.1

Measurements
Filter Bank [Philip]

The following set of measurements was taken from the filter bank:
Calculated Center Freq Q Gain@f0 111 177 250 297 354 420 500 595 707 841 1000 1189 1414 1682 2000 2378 2828 3364 5187 3.17 2.16 8.46 8.46 8.46 8.46 8.46 8.46 8.46 8.46 8.46 8.46 8.46 8.46 8.46 8.46 8.46 8.46 1.58 0.99 0.98 1.02 1.02 1.02 1.02 1.02 1.02 1.02 1.02 1.02 1.02 1.02 1.02 1.02 1.02 1.02 1.02 0.99 Bank 1 Center Freq Q 111 189 260 309 366 438 494 590 709 837 1008 1184 1409 1676 2006 2402 2870 3350 5324 2.85 2.17 8.12 7.92 8.32 7.96 8.23 9.08 8.65 8.21 8.76 8.00 8.44 8.06 7.71 8.52 8.20 8.11 1.67 Bank 2 Center Freq Q 118 188 261 310 366 444 498 588 709 834 1004 1173 1414 1668 2013 2395 2865 3385 5249 3.10 2.14 8.42 8.16 8.13 7.93 8.59 8.28 8.65 7.38 7.61 8.38 9.30 8.42 8.42 9.74 8.23 8.06 1.55

Gain@f0 0.862 0.761 0.772 0.738 0.724 0.724 0.888 0.959 0.880 0.817 0.899 0.798 0.857 0.803 0.733 0.843 0.846 0.814 0.960

Gain@f0 0.902 0.795 0.789 0.786 0.761 0.733 0.950 0.837 0.871 0.701 0.755 0.857 0.959 0.868 0.829 0.871 0.814 0.783 0.836

3.2

Harmonizer [Andrew]
Much of the performance of the harmonizer is subjective, but some measurements

can be taken. The exact gain of the microphone preamp or the exact -3db point of the filters are generally unimportant to the performance of the circuit, but the linearity and

30

calibration of the frequency-to-voltage and voltage-to-frequency converters are critical, as are the accuracy of the gains in the harmony selector. Measurements of the performance of the F-V converter are given in the following table:

Frequency In (Hz) 60 70 80 90 100 120 140 160 180 200 230 250 280 300 350 400 450 500 600 700 800 900 1000 1200 1400 1600 1800 2000 2500 3000

Voltage out (V DC) -.147 -.171 -.197 -.221 -.246 -.296 -.345 -.395 -.445 -.494 -.569 -.618 -.692 -.742 -.866 -.990 -1.11 -1.24 -1.49 -1.73 -1.98 -2.23 -2.48 -2.97 -3.47 -3.96 -4.46 -4.96 -6.20 -7.44

Ripple (mV AC) 30.6 26.3 23.0 20.4 18.4 15.3 13.1 11.5 10.2 9.17 7.96 7.31 6.51 6.07 5.18 4.50 3.98 3.57 2.95 2.51 2.17 1.90 1.68 1.35 1.10 0.89 0.73 0.61 0.32 0.06

The relationship between Vout and Fin correlates to V = -2.48*10-3*f + 2.28*10-3. This means that 1kHz = -2.48V, and that there is about 2.3mV of positive offset in the output voltage, which shows up in the measurement of 100Hz = -.246V. The correlation of this data is -.9999994, indicating very high linearity. Overall the performance of this circuit is excellent. Some undesirable effects will be discussed in the error analysis.

31

The voltage-to-frequency converters are of similarly high performance, although the results indicate some inaccuracies in calibration:

Vin (V DC) .1 .2 .3 .4 .5 .6 .7 .8 .9 1.0 1.2 1.5 1.7 2.0 2.5 3.0 4.0 5.0 6.0 7.0

Fout 1 (Hz) 38.4 78.9 119.2 159.6 200.0 240.3 280.5 320.9 361.2 401.5 482.1 602.7 683.3 804.2 1005.8 1207.5 1611.0 2014.7 2417.2 2820.6

Fout 2 (Hz) 36.7 77.6 118.2 159.3 200.1 204.9 281.6 322.4 363.2 403.9 485.5 607.5 689.0 811.4 1015.2 1219.3 1627.6 2035.8 2443.0 2850.9

Fout 3 (Hz) 40.3 80.8 121.2 161.6 202.0 242.3 282.6 323.0 363.3 403.7 484.4 605.1 685.8 806.8 1008.5 1210.5 1614.3 2018.2 2421.1 2824.7

The best fit lines for each are:

Fout1 = 403.2V - 1.80 Fout2 = 407.8V - 3.99 Fout3 = 403.5V + 0.67

Correlation = .99999996 Correlation = .99999996 Correlation = .99999997

Taking the inverse of the F-V converter, the ideal V-F converter would have Fout,ideal = (V - 2.28*10-3)/2.48*10-3 = 403.2V - 0.92 However, it is important to note that due to offsets elsewhere in the system, and variations in the resistor values of the harmony selector, what is correctly calibrated when the F-V and V-F and hooked directly together may not be correct when placed in the full circuit. As such, it was important to measure the performance of each voice when set to

32

unison relative to the input frequency. At all frequencies, the output should be the same as the input but the results show some variation:

Fin (Hz) 60 80 100 200 300 400 500 700 1000 1500 2000 2500 3000

Fout1 (Hz) 60.0 80.2 101 201.5 301.5 401.4 501.2 700.9 1000.3 1499.7 1999.1 2498.3 2997.7

Fout2 (Hz) 60.0 80.0 100.0 201.0 301.9 402.7 503.5 705.1 1007.5 1511.6 2015.8 2519.7 3023.9

Fout3 (Hz) 60.2 81.5 102.0 203.1 303.2 403.3 503.4 703.5 1003.7 1504.1 2004.7 2505.0 3005.3

The results reveal that the first voice is calibrated very well, the third fairly well, and the second is in need of a much better calibration. Calibration is a difficult procedure because it involves adjusting two interrelated variables: gain and offset. Listening at a particular frequency, changing either the gain or the offset will change the output frequency, so it is difficult to hear when both are right without repeatedly changing frequencies and readjusting until the result approaches the ideal. From these results, it appears that a smaller gain and higher offset might bring the second voice into better calibration. Lastly, the accuracy of the intervals for each voice was measured. These largely depended on the exact values of the resistors in the R30 bank. An A 440 was used as the test frequency, and the results are here compared to the correct frequencies:

33

Interval Unison Minor Third Major Third Perfect Fourth Diminished Fifth Perfect Fifth Minor Sixth Major Sixth Up One Octave Down One Octave

Ideal Freq (Hz) 440.0 528.0 550.0 586.7 622.3 660.0 704.0 33.3 880.0 220.0

Fout1 (Hz) 441.4 534.6 558.6 585.3 628.0 664.6 711.5 747.0 882.0 221.0

Fout2 (Hz) 443.0 538.1 562.2 592.5 630.2 669.4 716.9 755.0 888.8 221.1

Fout3 (Hz) 443.8 537.7 562.6 591.8 631.5 666.1 710.6 750.7 884.5 222.4

Figure 17

34

4.
4.1

Errors and Corrections


Filter Banks [Philip]
The filters were designed at the beginning of the project and a lot of time was

spent constructing them and testing them. They outputs could have been attenuated to be more even, but other than that, they did not cause any problems.

4.2

Envelope Follower / VCA [Uriel]


The original VCA design we used was incredibly noisy, and had distortions which

resembled exceeding the slew rate of an op-amp. We later learned that the voltage divider at the input was particularly important: too much signal would rail the OTA, too little signal would be noisy (and therefore useless in our project). Much more control was obtained by redesigning the current source. The other major problem was DC offset on the VCA outputs, which was narrowed down to an offset current at the OTA inputs. A potentiometer was installed on the non-inverting input of each CA3080 in order to adjust this noise down to zero. While the noise did not go down to zero, it was certainly lessened.

4.3

Harmonizer [Andrew]
Are the measured results musically significant? In a word, yes. While the

performance of the converters are very linear, and the results are close numerically, the differences are still enough for the output to sound out of tune. A trained listener can hear pitch differences down to a difference of 1Hz, and by the time the output deviates 20Hz from ideal as in some of the outputs of V-F converter number 2, the difference should be apparent to anyone. Subjectively, some of the difference is masked by the

35

inherent vibrato on any singers voice that ensures that the pitch is not constant to begin with. In any case, it is probably impossible to get results accurate to less than 1Hz, but better calibration would greatly improve performance, particularly of the second voice. The results also show that 1% precision resistors are not exact enough for the interval generators. Partly, it is because the ideal values are not always available (i.e. there is no 12.0k resistor in the 1% series, so 11.8k was used). Partly it is because a 1% variation of pitch is still several Hz and a noticeable change. Given more time to adjust and calibrate, the correct thing to do would be to add small trim resistors in series (or large resistors in parallel) with each of the R30 interval resistors. These trims would be somewhere on the order of 20-200? (or 1-10M) and would correct for the slight variations in each of the individual resistors. Another equally significant problem comes from the ripple present on the output of the F-V converter. Despite going through three low-pass filter stages, it is still significant at lower frequencies. In fact, due to the nature of the low-pass filter, the ripple gets worse as the frequency drops. This is a significant problem since the DC voltage also drops as the frequency drops, meaning the ripple as a portion of the total output goes up quadratically with decreasing frequency. The way this manifests itself at the output is by a beating sound caused by the interaction between the ripple at one frequency and the output of the V-F at a slightly different frequency. With the octave switch set to drop the pitch one octave, this also let to a spurious locking-in of the output pitch at to the input at low frequency rather than being an octave below as it should have been. Overall, the

36

ripple problem indicates that this circuit works better with higher pitches, and thus the device is probably better used with female voices. Extra low-pass filtering would eliminate some of the ripple, but the tradeoff would be an increased settling time for the DC voltage, which could not respond to sudden changes very quickly. Finding the middle ground between these two design goals is difficult, but in retrospect, we perhaps should have gone more towards the reduced ripple side. This could easily be accomplished by increasing C10, C11, and C12. Finally, the last remaining problem was in the frequency detection. Given the enormous variety of possible input waveforms, and the presence of ambient noise in the signal, the frequency detector would occasionally miss a cycle and fail to output the pulse it was supposed to. This led to a scratching, popping sound in the output of the voices that could be distracting. It might be worth experimenting with different frequency detection schemes to get a cleaner output.

5.

Conclusions [All]
The filters worked fairly well and the ringing from all the resonance was not

particularly noticeable. We had originally planned to build add a high pass and low pass filter to cover the rest of the spectrum, but did not quite have the time to design and build the four extra filters. Building 38 filters took a ridiculous amount of time and cost a lot of money to order the necessary components. The filter banks may have been overkill for the application. The VCAs seem to be more trouble than theyre worth. In the future, we would try to use newer OTAs such as the LM13700, which has a number of features to increase linearity, and hopefully decrease noise. Otherwise, a better system needs to be devised to

37

remove the DC current offset. It might be easier and better just to replace the VCAs altogether with analog multipliers, as that is their function anyway. Overall, the harmony section worked fairly well also, but there were a number of things that could have been done to improve its accuracy. Most of these just required a large amount of time devoted to very fine tweaking, which did not seem like time wellspent while we were still finalizing aspects of the design. A redesign of the frequency detector might result in better performance, although the design used here is already the third generation, and performs better than solutions based on heavy low-pass filtering, auto-level correction, and Schmitt triggers. The F-V and V-F converters, though, worked remarkably well, and the scheme for choosing intervals in a harmonically useful fashion was a success. The intervals can easily be tuned with trim resistors, but the basic concept was sound. The microphone preamp performed without a problem, as did the filters on the signal. The mixer also worked as expected. By and large, the block was a success, with the main required changes being minor tweaks of calibration. The only other problem was that the output waveforms, while intelligible, did not sound much like the singers voice even after being put through the vocoder. Some of this might be related to the performance of the vocoder, but it may also be that the output waves were too harmonically rich. A low-pass filter at the output of each voice would take care of that problem. The project was certainly very impressive, but temperamental. Some more work on this project might easily turn it from a lab to a sellable product. Unfortunately, the

38

market is probably saturated at this point by digital electronics that perform the same function at a fraction of the cost.

39

6.

Acknowledgements
We would like to thank Joe Sousa for helping us time and time again with the

bugs that plagued our design; Ron Roscoe for his supply of reference books, parts, and know-how; all the staff of the EECS lab desk, for giving us way too many breadboards and CA3080s; and finally, Rahul Agrawal and Cang Kim Truong for standing around telling us how cool our project is.

7.

References

Chamberlin, Hal. Musical Applications of Microprocessors. Hayden Books. 1985.

Lancaster, Don. Active Filter Cookbook. Synergetics Press, USA. 1975

Lenk, John D. Simplified Design of Filter Circuits. Butterworth-Heinemann. 1999

Hardware Random Bit Generator. <http://willware.net:8080/hw-rng.html>. 10 Dec 2003. (Appended)

40

8.

Appendices

Included in this section: Datasheet: LM331 Precision Voltage-to-Frequency Converter Datasheet: ADG408/ADG409 High Performance Analog Multiplexers Website: Hardware Random Bit Generator from http://willware.net:8080/hw-rng.html

41

You might also like