Oscilloplasm - complex VCO pair

Earthside communication channel for 6U format devices

Moderators: Kent, slow_riot

Post Reply
slow_riot
Super Deluxe Wiggler
Posts: 4002
Joined: Tue Jun 30, 2009 8:58 pm
Location: uk

Post by slow_riot » Mon Sep 14, 2015 11:04 pm

With the Divide and Mutate controls, I had the choice to make them respond between -10V and +10V, or lock out the negative ranges to give greater attention to a dedicated set of harmonics. I am going with +/-10V.

I haven't mapped out exactly what harmonics are available, but the waveform curves are just gorgeous, and should respond quite uniquely to analogue controls. Compared to competing modules, the ability to control specific harmonics is not so great, but the range will go well into very high partials, like 20-30.

I did drop out the through zero behaviour though, too much added complexity and not enough reason to justify it.

(edit! through zero is back.. :) )
Last edited by slow_riot on Thu Sep 17, 2015 8:30 am, edited 1 time in total.

slow_riot
Super Deluxe Wiggler
Posts: 4002
Joined: Tue Jun 30, 2009 8:58 pm
Location: uk

Post by slow_riot » Wed Sep 16, 2015 10:06 am

The primary oscillator is made with a classic state variable feedback loop that can be found in many filters and sine oscillators, and to give the variable harmonics it needs to be controlled with another value which is generated by a saw.

A large part of my work has been to synchronize these 2 independent parts that make up the primary osc, as if they drift apart the whole balance is ruined. Out of all the possibilities, the most practical option is to use a reset to a known value at the singularity of the main state variable loop.

However there seems to be some problem settings where no matter how much I reduce errors the oscillator falls out of shape, and then the resetting action does not hold true, and instead acts to damp out the energy of the oscillation. It would eventually build back up, but it was the main worry in the back of my mind about the module. Luckily for every problem analogue has a (relatively!) easy solution. A peak detector circuit now works out whether the oscillator is getting into trouble, and if it does it turns off the resetting action until the oscillator is stable again.

User avatar
jdkee
Wiggling with Experience
Posts: 297
Joined: Sat Nov 08, 2014 3:25 pm
Location: Chicago

Post by jdkee » Tue Oct 06, 2015 10:49 pm

Any sound demos yet? Understandable if its not ready yet.

slow_riot
Super Deluxe Wiggler
Posts: 4002
Joined: Tue Jun 30, 2009 8:58 pm
Location: uk

Post by slow_riot » Tue Oct 06, 2015 11:07 pm

Hi Justin, sorry for the delays etc! Unfortunately I've had back problems that has kept me off the bench (for the time being).

The good news is that I've finally got to the point where I am extremely happy with the design and manufacture is slowly becoming a reality.

I'll get my iron out and dust off my soundcard hopefully with results in a week to a fortnight.

Thanks for your interest!

I had a bit of a think about follow up ideas recently. My next section of work is going to focus on hyperbolic partial differential equations which describe the behaviour of waves, strings and membranes. The motivation is to explore resonance and waveform modification.

It is almost certain to be bantam only, I know that's going to annoy some people but the reality is that every sonic installation has a tipping point where the only option becomes balanced and earthed. It's just a question of when.

slow_riot
Super Deluxe Wiggler
Posts: 4002
Joined: Tue Jun 30, 2009 8:58 pm
Location: uk

Post by slow_riot » Sun Nov 01, 2015 1:32 pm

Way behind schedule about promised audio demos, again! Sorry if I've mislead anyone about my expectations about completing this project, lessons have been learned! Mainly that those pretty boxes that you see in datasheets for parts are hiding all manner of gremlins and hidden catches.

In order to get these 2 oscillators working right they need about 10 trimmers each, phew!

In lieu of demos here are my helper eyes and ears, together learning the difference between theory and reality:

Image

User avatar
J3RK
Super Deluxe Wiggler
Posts: 6648
Joined: Tue Dec 22, 2009 12:46 pm
Location: Seattle

Post by J3RK » Wed Nov 04, 2015 5:20 pm

Nice!

Yeah, I've found a few components that didn't quite match what they were supposed to be in theory. Most of the time, it's close enough for what I'm doing, but I haven't built anything like what you're doing either.

