The ratio argument sets the osc frequency to some factor times a "base frequency". This is used in FM tones, and is based on the parameter of the same name in the classic DX7 algorithms.
In fact, it's just a special case of the ControlCoefficients. ratio=0.5 means that the oscillator frequency is half the note frequency, which in other situations we'd achieve with freq='130.8,1', i.e. frequency tracking the note, but relative to C3, so an octave below (0.5x the frequency).
We really ought to change over to using freq coefficients, since using ratio diminishes the payoff of getting to grips with ControlCoefficients. At the moment I believe the ratio mechanism overrides the normal freq calculation for FM oscs, and we presumably don't currently propagate the base osc note to the algorithm oscs. So we'd need to fix those too.
The
ratio
argument sets the osc frequency to some factor times a "base frequency". This is used in FM tones, and is based on the parameter of the same name in the classic DX7 algorithms.In fact, it's just a special case of the ControlCoefficients.
ratio=0.5
means that the oscillator frequency is half the note frequency, which in other situations we'd achieve withfreq='130.8,1'
, i.e. frequency tracking the note, but relative to C3, so an octave below (0.5x the frequency).We really ought to change over to using
freq
coefficients, since usingratio
diminishes the payoff of getting to grips with ControlCoefficients. At the moment I believe theratio
mechanism overrides the normalfreq
calculation for FM oscs, and we presumably don't currently propagate the base osc note to the algorithm oscs. So we'd need to fix those too.