Showing posts with label CEM3340. Show all posts
Showing posts with label CEM3340. Show all posts

Friday, August 1, 2025

Improved CV inputs for VCO

As mentioned earlier, I'm not satisfied with how the VCO CVs work. Noise on the CV probably has a higher effect on the pitch than necessary. Here are my current thoughts on how to improve this:

First of all, move all summing resistors to the VCO board. This requires an additional pin for separate pitch and exponential FM input.

Second, reduce the Pitch CV resistor from 39k to 100k

Third, add a second pitch CV, also with 100k input, but make sure the CV is inverted (and 5V added to it) after it is generated. In this case, any noise present on Pitch CV 1, will be negated by the same noise on Pitch CV 2. Again, this requires an additional pin on the VCO board.

I'm pretty sure adding two extra pins here are possible, especially when removing the two resistors to the left of the top square (moving them to the VCO board).

 

The two 15p CV headers on the mainboard and the CV generation board can be replaced by 32 pin ones, like this female one:

https://jlcpcb.com/partdetail/XKBConnection-X6511FV_32C85D32/C2883749 


NB:

I am not sure how this is affected by noise on the ground plane, and how the VCO is affected by ground plane noise - because, if the noise is present at the ground plane (as seen by the VCO) but not on the CV generation board, the CV value will fluctuate, and vice versa. If it is present both places, I'd assume it would cancel out, but I'm really not sure about this.

Also, when adding 5V to Pitch CV 2, I need to think about how noise would affect this as well.  

Cem3340 four trimmer tuning

I can’t remember if I’ve written about this before, but there is apparently a way of tuning the CEM3340 (and AS3340) that is done in a single go, without the need to go back and forth between different potmeters. The downside is that it requires four trimmers instead of just two. Also, I don’t know exactly how it reacts to temperature changes.

The procedure is described in detail (with explanation of how it works) here: 

https://cabintechglobal.com/tune3340

Wednesday, April 24, 2024

VCO testing again

I need to test the range of the CEM3340 based VCO with various pots at their min/max and also replaced with resistors or just leftout.

The pots in question is

- Osc scale trimmer, located on the board

- HF tracking trimmer, external. The Prophet 5 does not use this

- The 500k CV input offset trimmer. The reference design uses a 360k here, the P5 uses a 357k.

 

Now, for some reason there is a lot of noise on the board outputs (the CEM itself is clean), but even so I am able to measure the frequencies.

Update: The noise is still there when switching to a different VCO PCB.

 

For all tests, unless specified, I'm running with

360k resistor instead of 500k pot

HF trim center (5k/5k)

27k CV input, meaning the CV should span 18.5 octaves if perfectly tuned (and if that's supported by the VCO, which it isn't).

A cold VCO, i.e. turned on briefly to measure but otherwise off. 

PS: My resistors are to 12V, not 15V. Also, I have a 1M5 hardwired to -12V so basically the same as the Prophet 5 (though that uses -15V)


Test 1

Osc scale trimmer (10k) fully counter clockwise

Max period: 264ms (0V): 3.79Hz

Min period: 28.4uS (2.8V): 35.2kHz

Test 2

Osc scale trimmer aprox center (so around 29k to -5 from pin 1)

Max period: 492ms (0V): 2.03Hz

Min period: 28.2uS (3.6V): 35.36kHz

Test 3

Osc scale trimmer fully clockwise: (10k top, 0k bottom, so 24k from pin1 to -5V)

Max period: 650ms (0V): 1.54Hz

Min period: 28.4uS (4.5V): 35.2kHz

Test 4

Osc scale trimmer fully counter clockwise

HF trim trimmer fully counter clockwise (0k left to summer, 10k right to HF tracking)

264ms / 3.79Hz

28.4uS at  2.78V CV

Test 5

Osc scale trimmer fully counter clockwise

HF trim trimmer fully clockwise (10k left to summer, 0k right to HF tracking)

