Csound Csound-dev Csound-tekno Search About

Re: New bug generator opcode

Date1999-08-29 21:51
FromSean Costello
SubjectRe: New bug generator opcode
Josep M Comajuncosas wrote:
> 
> I had a similar idea to emulate subtle variations of analog equipment. Maybe it
> would be nice to define a new set of variables, say ?i,?k,?a variables, which
> could have an added (and user definable) amount of thermal noise in them. The
> most important think should be the kind of randomness to be applied, and where.

It seems like at least part of this thermal noise could be emulated with randi.
The drift of analog VCOs, for example, could be controlled by this. However,
maybe you want to have a global temperature variable, which affects all ugens
that are controlled by the ?i, ?k, or ?a variables. Changing the temperature
would cause all of the associated ugens to change their behavior, but in an
unpredictable way (i.e. all the oscillators would drift upwards in pitch, but at
different rates and different amounts).

I'm not sure how you would emulate the "jitter" of analog VCOs, as I don't think
that this has been studied in detail. Some VCOs (Minimoog, VCS3) exhibit a
certain amount of pitch "jitter" that undoubtedly has an effect on the
perception of the sound. Perhaps noise through a bandpass filter of relatively
narrow bandwidth could simulate this effect.

I'd say that the tricky part of emulating analog equipment is emulating the
nonlinearities. An analysis of the circuit that is being emulated will turn up
subtleties that might be ignored from a DSP standpoint. For example, many people
group the SSM 2040 lowpass filter and the Moog ladder filter together. It is
true that both filters work on the same basic principle (4 cascaded one-pole
filters with inverted feedback). However, each of them has entirely different
nonlinearites. The SSM2040, for example, has a very asymmetrical nonlinearity,
caused by the DC bias issues of the Darlington buffer (and the inability of this
buffer to swing through wide voltage values). Asymmetrical nonlinearities will
produce even-order harmonics, as well as the odd-order harmonics that are
commonly found in clipping. In addition, the input to each one-pole filter in
the SSM2040 is inverting - which means that a different side of the waveform
will be clipped for each stage. This results in a very complex nonlinear effect.
Reproducing even the simplest nonlinearities in the digital realm creates
problems with aliasing, numerical overflow, and so on, so emulating something as
subtle as the SSM2040 would be very difficult. Having higher sampling rates
would be very nice - at 96 khz, you won't have foldover of frequencies until
they reach 48 khz, and you won't be able to hear those until they fold back down
into the audio range (76 khz).

I doubt that any of the above has anything to do with Rasmus' original posting.
Oh well.

Sean Costello