As I use Karma more and more, some new questions appear.
While playing with HFO I noticed that it's real range is 44Hz ... 16 kHz, while the Manual in HFO parameter table says: "Rate (0.26Hz-16kHz)".
Which of two is wrong? (or maybe of three, taking me into account - maybe I do something incorrectly)
As to me, I'd like the Manual to be right as the frequency below 44 Hz might be highly welcome when building e.g. a kick drum sound by this module.
So glad you are using the synth. Love all the cool feedback.
Actually, you are correct. It is a bug, and part of the bugfixes in 1.20 is:
- Bugfix: HFO rate could not go below 44Hz in FM Mode. Fixed.
This bug presents at any HFO mode and type of connection (as far as I could see). BTW at left knob's left position the module screen shows "Rate: 0.26 Hz" but actually it's 44 Hz
By the way, is it right that when I try to modulate Osc1's "freq" knob by HFO (it doesn't matter in FM mode or not) the amount of this modulation affects not only the amount of higher harmonics produced but also the Osc1's fundamental tone pitch?
Here's what's happening when you turn HFO's 'amount' knob:
Because the HFO is high frequency, it has some built-in antialiasing. Unfortunatly, this has some problems in the low frequency area, mainly due to precision. I think that might be what you are seing in the plot. Also, for this reason I upped the precision in 1.20:
- Bugfix: Internal Osc upped to 64 bit precision, due to precision artifacts at low frequencies (affects internal modulation and HFO/FM)
Regarding the FM detuning you mention. Yes, this is normal behavior. When modulating the freq knob in and Osc, you are basically doing Exponential Frequency Modulation, and that will detune your carrier. What you maybe want is to do Linear FM. The FM module does that, and also has the modulator built-in (so no need for hfo). Alternatively, you can use the an "Additive" Osc. This one has a phase control, which is actual phase and not just "phase init". If you modulate that with the HFO (in FM mode), you basically get linear FM, and this will be in-tune.
Yes, regular Osc1 works nice (BTW the kick I used in the song that I showed to you is made just that way too).
Recently I've tried to modulate the phase of Additive with HFO and it worked nice. The only point is that the amount of harmonics is not to large (which is obvious in phase modulation case thus).
As to FM controller module it also works nice. The only thing that might be better (as to me) is the amount of modulation. In Karma two sin's of the same frequency produce very soft effect at max modindex level (~4 noticeable harmonics) while in many other FM synths under maximum modulation the spectrum extends to upper frequency range border. When I played with FM modulator in Karma I was surprised a bit with this. Although two or three FM modulators joined in sequence can do the job, I think it would be nice to have more of modulation range.
Now, since the synth features an internal control signal already, an idea could be to run this signal at a higher rate, say 16x.
Once this signal reaches a module, the module can decide if it wants to process it at this rate, which would make sense in case of an oscillator, and essentially do 16x oversampling, or process it at the low rate, which is trivial/normal behavior.
The overhead would be minimal, since (in case of FM synthesis) only the target module (the oscillator) and the control signal generator (FM module) would have to deal with the oversampling. An additional "phase" control signal could be added to support phase modulation (indirect FM) aside from direct FM modulation. This would also make the FM module capable of doing PM, instead of hooking it up through the additive module, which seems kind of odd. PM is indirect linear FM and what Chowning originally formulated and e.g. the Yamaha DX7 used.
The idea of initially oversampled signals used for FM with following downsampling seems nice to me. But, as I can understand, this should be rather CPU-hungry. So maybe there would be a need of making some parameters (such as upsampling ratio or probably forced spectrum ceiling limitation) flexible and user tunnable. Or maybe - developing some "smart logic" which will decide (dunno is it really possible in realtime ) if upsampling is needed*
Looking at the aliased harmonics that the majority of FM powered synths on the market produce, I suspect that the task has no simple and plain solution. On the other hand the same problem is actual for digital shapers. But despite this there are some nice solutions at the market. This makes me think that the developers in general simply underestimate the disruptive role of aliasing in human perception of digital sound and do not really care about its nuances**
* e.g. it may be needed for high pitched notes and not needed for low pitched ones. Or it may be needed for high velocities and not needed for low ones. But how to deal with glissandos, e.g.? Seems that question has no obvious answer((
** Cockos ReaComp is a striking example. It has up to 64x oversampling that seems to use no digital filtration at all(!). As a result all it does is 64x CPU load and some subsample delay.