265mS / 3.79Hz

28.7uS at 2.6V: 34.8kHz

Test 6

Osc scale trimmer fully clockwise

HF trim trimmer fully counter clockwise (10k left to summer, 0k right to HF tracking)

649mS / 1.54Hz

30uS at 4.8V: 33.3kHz

Test 7

Osc scale trimmer fully clockwise

HF trim trimmer fully clockwise (10k left to summer, 0k right to HF tracking)

656mS / 1.54Hz

31.1uS at 4.1V, not possible to get lower: 32.2kHz

Test 8

Osc scale trimmer approx center

HF input directly to GND

457mS / 2.19Hz

 28.7uS at 3.8V, 28.4uS at 5V: 34.8kHz

Test 9

Osc scale trimmer fully clockwise

HF input directly to GND

VCO has been on for a bit

4V gives 20.8kHz 

Then

51.8uS = 19.3kHz (not sure if I changed the CV so not very informative)

29.8uS is max = 33.5kHz

 

Test 10+

After staying on for at least 30min

656mS / 1.52Hz

29.2uS max

4V gives 52.27uS so 19.1kHz

Little change from intitial, cold masurements, still tunable over full range.

Then fully counter clockwise osc scale trimmer: 

263mS, exact same as with cold VCO.

 

Conclusion

I may just go without HF tracking (connect to GND) and shorting bottom two pins of Osc scale pot - or use a 10k for higher precision tuning at the sacrifice of lowest possible note. All options seem to allow for plenty of digital tuning.

 

Update: Resistor instead of Osc scale trimmer

I did some measurements over the full range of the oscillator, first with the trimmer at its maximums, then with three different resistor values. For each, I calculated an "expected frequency", setting the measured frequency closest to 440Hz as 0, then I calculated an error as 100*(expected - measured freq) / expected.

Error with pot at extremes (blue and red) and then with a 3.9k resistor (breakdowns are when we reach the max VCO frequency of approx 35kHz)

Error using three different resistors

 

The best result was reached using a 2.7k resistor for a total of 26.7k between input and -5V. As the graph shows, we are within around 5% of the correct value and it fluctuates around 0, so I don't think we can get any closer. All measurements are done by manually setting the CV and measuring ms as the distance between two tops in Logic2, so there is a significant source of error there as well.

What I DONT know is if this is if this is consistent between VCO chips and VCO PCBs, so perhaps its best to keep the pot. If I decide to redo the PCB though, I think I'll go with a fixed resistor here.

Update: Double capacitance

I had forgotten that the VCO PCB comes with an on-board cap, so the external cap is not necessary. This means that all measurements above are for a 2nF cap instead of a 1nF, meaning the frequencies measured are half of what they will be with a 1nF cap (but not sure what the max frequency will be)

With a new AS3340 and only one 1nF cap, the lowest frequency is 185.3ms = 5.4Hz. Max is 15.2uS = 65.79kHz. The tracking with a 2k7 resistor is similar to the 2nF version and also similar to that of the other AS3340 which is good. There is a difference of around 3% (2Hz vs 2.7Hz) for the lowest frequency between the two devices though.

The tracking is similar, 1uF may even be a tad better - but the frequency range is different (2Hz to 32kHz with 2uF, 5.4Hz to 66kHz with 1nF)

Range

Both VCOs top out at 3.25V CV.

With a 2nF cap the range is 2 to 32kHz. The bottom is 2-3 octaves lower than necessary unless the VCO is used as an LFO.

With a 1nF cap the range is instead 5.4Hz to 65kHz which is at least one octave more than necessary on the top of the range.

The higher the range of frequencies covered by the CV, the less accurate the CV will be. Noise will also affect the CV more. Thus, we should try to keep the CV within the usefull range while still allowing room for trimming.

Since the lower range is at 0V CV, we'd have to mix in an offset to rise it. As for the top, we can replace the 25k input (which gives a theoretical range of 20 octaves) with a smaller one.

