[sdiy] Frequency follower idea. Question about FM.
cheater cheater
cheater00 at gmail.com
Mon Sep 13 12:13:59 CEST 2010
Thanks, Magnus - that's pretty cool! After skimming the wikipedia
article for a minute, I think it should also be possible to implement
PID in analog, since the maths don't seem to be iterative. This opens
a lot of doors to creative manipulation :) I will look into this topic
in-depth after I have moved into my new flat. I like the idea of using
a very well developed theory. Even if it doesn't turn out to fit
completely with my framework, maybe it can inspire it. That's a real
good tip!
D.
On Mon, Sep 13, 2010 at 01:47, Magnus Danielson
<magnus at rubidium.dyndns.org> wrote:
> On 09/09/2010 06:12 PM, cheater cheater wrote:
>>
>> Hi guys,
>> I was wondering recently about syncing VCOs to other oscillators, and
>> I came up with a framework idea of how this could be done in a new and
>> I think interesting way. I wonder what you guys think about it.
>>
>> One of the problems is: you want an analogue LFO that is tempo-synced,
>> but you want e.g. a sinewave, or a triangle wave, and very importantly
>> it must reach the amplitude maximum. If you just coarsely set the
>> frequency of the VCO and then sync it to sequencer pulses, then you
>> lose the amplitude (the typical DCO problem). If on the other hand you
>> don't want to lose the amplitude (because, for example, the LFO
>> modulates the pitch and it's important that it reaches a certain
>> interval), then the only other way for the VCO to catch up is for its
>> pitch to be raised temporarily. It's similar to how beatmatching works
>> with vinyl. Of course, this can work well for audio-rate VCOs as well.
>>
>> So here's the idea with how vinyl works vs how VCOs work. We have two
>> VCOs vs two adapters with vinyl records on them.
>>
>> 1. unsynced VCOs - two records are playing with separate tempo. There
>> is no sync.
>>
>> 2. Hardsynced VCOs: every time VCO1 reaches its sync point, the VCO2
>> is also reset towards its own sync point. This can be seen as speeding
>> up VCO2 to a very high speed of oscillation until it reaches its sync
>> point. The analogy here would be that when vinyl 1 reaches a kick,
>> vinyl 2 is sped up to nearly-infinite speed until it reaches the kick.
>> Since the speed is infinite, the operation takes an infinitesimal
>> amount of time, and in the next measure vinyl 1 and vinyl 2 start out
>> perfectly in phase. Because they are probably set to different tempos
>> (the probability of having the same tempos is 0), they will quickly
>> drift out of sync.
>>
>> 3. Beatmatching: this is how records are synced: vinyl 1 is playing at
>> a certain rate, vinyl 2 is playing at another rate. First the two are
>> synced together. Then the dj checks if vinyl 2 is slower or faster and
>> adjusts the rate of deck 2 to be higher or lower. At the same time he
>> either pushes vinyl 2 forward or taps it with the finger to slow it
>> down.
>>
>> This could look like this with VCOs: You sync the two VCOs together.
>> You have access to the phases of both VCOs and check how quickly they
>> fall apart. The derivative of their difference is the difference in
>> frequency that needs to be added to VCO2. Then, the oscillators are in
>> frequency sync (let's call this part we have just accomplished
>> "frequency calibration"). However, after this happens, the oscillator
>> needs to be 'pushed forward'. We can do this by injecting some phase
>> to the VCO. However, so that there is no click*, we can limit the rate
>> at which the VCO is being "pushed forward". We can do this by
>> frequency-modulating the VCO one time with a windowing function to
>> speed it up, or inverted windowing function to slow it down (let's
>> call that part "phase calibration"). During the phase calibration, the
>> frequency calibration should be somehow disabled. However, in a
>> running process, it would be undesirable to have a state-machine, so
>> maybe some form of continuous process could be invented from this.
>>
>> I have below included the mathematics behind this technique. One
>> question is how to realize a fairly smooth windowing function.
>
> Having only the time to very briefly look at your math, I'd say that you
> should look at PID PLL loops, which is well researched and well-understood
> beings. Already a PI-loop is easy to build in analog or digital design, but
> adding the differential D term is no match to add.
>
> The main reason I point you in this direction is so you can find support in
> balancing the P and I parameters to form a nice lock-in behaviour as you can
> get quite a resonance bump as a result.
>
> PID-control of oscillators is being used in GPS disciplining of oscillators
> (GPSDO) and there exists PIC-implementations in hobby projects. A PID does
> not involve an offensive amount of code. :)
>
> Cheers,
> Magnus
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>
More information about the Synth-diy
mailing list