Random frequency modulation (was [sdiy] Interesting f vs. t graphs of pitch instability)
Tom Wiltshire
tom at electricdruid.net
Tue Oct 7 16:20:45 CEST 2008
Scott,
On 7 Oct 2008, at 14:21, Scott Gravenhorst wrote:
> The sample rates of the GateMan synths are 1.0MHz for the monosynth
> and 250KHz for
> the poly. The NCOs are based on a phase accumulator design, so
> they emulate linear
> CV for pitch. Because of this I had to compensate for the control
> voltage's action
> as it moves through it's range. This is done by multiplying the
> noise amplitude by
> the "CV" (in quotes because it's digital, and the pitch control
> signal is an
> emulation of CV, linear) so that it is scaled properly. This gives
> a consistent
> effect across the entire pitch range of the synth.
This makes the pitch fluctuation a constant percentage of the pitch,
rather than constant number of Hertz, doesn't it?
My own digital osc design is based on the Korg DWGS oscillators, a
phase accumulator followed by a series of bandlimited wavetables. I
have a 16-bit "Pitch" variable which represents 8 octaves of
frequency, represented logarithmically (A V/Oct CV, if you like).
This is then converted via a lookup table into a linear frequency
increment.
So I can add the noise modulation to either the pitch variable
(logarithmic) or the frequency increment (linear).
> What I did was to filter the noise through a simple single stage
> IIR filter to roll
> off more and more high frequency energy in the noise waveform to
> control whether it's
> just slow drift (very low Fc) or jumpy drift (medium Fc) or audible
> noise (high Fc).
> The lower the Fc, the slower the noise signal moves. Lower Fc
> also lowers the
> overall amplitude of the noise, so there's a multiplier value to
> amplify it when
> needed.
This sounds good. Single-stage IIR is something that even a dsPIC
should be able to handle! Will I find filter details in the Gateman
notes in any form I can understand?
> What I have can do drift times in the 10s of seconds which causes
> the NCOs
> to drift slowly in and out of tune and exhibit the characteristic
> slow phasing we all
> love (the monosynth has 4 NCOs, the poly has 4 NCOs per voice).
How much accuracy does the filter need to be able to cope with such
long times? 10's of seconds at the sample rates you mentioned is a
LOT of samples. I'd have expected noise to build up in an IIR after
so long, but I'm not well versed in digital filtering.
> The system stays in tune within the bounds of the noise signal
> because the noise
> causes the pitch to drift back and forth across "perfect tune" by
> even amounts on
> both sides of it.
Yeah, isn't that a handy property of a good-quality noise signal?!
> I just get a very nice in-tune, but randomly wandering phase change
> sound.
Sounds lovely, Scott. Good work.
Thanks for the useful comments too.
Regards,
Tom
More information about the Synth-diy
mailing list