Let's say we want a useable range from 20Hz to 20kHz. And then we would like an additional octave at top and bottom for tuning. Thats 10 usable octaves plus 2 for tuning. 

With a 100k 1V/oct summing point we get 10uA per octave. 12 octaves needs 120uA, and to get this from a 5V we need a 5V / 120uA = 41.67kOhm resistor. Using a 39k resistor gives us 128uA (or 12.8 octaves). 33k gives 151uA (or 15.1 octaves).

Either of these may be fine, it all depends on how much the VCO drifts.

A quick test with a 39k resistor gives a range of 5.4Hz to 38Hz as expected. 

Adding a 470k resistor between a 5V reference and the CV summing point rises the bottom to 11.5Hz and puts the top at 66kHz. I think this is a good compromise.

Update: My reference voltage is 2.5V, not 5V, so using a 270k resistor instead is better.

Sync

Connecting a function generator to the VCO sync inputs, I got the following:

Hard sync is only triggered on fast falling edges. This means that the input must either be a pulse or a rising saw. Double check what the DCO outputs!

Sync is triggered on the falling edge of the input square wave

 

CEM Hard sync

expected input (bottom) and effect on saw wave (top)

CEM Hard sync is currently not working very well, but I found this post http://atosynth.blogspot.com/search/label/VCO saying I had the same problem earlier and that adding a 1nF cap in series with the input may fix things. Anyway, my experience is this:

For positive going sync pulses (with PWM making the positive going part 10%), the "neutral"/ 0V part must be less than -0.66V (which is eerily similar to one diode drop). 

Top is triangle output, the small dips are the classic CEM hard sync effect of positive going pulses. Zero must be around -0.7V
 

If I drop the lower level to less than -1.63V it stops working again. But - if I reverse the pulse so the 10% part is the one dropping, and set the MAX value to <-0.66V, it starts working as it should again.

Negative going pulses, zero must still be about -0.7V negative for things to work

Adding a 1nF input cap to the cem hardsync input

That fixed everything, now it looks like this, given a square wave input




Frequency modulation

Exponential FM through a 100k resistor works as expected, giving a +/-5 octave FM if VCO is trimmed properly.

Exponential FM

 

Linear FM did not work out of the box. If input is < -1V through a 120k resistor the output flatlines, I had this in my design and it does not work. So what DOES work?

Linear FM, VCO flatlines when FM input is too low

 

About linear FM in the CEM3340 manual: 

The input resistor should be selected to produce a current equal to +/- the reference current when the max input signal is present. 

The reference current is set using R_r. In the datasheet, the reference current is 15V / 1M5, or 10uA. Since I'm still using a 1M5 resistor but elected to use a 12V supply instead, I have ended up with a 12V/1M5 = 8uA reference current.

R_r is the reference-setting resistor

 

In the original circuit, the linear FM input resistor is set to 1M. To get a +/-10uV input here would mean the input would have to be +/-10V.

For my oscillator, the linear FM input will be max +/-5V, and I need to match a 8uA current. U/I, or 5V / 8uA = 625kOhm, which means I should use a 470k and a 150k resistor in series.

Linear FM with a 620k input resistor works fine.

 

One more thing - I want to be able to do linear modulation with CV. I therefore have to sum the input before 620kOhm input. Also, the CV is 0 to 5V when it should really be -5 to 5V. Thus, I should set CV gain to 2 and subtract 5V to center it. But the 100nF cap at the lin FM will filter out any DC component, so centering does not do anything. Instead, the CV from the CV generator should stay at 2.5V when not in use. It must also be amplified to 0-10V. That way it stays at 5V when 'idle' and can drop by 5V when in use.

PS: Slow moving lin FM will not be possible.
PPS: Centering the CV won't do any harm, it just won't do any good either, except keeping the lin FM input a bit further away from the rails when summing with another input.

