Been busy reseaching and planning what to do. The Phase-locked loop idea is an interestingone, something also mentioned to me by my lecturer. Although right now something that is still beyond my knowledge
Hi,
I hope my answer does not come too late. I have created some guitar synthesizers myself, using phase locked loop AND ramp-sample/hold, and have some schematics... somewhere. I have researched this a lot years ago, the schematics of the Roland GR-300, the Electro Harmonix Rackmount Guitar Synthesizer, the Moog patents, the frequency-to-voltage converters, etc.
Believe it or not, there is little information about this on the internet, since today everybody does the digital way.
Brace yourself, everything you needed to know about analog guitar synths and were afraid to ask!!
I'm assuming you are using a normal pickup, not a divided (hexaphonic) pickup. The building blocks are as follows:
GUITAR IN ---> COMPRESSION --> FUNDAMENTAL DETECTION ---> PERIOD/ZERO CROSSING DETECTION ---> PERIOD TO VOLTAGE ---> VOLTAGE processing
1. Compression: You need to "level out" the amplitude of the waveform so it's constant. This is easy.
2. Fundamental detection: You want to remove the harmonics and stay with the fundamental of the guitar. For this the mediocre way is a simple low pass filter. The good way is to use an adaptive filter that "locks" to the guitar note. I will find some schematics, they come from this guitar synth:
"Electro Harmonix Guitar Synth"
hammer.ampage.org
Download the schematics, lots to learn. BTW, the component values for the adaptive filter are wrong, and the pinout of the opamps in that section are wrong, that's why i need to find my notes. Also, this is a guitar synth that uses a PLL, that is its achiles heel.
3. Zero crossing detection: You want to find out when the sinewave crosses zero, or in other words, detect where a cycle begins and end. This is as simple as doing zero crossing detection, since you already have the fundamental filtered after step 2.
Observation: Step (2) introduces a time lag, some Moog patents exist for a period detector that does not require filtering out the fundamentals, with a corresponding speed increase. However, the time lag in (2) was of no consequence in my opinion.
The output of this step is a pulse whenever a cycle start.
4. Period to voltage... You can do it:
a. The bad way: Using a tachometer circuit (that is: use the pulses of step 3 to trigger a fixed-duration pulse, and add a low pass filter at the output), this will give you a voltage linearly proportional to frequency. THIS IS A BAD APPROACH, IS TOO SLOW. Sadly, almost all the "do it yourself guitar synth" circuits uses this approach.
b. The mediocre way: Use a PLL to "lock" to the frequency of the pulses, this will give you a voltage proportional to frequency. I'm not an expert in PLL, but the Electro Harmonix uses this scheme. The problem is the PLL filter used there: If you want fast detection, then the PLL should be quick acting, which in the case of this particular synthesizer, gave trembling pitch; if you smooth out the PLL filter you have steady, in-tune pitch but slow detection. The EH Guitar Synth uses a switch that puts the PLL filter in "fast mode" when the guitar string is plucked and then after about 20ms, it puts it in "slow mode" so the pitch stays steady...
... the problem is that this requires reliably detecting the start and stop of the notes and this is a problem onto itself.
Anyways, this gives you a voltage linearly dependent to the FREQUENCY of the fundamental.
c. The best way: Using a ramp-sample/hold circuit. You need a constant current source, and with this current source you charge a capacitor (the voltage ramps up linearly on the capacitor). With each pulse from step (3), you "reset" (discharge) the capacitor so it starts charging again, with the next pulse, you sample the voltage value (using a simple sample-hold), and this is a voltage linear to the PERIOD of the fundamental.
d. (The modern way --- count the period digitally and do the rest in the digital domain, midi, etc.) BORING...
5. Voltage processing:
If you have a voltage depending on the period, you have to convert it into a voltage depending of the frequency. For this you need an inverter (that is, a circuit that does the 1/x function). Such a circuit is not so easy to do since it needs temperature compensation or else the pitch will drift.
Anyway you finally get a voltage LINEARLY depending on the frequency. To drive normal analog synths you need to output a signal that is 1V per octave. Which means that it is not linearly dependent on the frequency...
So you need a log converter, who does the Log(x) function. This also needs temperature compensation.
The alternative is to create the syntesizer part yourself and use VCOs that take a linear voltage. This is what is done on the EH Guitar Synth.
The other alternative, if you use approach (4c) is to have sawtooth VCOs done using ramp-sample/hold circuits, and use the voltage obtained in (4c) as the "top limit" of the ramp, then change the slope of the ramp [and thus the frequency of the output waveform] by changing the charging current of the capacitor. With this, you can have many VCOs that can be tuned as you like [x octaves up, down, etc], and track perfectly and musically to your guitar. This is exactly what it's done in the Roland GR-300 (google it.)
The only problem is that the volume of your waveform VCOs will vary with frequency!! So you need to compress the output. This was done on the GR-300 using simple diodes as limiter.
A further problem if you go this route is that your opamps have to be perfectly linear over a wide scale of voltage to cover all the fretboard, otherwise the output will be out of tune at the highest part of the fretboard (high pitch = low period = low control voltage). For the GR300 this is not a problem since it treats each string independently (using a hexaphonic pickup), so the range that needs to be tracked is small.
VOILA!! Have fun.