I wouldn't worry about ten trims. I think one of my UF VCOs uses 8 or so. (would have to check for the exact number...) :deadbanana:
Are you lemon? Does your head come to a nub?

slow_riot
Super Deluxe Wiggler
Posts: 4002
Joined: Tue Jun 30, 2009 8:58 pm
Location: uk

Post by slow_riot » Wed Nov 04, 2015 5:49 pm

On the Sine wave, I'm using a slightly different version of the core I published but based on the same concept. The earlier version is less sensitive to offsets for a number of reasons.

Linear multipliers, though promising an analogue computing paradise have up to +/-10mv of input and output offsets, which in this multiple feedback configuration all interact to pull things out of shape. Most noticeably the squaring multipliers end up sitting outside of their use-able range, meaning asymmetric clipping. And the core needs hard limiting to stay within +/-10V (I'm running at the higher range internally for fun/profit) which also adds distortion.

I could have left it but having gone to all the trouble for a really high performance sine it wouldn't be right not to align it properly. I tried some DC servo-ing techniques to remove the offset but because it's an oscillator it just gets overpowered.

As well as the trims there needs to be a bunch of jumpers to isolate the individual elements and put in the required test signals to calibrate. :deadbanana: indeed!

User avatar
neil.johnson
Super Deluxe Wiggler
Posts: 1402
Joined: Thu Apr 08, 2010 3:51 pm
Location: Cambridge, UK
Contact:

Post by neil.johnson » Thu Nov 05, 2015 6:25 am

Looking at the current AD633 datasheet it gives the worst case output offset of +/-50mV, and worst case input amplifier offset of +/-30mV. So you need to design within those offsets in mind. Also note the spread of values is 10:1 which is quite a lot.

I also don't see any mention of how those offsets change with temperature. Definitely something to think about.... probably somewhere in the region of a few mV per degree C.

Neil
Random ramblings :: http://www.njohnson.co.uk
SSI parts and more :: https://www.cesyg.co.uk

slow_riot
Super Deluxe Wiggler
Posts: 4002
Joined: Tue Jun 30, 2009 8:58 pm
Location: uk

Post by slow_riot » Thu Nov 05, 2015 12:11 pm

neil.johnson wrote:Looking at the current AD633 datasheet it gives the worst case output offset of +/-50mV, and worst case input amplifier offset of +/-30mV. So you need to design within those offsets in mind. Also note the spread of values is 10:1 which is quite a lot.

I also don't see any mention of how those offsets change with temperature. Definitely something to think about.... probably somewhere in the region of a few mV per degree C.

Neil
That's a great tip thanks Neil. In many instances the VOS can be broken down into an absolute term which I guess is due to VBE difference in the input differential pairs, and a separate term that is temperature dependent. The AD534K gives a value of 50μV/°C. The AD734 shows a graph which for X and Y is broadly PTAT (close enough for me). In both cases the temperate dependent term is easily comparable to the CTAT one so worth taking into consideration.

User avatar
neil.johnson
Super Deluxe Wiggler
Posts: 1402
Joined: Thu Apr 08, 2010 3:51 pm
Location: Cambridge, UK
Contact:

Post by neil.johnson » Sat Nov 14, 2015 11:03 am

Not sure if you've seen it but the low-distortion sine wave oscillator by Sam Groener is pretty interesting, and that manages to work over a 3 Hz to 300 kHz range, with the best operation (distortion products below -140 dBc) in the 20 Hz to 20 kHz range.

http://www.sg-acoustics.ch/analogue_aud ... index.html

Neil
Random ramblings :: http://www.njohnson.co.uk
SSI parts and more :: https://www.cesyg.co.uk

slow_riot
Super Deluxe Wiggler
Posts: 4002
Joined: Tue Jun 30, 2009 8:58 pm
Location: uk

Post by slow_riot » Sat Nov 14, 2015 11:36 am

neil.johnson wrote:Not sure if you've seen it but the low-distortion sine wave oscillator by Sam Groener is pretty interesting, and that manages to work over a 3 Hz to 300 kHz range, with the best operation (distortion products below -140 dBc) in the 20 Hz to 20 kHz range.

http://www.sg-acoustics.ch/analogue_aud ... index.html

Neil
As far as I can tell amongst all the hot air the Groener design uses the same topology as the HP8903 (albeit with some slight improvements), which I've considered and rejected as not suitable for my design objectives.

The version of the Sine core I published can work with a large frequency range if you swap the 2 AD633 in the state variable loop with low distortion 2 quadrant gain cells such as THAT2180.

I'm sticking with my design, thanks.

User avatar
jdkee
Wiggling with Experience
Posts: 297
Joined: Sat Nov 08, 2014 3:25 pm
Location: Chicago

Post by jdkee » Sat Nov 14, 2015 11:31 pm

Slow and steady wins the race. Excited for new 300 modules.

slow_riot
Super Deluxe Wiggler
Posts: 4002
Joined: Tue Jun 30, 2009 8:58 pm
Location: uk

Post by slow_riot » Tue Nov 24, 2015 5:43 am

Thanks for the support, analogue can really be complex and hard to pin down, and time plus near obsessive attention to detail is the only antidote for that. Pretty sure I've finally got to the end of the road with the Sine/Cosine core. Now to find the bugs in the primary core.

I noticed that Doepfer have taken up the anodised blue with white silkscreen look, I had planned to stay true to the Wiard 300 colours but I've taken that as a sign to up my game and enlist the services of the extremely talented folk at Epinasty, to go with a very artful multicoloured look. Can't wait to see how that will turn out!

slow_riot
Super Deluxe Wiggler
Posts: 4002
Joined: Tue Jun 30, 2009 8:58 pm
Location: uk

Post by slow_riot » Sun Dec 20, 2015 3:27 pm

Still plugging away here! The primary oscillator has gone through a number of iterations recently and I can safely say it is not possible to do it better in analogue than how I've done it, but unfortunately that is only just good enough! Analogue is simply not suited towards complex computation like this, and rather than attempting to minimise distortion outright it becomes a case of shifting distortion products around to cause the lesser of 2 evils. To suit my aesthetic senses I have sided with soft clipping and harmonic overtones, rather than breaking up and hard limiting.

I had to drop my plans to make the VCAs exponential. An exponential generator represents a total dimension shift in mathematical terms, where addition becomes multiplication, subtraction is division, and vice versa. From a musical perspective I think it important to be able to add offset to the voltage control of amplitude, to sum 2 CV values together and to scale (attenuate) a CV. With an exponential VCA it is very hard to implement all of these functions at the same time and next to impossible to do so in a practical way. (edit... where there is a will ... )

Luigi at Epinasty is working on a prototype for the front panel as we speak, and is looking into hand painted alcohol inks which I think is going to be beautiful.

User avatar
valgamaa
Common Wiggler
Posts: 235
Joined: Thu Feb 03, 2011 3:23 pm
Location: Tallinn, Estonia

Post by valgamaa » Fri Jan 01, 2016 6:44 am

slow_riot wrote: The 8903 wouldn't behave well under voltage control, certainly under FM, maybe there's a better way to implement it than HP did though. Still a board of noisy digital circuitry and non ideal performance though.
That's not entirely fair - the 8903 is designed for a specific purpose unrelated to modulation, however given that the amplitude control is synchronous to the oscillator there is no reason that the concept can't work with modulation or voltage control. The levelling loop can also work on all four zero-crossings if faster stabilisation is required. This can also be used to cancel DC offsets (which you have discovered is a significant problem in this type of oscillator). Your comments on the operation of the core are also misleading, as any system that adjusts the loop gain will do the same thing until the amplitude stabilises.

The 'hot air' you refer to in the Groener work is a Masters thesis - the background material is relevant and supports his work, and if it wasn't included it would not be sufficient to complete his study. Given that, there is some rather useful content there that is relevant to any design.

The ideas you have presented here are an interesting 'take' on the challenge, and it is encouraging to see differing approaches to the same problem. What kind of harmonic level are you aiming for with the design? I found it quite easy to get the second harmonic down to around -80dBc, but from there it gets quite tough (so I admire the -140dBc that Groener achieved!).

slow_riot
Super Deluxe Wiggler
Posts: 4002
Joined: Tue Jun 30, 2009 8:58 pm
Location: uk

Post by slow_riot » Fri Jan 01, 2016 7:37 am

valgamaa wrote: That's not entirely fair - the 8903 is designed for a specific purpose unrelated to modulation, however given that the amplitude control is synchronous to the oscillator there is no reason that the concept can't work with modulation or voltage control. The levelling loop can also work on all four zero-crossings if faster stabilisation is required. This can also be used to cancel DC offsets (which you have discovered is a significant problem in this type of oscillator). Your comments on the operation of the core are also misleading, as any system that adjusts the loop gain will do the same thing until the amplitude stabilises.

The 'hot air' you refer to in the Groener work is a Masters thesis - the background material is relevant and supports his work, and if it wasn't included it would not be sufficient to complete his study. Given that, there is some rather useful content there that is relevant to any design.

The ideas you have presented here are an interesting 'take' on the challenge, and it is encouraging to see differing approaches to the same problem. What kind of harmonic level are you aiming for with the design? I found it quite easy to get the second harmonic down to around -80dBc, but from there it gets quite tough (so I admire the -140dBc that Groener achieved!).
Thanks for checking in on my activity and subjecting my little world to some fair objective analysis! It can be easy to get a bit carried away with ones own mindset. :)