Also - If I use a normal inverting summer, the CV will be reversed. This can be fixed digitally. The analog input will also be inverted, but I don't think that's an issue.

Noise issue

The noise is present on the frequency CV as well as on the output



The CEM saw output is completely clean, so the noise is introduced later

The same noise is present on the -5V reference voltage, with an total offset of around 25mV.

The noise on the -5V line is not affected by the oscillator frequency

The noise on the 

Changing the reference op amp did not change anything

Connecting the scope to the output through a 1k resistor has no effect.

The noise is 80kHz

Buffering the output does not change anything.

The noise is present on the CV even when not connected.

The noise is not present on the 5V reference, but it is present on the -5V/Vee input. Replacing the inverting op amp does not change anything:


When removing the VCO PCB from the breadboard, the -5V stabilizes and the noise disappears from the CV:


Something weird is going on. While tweaking the frequency CV, for a brief moment, the noise disappeared. This happened a couple of times. At the same time, the CV has stopped working after I put the PCB in the wrong position on the breadboard. Very strange.

Oh, but now something happened. Instead of tapping -5V directly from the inverting op amp, I buffered the voltage in a second op amp. Now the noise is gone! (Offset is still wrong though. Perhaps the CEM wave outputs are too low when not running from 15V?).


CV input seems dead though. I need to try a different AS3340 chip but I can't find them...

Noooo! The noise is back! But unplugging and plugging back the -5V made it go away again. Something is ringing.

But when moving the probe from triangle to saw output, noise came back. 

Ooh, touching the summing point of the 5 to -5V inverter op amp makes the noise come back (touching the other side of the feedback resistor doesn't.

I think that, in any case, I should reconsider using an op amp for the negative supply here!!! I'm actually embarrassed I ever did.

Wave amplitude and centering

The output from the CEM is 0 to 8V for saw and 0 to 4V for triangle:


The datasheet says 0-10V for saw and 0 to 5V for triangle. In other words, using +12V instead of +15V has reduced the amplitude by 20%, which screws up my centering and amplification. D'oh.

The output from the pcb is -3 to 5V for saw and triangle, -4.4 to 4.8V for square. Unfortunately, since we're using the 0-crossing of the triangle for pulse width generation, the pulse width is also wrong.


Fixing it:

- Ok with positive summer but must have high input impedance. Same when using saw for pwm


Running the CEM3340 from +/-12V instead of +12/-5V

The CEM3340 datasheet uses a 820Ohm resistor from pin 3 to -15V. This works with my version as well (and the hard sync transistor may be connected to -12V instead of -5V without any issues).

However, I had a hard time getting the oscillator to track - I increased the 2k7 resistor on input 1 all the way to 22k (=22k+24k total), and while this made things better, I just couldn't get back to the 1V/oct expected. To stop wasting time I've decided to go back and use a 79L05 to generate -5V on the PCB itself.

However - this gave an unexpected error. Without a 100nF cap on the 79L05 output, the CEM just would not start oscillating!

With -5V from an inverting op amp, it works:

Red is saw out, orange is -5V from op amp

 

With a 79L05 without a cap on the output, the CEM3340 just doesn't start oscillating:

Red is saw out, orange is -5V directly from 79L05 (without a 100nF cap to gnd)

Adding the cap makes the CEM3340 start as it should

Red is saw out, orange is -5V directly from 79L05 (WITH a 100nF cap to gnd)

Final values

After a lot of measuring I've ended up with the following values:

- 5V negative PSU (79L05)

- 39k CV input resistor 

- 2.7k + 24k tracking resistors (Though a pot may still be a good thing)

- 270k to 12V pitch offset resistor


With these params I'm able to get 12Hz to 20kHz, 20kHz is at a little more than 4V CV so still room for tuning.

I tested two different AS3340s, and they differ slightly in both tracking and base note (CV=0) so it may still be necessary to use a trimmer in place of the 2k7. 

Tracking is pretty similar

Frequency is fairly even too

Actual values


Tracking with a 25k CV input resistor, 0.25V gives almost exactly 2 x frequency, meaning 1V/octave at 100k is pretty accurate.

Tuesday, March 7, 2023

Filter FM and a dash of VCO linear FM research

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.





Some measurements of linear FM CV vs I_abc

I_ref without any modulation is -12V / 1.2MOhm = -10uA (NB: mislabeled as -15V in captures)

With a +/-5V CV and a 120k input resistor, we will get 5V/120kOhm = 41.7uA, or approximately +/-4x the original I_ref. But since we cannot use an I_ref > 0, we get a flat line when the input from the linear FM CV reaches +10uA.


Cutoff CV: 0V, Lin FM CV: +/-5V


Cutoff CV: 2.5V, Lin FM CV: +/-5V


Cutoff CV: 3.5V, Lin FM CV: +/-5V


Cutoff CV: 4.5V, Lin FM CV: +/-5V


In my simulation I have written that we should use an input resistor that is approximately 10x the one used for the reference current, as that is what Yusynth.net uses for his VCO. That is not true.

Yusynth generates his reference current from a 5V source through a 1M resistor, giving a reference current of 5uA. For the linear FM input, he uses a 100k resistor, so a +/-5V input gives a +/-50uA output, which is 10x the normal reference current.

I, on the other hand, has used a CV that gives 4x reference current.


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  0V and 2 * I_ref).

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


