Random frequency modulation (was [sdiy] Interesting f vs. t graphs of pitch instability)

Scott Gravenhorst music.maker at gte.net
Tue Oct 7 15:21:06 CEST 2008


Tom Wiltshire <tom at electricdruid.net> wrote:
>
>On 7 Oct 2008, at 00:04, Scott Gravenhorst wrote:
>
>> Tom Wiltshire <tom at electricdruid.net> wrote:
>>>
>>> Having a knob on an oscillator that goes from cool digital sterility
>>> at one end, via CEM3340 to drifty moog, and then finishing at Andre's
>>> wavering MS20 sounds great to me. The question is what signals do you
>>> need to feed into the oscillator and how to generate them  
>>> efficiently.
>>> Your graphs represent some actual data, which is very helpful indeed.
>>>
>>
>> Interesting you mention this, My GateMan FPGA synths all have noise  
>> modulated pitch,
>> it is something I really like.  Mine go from subtle and slow drift  
>> up through tonal
>> noise to almost just plain noise.
>
>Yes, this is a feature that my SH101 has that I think the Pro-One is  
>missing. One day I'll get round to feeding the noise source into the  
>mod panel - it's a simple enough mod.
>
>I'm interested to know about your noise modulation, Scott. Do you  
>feed the noise into a logarithmic (v/oct) or linear modulation input,  
>and what depth do you use? Presumably this is calculated per-sample,  
>and at some pretty high rate too. 

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.

>I've tried the same trick at lower  
>sample rates (50KHzish) and it doesn't sound as good. The sound  
>becomes "spattery" rather than smoothly drifty.
>Consequently, I've also been experimenting with other types of drift  
>waveform, including random linear slopes (pick a random point, slope  
>towards it, when we arrive pick another, and slope off there too) and  
>cosine interpolation between random points. These are quite nice in  
>that they have an underlying "frequency" (how often the points get  
>picked) which gives you an element of control. They seem to mimic  
>slow drifting quite well, though (like some old analogues) it can be  
>hard to make things sound in tune!
>The advantage for my situation is that such slowly changing waveforms  
>still sound ok at lower sample rates.

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.  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).

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.  If the noise amplitude after the filter is small enough, the synth
sounds in tune regardless of the drift.  I just get a very nice in-tune, but randomly
wandering phase change sound.

>I'm quite sure there are lots of other varieties of random signal  
>that one can feed into a digital oscillator's frequency, phase, or  
>amplitude mod inputs to warm things up. Any ideas appreciated.
>
>Thanks,
>Tom
>
>
>_______________________________________________
>Synth-diy mailing list
>Synth-diy at dropmix.xs4all.nl
>http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>

-- ScottG
______________________________________________________________
-- Scott Gravenhorst
-- GateManPoly - FPGA-based Polyphonic MIDI LA/FM Synthesizer
-- GateMan-III - FPGA-based Monophonic MIDI LA/FM Synthesizer
-- PolyDaWG/8 - FPGA-based 8 Voice Polyphonic MIDI Synthesizer
-- FatMan: home1.gte.net/res0658s/fatman/
-- NonFatMan: home1.gte.net/res0658s/electronics/
-- When the going gets tough, the tough use the command line.




More information about the Synth-diy mailing list