Ok, I think I found it:
it's the envelope release time settings of the operators that cause the problem.
Instability occurs in two different cases:
- All carrier envelope release times are 0.00. This gives a strong instability.
- The release time of one carrier is smaller than the release time of its modulator. Here the instability is more subtle, but can be observed with a spectrum analyser. Also: the greater the difference of the release times, the greater the effect.
The amount of instability also depends on the carrier to modulator frequency ratio c:m; you get a strong effect for c:m=1:2, for example.
Here is a list of steps to reproduce these instability phenomena:
Start with the patch "Preen mk2" from the factory default combo. It uses alg9. Then make the following parameter changes:
- op1,op6 off
- op4: sine, freq=1.00
- op5: sine, freq=2.00
- for op4 and op5: env attk, deca, sust time=0.00, level=1.00
- Matrix 2: mult=0.00 (this has the routing lfo1->pan2)
- Matrix 12: mult=0.00 (this is Not1->IM*)
This produces a steady timbre with stable frequency spectrum between repeated key strokes.
Now set
- op1, op4 and op5 rele time=0.00
You get an instability of the first type, which is easily audible (at least for me
). Then:
It's stable again. Then
- op4 rele time=0.50
- op5 rele time=1.50
This is the instability of the second type. Finally
Again stable.
I tested this by repeatedly playing a C at 261Hz. In my spectrum analyser I then measured the level difference between the 1. and 3. harmonic, i.e. at 261Hz and 785Hz.
In the stable case I obtain a difference of around 11dB, where the 3. harmonic is stronger. For the first type of instability the changes are drastic, sometimes the 1. harmonic even becomes strongest. For the second type, the measurements vary between 11dB and around 8dB, if I remeber correctly.
For the second type, the time you wait befor the next key stroke also seems to matter. If I release the key, then wait for the sound to die completely, and only then trigger the note again, then the instability is much smaller. If after key release I retrigger the note immediately, the instability is stronger.
It seems like you have to give the envelopes enough time to complete their release phase...
Finally I also checked some other algorithms and got the same results:
for alg11 (with both cascades 123 and 456), alg14 (cascade 123), alg16 (345), alg1 (123)
My conclusion (so far):
- Avoid setting all release times of your carriers to 0.00. It is sufficient to have one >0.00, and this one can even be turned off(!). However a very small time like 0.01 might not be enough.
- The second type of instability is hardly audible (I was not able to hear it), so I guess one can live with it... Unless we aim to verify FM theory and Bessel function values by measuring the output of the preenfm
- These instabilities remind me of the tuning instabilities of the pre-DCO analog synths of the 70s, and the efforts in virtual analogs to recreate those free-running and drifting oscillators. In order to accurately capture the warmth and character attributed to the vintage synths. So in the end we also might want to preserve this analogish "character" of our little machine...