Sunday, November 6, 2022

Wavemixing and loudness

When designing the continuous wavemixer, I thought a bit about the fact that as you turn the dial, the (perceived) loudness of the output changes. As the number of harmonics in the signal changes, from none with the sine wave, to “all” in the square wave, the output sounds progressively louder even if the signal amplitude is the same.

This is most pronounced when going from sine to saw, but triangle to saw also has a noticeable difference, so I’ve contemplated changing the input mix to compensate for this. As the cross fade is computer controlled, I could also compensate in the source mix vca, which is good since it can be done after the hardware has been made.


When studying “off the shelf” VCO chips with built-in waveshapers, I noticed that the different wave outputs indeed have different amplitudes. I have not been sure if this is just a byproduct of how the waves are generated in hardware, or actually a design feature.


Today I read the data sheet for the AS3394 (a CEM3394 clone) because I was curious about building a simpler synth voice, and noticed that it has a built in waveform mixer/selector. And in the text, it is clearly stated that the waveforms have different amplitudes to keep the loudness the same. Saw is 27% larger than triangle, and square is 27% larger than square. 


Unfortunately, I cannot see the same numbers in the waveform plots on page 4, but it shows that triangle output is 50mV, saw is 45mV and square is 30mV. Now, 27% larger than 30 is 38, and 27% larger than 38 is 48.4, so we are very close to the real value for square, but saw does not make sense. However, the saw output on pin 9 is stated as 45mV as well, so this could just be a copy/paste error. The 27% text is lifted straight from the CEM data sheet which does not have a similar plot so it’s hard to tell if the original text is wrong or if the plot is wrong without measuring. I have bought an AS3394 so maybe I’ll get around to checking it sometime.


CEM3340


Tri: 0-5v

Saw: 0-10v

Square: 0-12v


Meaning square is 20% larger than saw, but saw is 100 larger than tri. Also, they are not centred, meaning they should be centred using a capacitor (or with separate centring circuitry - caps mess with pulses, they won’t be centred around 0. Not uncommon in real designs though, and something that will happen in the filter anyways, one just need to take it into account when mixing several sources to prevent clipping).


SSI2130


All outputs are 0-2.5V, though pulse goes slightly below 0 (-34mV)



For more on the waves, see:


Tri:


https://en.m.wikipedia.org/wiki/Triangle_wave


Saw:


https://en.m.wikipedia.org/wiki/Sawtooth_wave


Square:


