![]() |
| Everything mounted together. Looks a bit Frankenstein-ish but it fits! |
![]() |
| Even the Juno filter, sandwiched between the voice card and the Moog/JP6 filter fits. I wonder how hot it will get though. |
![]() |
| A true beauty! |
![]() |
| Everything mounted together. Looks a bit Frankenstein-ish but it fits! |
![]() |
| Even the Juno filter, sandwiched between the voice card and the Moog/JP6 filter fits. I wonder how hot it will get though. |
![]() |
| A true beauty! |
Trying to breadboard a single cell of the JP6 filter. Here are my mods:
Errata:
R to -12V in cutoff CV input is 3.9R, should be 390k
op amp + and - are mixed up in cell input mixer
Modifications:
Skipping the part of reso generator that reverses CV, and leave out trimmers in reso circuit.
I inject resonance CV at reso gain 2 to bypass the inversion, and leave the reso bal unconnected. This makes reso CV go from 5 to 0 instead of 0 to 5. I use a 27k input resistor. (TODO: Why did I do that again? plot in simulation looks good at least. Probably what it was set to before removing the CV reversing and stuff in LTspice).
The cutoff CV mixer has an error (3.9R instead of 390k to gnd), so instead of using it i use the reso input mixer and a 330k to -12V on the input, still leaving balance floating. I then connect the output to a 20k trimmer, set at approx 6k (8k really, but in simulation it is 6k) and connect the output to cutoff track 2, bypassing the cutoff CV mixer.
Reso CV is set to 5V by using a resistor divider - 100k on top and 68k + 3k3 = 71k (should have been 71.4k).
Input to the cell: The input mixer is fucked up here too, I flipped it so + and - are mixed up. I use an external op amp instead, with a 33k feedback and a 100k input resistor. The output is fed to the in+ (pin 2) of the cell.
NB: SOMETHING IS MISSING HERE! pin 4 should be connected to pin 2. Anyway:
Now I can see that all three modes working - LP, BP and HP, though the input is weak and BP never really cuts off much. Next up is re-adding pin 4:
Aaaah, much better!
This time output at LP/BP/HP works. BP has a very soft cutoff slope but it DOES attenuate both above and below somewhat.
With 3.6k input with 5V max amplitude and cutoff CV at 0:
| HP outputs 7.1V, BP around 750mV, LP at -150mV |
With 100Hz input, cutoff at 5V:
| HP outputs -30mV, BP around 650mV and LP 7.6V |
| HP and LP are less, BP is at its max, which is 3.5V |
HP and LP outputs max out at almost the same level (7.1 to 7.6V) while BP is half of that. In my simulations it looks more like HP and LP are 5V max while BP is around 3.5V.
The fact that BP has a lower amplitude is to be expected. Looking at a simulation, we can see that the bandpass peak (purple) is where the HP (red) and LP (green) meet, as it is really just a combination of the two filters.
If we want to avoid a loudness drop when using BP, we can amplify the output slightly. In this case I've added a non-inverting op amp with a gain of 1 + 33k/100k = 1.33. The result is the blue line above and below.
An added bonus is that we can use the same input resistor (56k and 100k here) to the second cell (we could do this without the gain as well, it only leaves the BP at the low level). We can also tap all filter types after the mux and move the resistors to the mux output.
Next up:
Figure out if we should have the mix resistors before the cell 1 output mux or after, what gives the least amount of noise
See why we tap direct output after mux but before 100k res, shouldn't tapping be before the output resistors? or do we need to buffer the signal between? (Note: The JP6 uses this layout, with one 56k from HP and one from LP, and adds this to the 100k input, effectively using 156k input to the summer of cell 2).
Check output polarity from cell 1, including notch.
I'm testing the component based JP6 filter on a breadboard. I have some initial problems getting it to work, but then I realised that resonance is probably turned up way too high.
This made me take a look at how I generate the CV and how it affects the circuit.
This is the current circuit. The reason it is so large is that the resonance works backwards, feedback is needed to stop resonance rather than introduce it, so the CV is inverted from 0-5V to 0- -5V, then moved up 5V to get the correct response:
| CV (V) | I_abc (uA) | V_abc (V) | V_tran (V) |
| 0 | -126.0 | -13.38 | -12.11 |
| 1 | -101.7 | -13.39 | -12.37 |
| 2 | -77.0 | -13.40 | -12.6 |
| 3 | -52.0 | -13.42 | -12.9 |
| 4 | -27.5 | -13.46 | -13.18 |
| 5 | -2.7 | -13.58 | -13.55 |
| CV (V) | I_abc (uA) | V_abc (V) | V_tran (V) |
| 0 | 0 | -14.3 | -14.28 |
| 1 | -24.8 | -13.46 | -13.2 |
| 2 | -49.5 | -13.42 | -12.9 |
| 3 | -74.3 | -13.40 | -12.7 |
| 4 | -99.0 | -13.40 | -12.4 |
| 5 | -123.8 | -13.38 | -12.14 |
It is interesting to note that the max current is so low (125-ish uA). It probably means that no change to the R_abc (which is 2 x 10k now) when switching to 12V supplies, though that has to be tested.
It's time to hook up the FM inputs on the low pass filter.
I have an option to use both linear and exponential FM.
The most common option is exponential (v/oct) as this is readily available by mixing oscillator output with filter cutoff CV.
I found a nice post earlier about the use of both types but cannot find it right now, but here is a thread about linear FM at least:
https://modwiggler.com/forum/viewtopic.php?t=119415
FM off
I did initially design the FM input with two SPST (on/off) switches. This allows me to disconnect the input completely, as I was unsure how far down I could get the VCA to go.
Now I've done some calculations:
At 0V, the VCA has -80dB attenuation. That means that a 5V input signal would give a 0.5mV output.
If we've set the modulation to 1V/octave, 1 semitone would be 83.3mV, in which case 0.5mV = 0.6 cent. The input is bipolar (+/-5V) so the total change is 1.2cents.
For VCO tuning/tracking, I've assumed that a relative pitch change of about 3cent is at the limit of human hearing - and that's for VCOs. I think it is probably quite safe to use the VCA as a switch in this case.
That leaves me with two options
- either I use a DG413 as an SPDT switch, switching between lin and log - that saves me a single digital control signal.
- or I use only exponential FM, in which case I don't need a switch at all.
I am currently breadboarding this. Both lin and exp FM works fine, but +/-5V linear FM seems to saturate something so the wave is cut off in some way. I will do a recording of it and add soon. Then I have to simulate the same to see what is actually going on. If I cannot make it work well I will just go for an exponential FM only.
| Filter out: DCO1 is filtered, DCO2 modulates filter cutoff. Before red line: Linear FM, after: Exponential (v/oct) FM |
| Self resonance and exponential FM settings |
| Self resonancce and exponential FM output |
| Self resonance and linear FM output |
Observations
Lin FM makes the filter "flatline". when the CV (DCO2) is low enough, the filter reaches a zero Hz cutoff, but the CV still goes lower, meaning the cutoff stays at 0Hz for some time - the filter does not support "through zero" modulation.
PS: The output flatlines when input CV is positive, this is because the reference current is negative and any positive cv "negates" the reference current. Once the sum reaches 0 we cannot go any higher and the output flatlines.
| Linear FM: When DCO2 is above a certain level, the output "flatlines", presumably because cutoff reaches 0Hz before DCO2 reaches its peak. |
![]() |
| Cutoff CV: 4.5V, Lin FM CV: +/-5V |
![]() |
| Cutoff CV: 0V, Lin FM CV: +/-5V, but this time we use a 50k lin CV input resistor |
Calculations
To get a better feeling of the lin FM range I've done some simulations on the filter circuit. Here is the Frequency CV vs cutoff frequency vs I_control vs A/Hz (through a single cell):
1.0V: 10Hz 259nA 25.9nA/Hz
1.5V: 37Hz 1.03uA 27.8nA/Hz
2.0V: 150Hz 4.18uA 27.8nA/Hz
2.5V: 604Hz 16.4uA 27.15nA/Hz
3.0V: 2.3kHz 63.6uA 27.7nA/Hz
3.5V: 8.2kHz 223uA 27.2nA/Hz
4.0V: 22.4kHz 639uA 28.5nA/Hz
4.5V: 42kHz 1.3mA 31.0nA/Hz
1.3mA is the highest possible value before we reach a flat top.
If we disregard the first and the last two (>= 4.0V) as we already know that they are not tracking that well, we get an average of 27.5nA/Hz
From my previous work I have that:
R_linfm is often selected so that I_linfm = I_ref when linfm CV is at its highest (often 5 or 10V), which means that the frequency can be modulated by +/- 100% (the reference current will be between
This is only true as long as we do not use through zero modulation.
Also, looking at the Yusynth VCO with its 10x FM, this is clearly not what everyone does.
What are others doing. VCOs:
Rene Schmitz:
https://www.schmitzbits.de/vco2.html
VCO 1-3: 15V / 1M ref current, 5V / 220k lin FM (15uA vs 23uA, ca 1.5x mod)
VCO 4 (TZFM) 15V / 470k ref current, 5V / 220k lin FM (32uA vs 23uA, or 0.72x mod)
Yusynth VCO
https://yusynth.net/Modular/EN/VCO/index.html
5V / 1M ref current, 5V / 100k lin FM (5uA vs 50uA, or 10x mod)
CEM3340
Pin 13 on the CEM3340 is the reference current summer. The datasheet has a 1.5M resistor to 15V and a 1M + 0.1uF cap to lin FM. In the last paragraph of the datasheet it says "The value of the input resistor should be selected so that the maximum peak to peak input signal produces a plus and minus current equal to the reference current". This is exactly what I have written in my own research on VCOs, so I guess this is where I got it from (?).
15 / 1.5M ref current, 5V / 1M lin FM (10uA vs 5uA, or 0.5x mod. Or, could it be they expected a +/-10V lin FM CV? In that case they follow their own doubling rule.
Ian Fritz
https://ijfritz.byethost4.com/sy_cir2.htm
6.9V / 690k ref current, 5V / 100k lin FM (10uA vs 50uA, or 5x mod)
https://ijfritz.byethost4.com/sy_cir16_teezer.htm
Hard to tell as lin FM is done differently
MFOS
https://hackaday.io/project/47158/gallery#ecedc0e5555ada3907345e3c0c4cda3d
A bit hard to tell, lin FM enters through the middle of a voltage divider??
12V / 1M ref current, 5V / (1M || 100k) lin FM (1M til summer)
JJ Clark
https://electro-music.com/wiki/pmwiki.php?n=Schematics.XR2207VCOByProfessorJamesJClark
12V / 68k ref current (!), 5V / 10k lin FM (176uA vs 500uA, or 2.8x mod)
Thomas Henry
https://electro-music.com/wiki/pmwiki.php?n=Schematics.ACD4046BasedVCOByThomasHenry
15V/1.5M ref current, 5V / 100k lin FM (with AC/DC switch) (10uA vs 50uA, or 5x mod)
Lots of VCOs here:
https://electro-music.com/wiki/pmwiki.php?n=Category.VCO
Ken Stone CGS48 VCO and VCF-ish thingie with built in VCO
https://electro-music.com/wiki/pmwiki.php?n=Schematics.Bi-N-TicFilterByKenStone
https://sdiy.info/wiki/CGS_VCO
15V/150k ref current, 5V/100k lin FM (100uA vs 50uA, or 0.5x mod)
Linear FM and "amplitude" in Hz
As described in more detail here, increasing the base frequency also increases the "amplitude" of the modulation (if you think about the FM as a bipolar signal). The higher you get the larger the change is.
So, what to choose
That's the hard question, isn't it... Right now I'm having a hard time understanding why anything more than a 0-to-doubling of the reference current is used on a non-through-zero FM VCO/VCF. Once we go lower than 0 the average frequency starts to drop and the VCO goes flat. I guess that's an effect as well, but why do we want it? And why on earth would we want 10x the input as is the case on the Yusynth VCO? Hmm.... I guess the only way of finding out would be a proper test.
Update: After a little thinking I think (...) I will try this: Select an R_linfm that gives a I_linfm that is 4x the reference current. That way I can just divide the CV by four (= shift right 2) to get an I_linfm equal to I_ref, meaning that the output of the exponential divider will never be below 0.
Juno filter FM
Incidently, for the juno filter with a 10uA I_ref, this whould mean a 125k resistor. My current design uses a 120k, which gives a 41.7uA max, or 10.4uA after division by 4. This is very close to the ideal. One could argue that a 130k would be better, making us not quite reach I_ref, but again, it's better to test. It is also possible that a 5V input to the VCAs does not give exactly a unity gain, so 120k, being a standard resistor value, may be good enough anyway.
VCO lin FM
As for the VCO, we have a slight issue. My current design expected a 15V input using a 1.5M resistor, giving a 10uA I_ref. Now, hopefully, I'll be able to tune away the difference, but selecting the proper R_linfm depends on whether I match it with the current design or with a possible updated/corrected design. Anyway, here are the two options:
For 10uA, I could use the same 120k or 130k resistor as for the juno VCF.
For 12V / 1.5M = 8uA i will need 32uA. The correct value would be 156k. The closest standard value is 150k which gives 33.3uA - again, a little high (3.5% vs 4% for the juno filter) but it may work anyway.
Jupiter 6 filter lin FM
This uses the same expo converter as the juno filter. Right now they both use 15V and 1.5M R_ref, giving an I_ref of 10uA. As I've already redone the Juno filter for 12V with a 1.2M R_ref I will probably do the same with the JP6 version. That means that I can use a 120-130k R_linfm here as well.
Moog filter lin FM
The current 15V version has a 1M R_ref, giving I_ref = 15V / 1MOhm = 15uA
If we switch to an 800k version (or 820k perhaps) for the 12V version, we will keep the I_ref the same.
I_linfm would then be 60uA and we would need an 83.3k resistor.
If we continue using the 1M R_ref, I_ref would be 12uA. I_linfm would be 48uA and we would need a 104k resistor
![]() |
| 4ch mixer and VCA, with room for v2164 or similar |
![]() |
| Top: Waveshaper. Bottom: Ring modulator and 4ch CV buffer |
![]() |
| VCO, DCO, two versions of S&H for CV buffering, DAC. |
![]() |
| Input (green) vs output (blue). 33k input resistor, 50k output pot |
![]() |
| CV vs I_abc for one resonance OTA, original Jupiter 6 circuit. With a linear response, a similar CV curve must be calulated in software. |
![]() |
| Zero resonance without resistor |
![]() |
| Zero resonance with resistor |
![]() |
| Max resonance without resistor, same low frequency gain as no resonance |
![]() |
| Max resonance with resistor. gain has fallen by 24dB |