The objective is for the most "beautiful" design, which is of course a very subjective choice. Having used various VCOs and spoken with many musicians, the sonic success of a circuit can come down to very very small details, almost irrationally so. This is different to the objective Samuel Groener cited, which I suspect is why our approaches diverged.

My initial misgiving about the 8903 technique is that by sampling the peak only, the correction is applied to the accumulated errors only. These phase and amplitude errors develop continuously over the full cycle, and conceptually, I prefer the idea of a "real time" error correction.

The trigonometric compensation technique is limited by the distortion performance of the squaring multipliers used to develop the trig identity. This was Groener's objection to this topology (although the multiplier design he auditioned for this purpose was far from the highest performance available). For a musical design, I would say the distortion artifacts of the trigonometric error compensation topology are worth the sacrifice (coupled with the "free" second harmonic outputs).

The 8903/Groener technique and the trig identity technique are both limited by the distortion performance of the multiplier that is used to take the error value and apply it to the oscillator. This is one thing I was able to address with my production model (which of course introduced it's own set of problems).

I too had problems with the noise floor and resolution of my spectrum analyzer being larger than the artifacts of the oscillator. The published Sine was measured at -100dBc which also coincides with the floor of the system.

User avatar
valgamaa
Common Wiggler
Posts: 235
Joined: Thu Feb 03, 2011 3:23 pm
Location: Tallinn, Estonia

Post by valgamaa » Sun Jan 03, 2016 7:05 am

slow_riot wrote:
Thanks for checking in on my activity and subjecting my little world to some fair objective analysis! It can be easy to get a bit carried away with ones own mindset. :)
I know the feeling!
slow_riot wrote:
The objective is for the most "beautiful" design, which is of course a very subjective choice. Having used various VCOs and spoken with many musicians, the sonic success of a circuit can come down to very very small details, almost irrationally so. This is different to the objective Samuel Groener cited, which I suspect is why our approaches diverged.
Yes, test equipment isn't necessarily musical, but it is also easy to strive for improvements that won't be audible and the divide is subjective.
slow_riot wrote:

My initial misgiving about the 8903 technique is that by sampling the peak only, the correction is applied to the accumulated errors only. These phase and amplitude errors develop continuously over the full cycle, and conceptually, I prefer the idea of a "real time" error correction.
The large errors exist when the oscillator first starts, and as the steady-state is reached the corrections fall to (ideally) zero, so the chosen method can have surprisingly little effect on the result. Where this no longer applies (and you alluded to this earlier) is when the frequency changes, however if steady-state has already been achieved then the correction is just for the change in loop gain which for most designs is actually very small.
slow_riot wrote:

The trigonometric compensation technique is limited by the distortion performance of the squaring multipliers used to develop the trig identity. This was Groener's objection to this topology (although the multiplier design he auditioned for this purpose was far from the highest performance available). For a musical design, I would say the distortion artifacts of the trigonometric error compensation topology are worth the sacrifice (coupled with the "free" second harmonic outputs).
I have to agree with that - I quite often use a triangle wave as an FM source as I prefer the range of tones it produces! For vibrato etc. a sine is nice, but then the distortion isn't so important.
slow_riot wrote:

The 8903/Groener technique and the trig identity technique are both limited by the distortion performance of the multiplier that is used to take the error value and apply it to the oscillator. This is one thing I was able to address with my production model (which of course introduced it's own set of problems).

I too had problems with the noise floor and resolution of my spectrum analyzer being larger than the artifacts of the oscillator. The published Sine was measured at -100dBc which also coincides with the floor of the system.
It is fascinating to see that such a conceptually simple circuit can be solved in so many different ways to achieve comparable results, and is an example of what has kept me interested in analogue electronics.

slow_riot
Super Deluxe Wiggler
Posts: 4002
Joined: Tue Jun 30, 2009 8:58 pm
Location: uk

Post by slow_riot » Sun Jan 03, 2016 7:39 am

If you build up the trig identity compensation method you can watch the errors in real time, a SPICE simulator (in this instance) captures the real world behaviour very closely.

See here (the amplitude of the sine curve has been reduced by a factor of 25):

Image

Image

My belief is that the ear can "hear" the sound of the error compensation technique, even though ideally it's effects are largely removed from the output. The trig identity method is inherently related in a harmonic way to the fundamental frequency and this is pleasing.

slow_riot
Super Deluxe Wiggler
Posts: 4002
Joined: Tue Jun 30, 2009 8:58 pm
Location: uk

Post by slow_riot » Wed Jan 27, 2016 10:34 pm

faceplate prototyping! (unfinished)

looks like the kind of module that will burst into your living room, set up a soundsystem and indiscriminately invite everyone around, living or dead for a tribal party. (sales disclaimer, this may or may not be the case)

Image

User avatar
davidh
Ultra Wiggler
Posts: 779
Joined: Mon Dec 06, 2010 3:58 am
Location: Europe/France/Alsace

Post by davidh » Thu Jan 28, 2016 2:04 am

:omg:

User avatar
sabasan
Common Wiggler
Posts: 170
Joined: Fri Jul 25, 2008 4:42 am

Post by sabasan » Thu Jan 28, 2016 12:17 pm

:tu:

slow_riot
Super Deluxe Wiggler
Posts: 4002
Joined: Tue Jun 30, 2009 8:58 pm
Location: uk

Post by slow_riot » Thu Jan 28, 2016 2:15 pm

Thanks peeps. Most days it gets a bit closer!

Apart from the occasional SHEER ENDLESS HELL this is the thing I most want to do in the whole world. So special thanks to everyone who has made making this a possibility.

User avatar
neil.johnson
Super Deluxe Wiggler
Posts: 1402
Joined: Thu Apr 08, 2010 3:51 pm
Location: Cambridge, UK
Contact:

Post by neil.johnson » Wed Feb 03, 2016 10:15 am

slow_riot wrote:If you build up the trig identity compensation method you can watch the errors in real time, a SPICE simulator (in this instance) captures the real world behaviour very closely.
Interesting graphs. How does your method compare to Gilbert's Pythagorator solution:

http://www.google.com/patents/US5714911

Neil
Random ramblings :: http://www.njohnson.co.uk
SSI parts and more :: https://www.cesyg.co.uk

slow_riot
Super Deluxe Wiggler
Posts: 4002
Joined: Tue Jun 30, 2009 8:58 pm
Location: uk

Post by slow_riot » Wed Feb 03, 2016 12:33 pm

Barrie Gilbert is smart enough to fit the concept onto one die of silicon.

It took me 11 ICs (2 or 3 of which are Barrie Gilbert designs), but I'm glad that someone with his pedigree also thought it was a good idea.

User avatar
J3RK
Super Deluxe Wiggler
Posts: 6648
Joined: Tue Dec 22, 2009 12:46 pm
Location: Seattle

Post by J3RK » Wed Feb 03, 2016 1:04 pm

Nice panel! :party:
Are you lemon? Does your head come to a nub?

Post Reply

Return to “Aether Machine”