wikipedia.orghttps://en.m.wikipedia.org › wikiSquare wave - Wikipedia

Saturday, August 22, 2020

VCO retesting and more detailed sync tests

 I retested the PW on my VCO and discovered that I had forgotten to ground two points. After fixing this, my own PWM works fine without pitch dropping.

I also did a more thorough test of various sync modes:


CEM Hard sync

- Datasheet says to sync against pulses, 1volt minimum, 3v maximum

In practice in my circuit

- Needs 1nF input cap

- Square wave with 50/50 duty cycle, +/-5v works fine.

- Saw wave, rising +/-5v works but only gives half sync

- Saw wave, falling +/-5v works but only gives the other half sync, and weird (but cool) behaviour when synced oscillator frequency is higher than master.

- Amplitude and offset of sync signal does not affect it.

- Strongly affected by PW, not in a good way


Conventional HS

- Datasheet says to use -negative pulses only, 8-10V

In practice in my circuit

- Saw wave, rising, +/-5v works. Falling does not work

- Square wave with 50/50 duty cycle, +/-5v works just like saw wave (but saw wave has a slight clip on top)

- Square wave with other duty cycle than 50% does not work well.    

- Not affected by offset

- Affected by amplitude, +/-5v works best

- Strongly affected by PW, not in a good way


CEM Soft sync

- Datasheet says to use negative pulses, max 5V

In practice in my circuit

- Needs 1nF input cap

- Square wave with 50/50 duty cycle, +/-5v works fine

- Saw wave, +/-5v, rising and falling works fine and sound the same, has a darker tone than square wave???

- Strongly affected by PW, not in a good way


Sync circuit conclusion

- I think I should build at least the prototype voice card with selectable saw, inverse saw or square wave input. 

- All waves should be +/-5v

- Waves should be tapped pre-VCA/mixer. Square should have its own square wave generator that is unaffected by PW and pulse VCA.

- I should give the option to switch between all three modes - to see how it sounds in practice

- I seem to remember that there was talk about constant frequency offset vs constant pitch offset in syncs, maybe worth investigating (but is a software issue, not hw).

Wednesday, July 8, 2020

VCO testing

I've tested my CEM3340 VCO with waveshaper. It works fairly well. It has one major flaw:

Triangle frequency drops when changing pw from 50/50 to 90/10. This was expected for the Cem PWM, but it happens, and is even more pronounced, with my own pwm! I have tried buffering the supply lines (+/-15v) but it doesn't help

In general it is extremely sensitive to voltage changes, so my breadboard isn't exactly the ideal test platform. But it is annoying none the less.

Other than that:

  • All waveforms work fine
  • Linear FM works fine
  • Hard sync works fine
  • Cem Hard Sync works fine, but only with a 1nF cap in series with the input signal. Normal hard sync works without this (prob. because it already has a 220pF series cap) but also works WITH.


Saw wave, CEM Hard sync

Saw wave, normal hard sync

Saw wave, CEM Soft sync? Doesn't seem to work very well, not sure how it is supposed to work really (noone seems to know :-D)

Triangle wave, CEM Hard sync


Triangle wave, normal hard sync


Triangle wave, CEM Soft sync. Again, it looks like CEM hard sync. Not sure what to expect.



Sunday, May 24, 2020

Both orders from JLCPCB has arrived!

Finally, after waiting for over two months, the second order from JLCPCB arrived yesterday. I now have loads of circuits to test:

- JP6-style SVF
- Juno-style OTA filter
- Moog-style ladder filter (but this requires some soldering)
- 4ch mixer
- 4 way VCA
- Three types of CV/sample and hold
- Noise
- VCO, CEM3340 w/waveshaper
- DCO
- Waveshaper
- Led ring

The quality is overall very good, though I have found at least one solder bridge and and one of the led rings appear to have been slightly reworked (oh, and I've already broken a led, but that was my own mistake).

Some pics:




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.