Author |
Message |
ian-s

Joined: Apr 01, 2004 Posts: 2672 Location: Auckland, New Zealand
Audio files: 42
G2 patch files: 626
|
Posted: Wed May 28, 2008 4:52 pm Post subject:
Oscillator drift on G2 |
 |
|
Take a couple of OscD's set to saw or rectangle, tune one to -12 semitones but keep both fine tune at zero, mix together and listen to the (very) slow phase drift.
I had assumed that an interval of an octave should result in phase lock but this is sort of a nice surprise.  |
|
Back to top
|
|
 |
Derek Cook

Joined: Dec 30, 2005 Posts: 171 Location: Wales, UK
G2 patch files: 3
|
|
Back to top
|
|
 |
dorremifasol

Joined: Sep 28, 2006 Posts: 823 Location: Barcelona, Spain
Audio files: 7
G2 patch files: 49
|
Posted: Thu May 29, 2008 2:26 am Post subject:
|
 |
|
I tried it with the demo version, and the drift only happens in certain keys. How strange... _________________ Cheers,
Albert |
|
Back to top
|
|
 |
Tim Kleinert
Joined: Mar 12, 2004 Posts: 1148 Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236
|
Posted: Thu May 29, 2008 4:13 am Post subject:
|
 |
|
Alas, analog sound after all!  |
|
Back to top
|
|
 |
Kassen
Janitor


Joined: Jul 06, 2004 Posts: 7678 Location: The Hague, NL
G2 patch files: 3
|
Posted: Thu May 29, 2008 10:02 am Post subject:
|
 |
|
dorremifasol wrote: | I tried it with the demo version, and the drift only happens in certain keys. How strange... |
A rounding error caused by how some periods are a integer amount of samples in length and others not? _________________ Kassen |
|
Back to top
|
|
 |
Tim Kleinert
Joined: Mar 12, 2004 Posts: 1148 Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236
|
Posted: Thu May 29, 2008 2:58 pm Post subject:
|
 |
|
Kassen wrote: | dorremifasol wrote: | I tried it with the demo version, and the drift only happens in certain keys. How strange... |
A rounding error caused by how some periods are a integer amount of samples in length and others not? |
Most likely. Super-high precision calculation of non-fractional periods is quite expensive. |
|
Back to top
|
|
 |
Stanley Pain

Joined: Sep 02, 2004 Posts: 782 Location: Reading, UK
Audio files: 10
G2 patch files: 35
|
Posted: Thu May 29, 2008 4:02 pm Post subject:
|
 |
|
shweet... _________________ there's no I in TEAM, so let's all act as individuals instead |
|
Back to top
|
|
 |
Tim Kleinert
Joined: Mar 12, 2004 Posts: 1148 Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236
|
|
Back to top
|
|
 |
Kassen
Janitor


Joined: Jul 06, 2004 Posts: 7678 Location: The Hague, NL
G2 patch files: 3
|
Posted: Fri May 30, 2008 3:19 am Post subject:
|
 |
|
tim wrote: |
Most likely. Super-high precision calculation of non-fractional periods is quite expensive. |
Yeah. In fact ALL digital systems have rounding errors. Always. What you can, however, try is some method that prevents the errors from propagating... sometimes. I don't imagine double precision floats on a 24 bit fixed point DSP would be a lot of fun....
That said; timing on the Modulars is slightly quick-sand like anyway, even with the better calculation order of the G2 you still have the issue that control-rate signals only get calculated every 4th sample with no way of knowing which sample.
Whenever I have two things that are required to stay synchronous in the Modulars I always have one clock the other. That way they won't get more then 4 samples out of sync max. _________________ Kassen |
|
Back to top
|
|
 |
Kassen
Janitor


Joined: Jul 06, 2004 Posts: 7678 Location: The Hague, NL
G2 patch files: 3
|
Posted: Fri May 30, 2008 4:18 am Post subject:
|
 |
|
Derek Cook wrote: | Surely, it's "expected behavior" for two free running oscillators or two modeled free running oscillators?  |
Erm, no? If you implement it by starting by storing their start-time and start phase, then calculate new values using a sin or mod function on the time passed since (repeating the starting process for any modulations received) it'll be a long time indeed before rounding errors start to show.
If you would do that it'll be slightly less then 3 minutes before the 24 bit counter flows over counting the samples and you will have to re-store the phase and starting time which will be the first time you will round in a way that will propagate.
Very expensive but very precise. It all depends on how much precision you need and what you are willing to pay for it. I bet "our oscs won't drift audibly in your lifetime" won't sell as many units as "you can have 32 voices".
For oscillators to drift in some consistent fashion I would imagine, BTW, that the cause might be bias in the way rounding is performed. I would predict this to be upwards and a tendency for oscs a octave up to be affected by this twice as much. I wonder if you could compensate by putting a extremely small negative number on the modulation input of the higher pitched osc. The smallest number that can be expressed in the Modulars is probably still (much) too high but since this is a sort of statistical process you could compensate by randomly turning it on and off, with a higher likelihood of it being on at any given moment for higher pitched oscs. This would also be affected by the oscillator's pitch relative to the sample-rate and I have no idea how to calculate that in the G2. I don't think you even have the resolution for that. _________________ Kassen |
|
Back to top
|
|
 |
|