My next question is about the modulation modules range.
As I could see, each modulation module in Karma has two output modes: unipolar with output range [-1;0] and bipolar with output range [-1;+1].
While bipolar mode range is obvious and causes no questions the range of unipolar mode seems uncomfortable. As to me, more useful decision would be the range of [0;1].
Let me show why.
Imagine I have an AMPLIFIER module with AMP button driven by an ADSR module output.
With all buttons at default state you get no output signal when note trigger is inactive. That's what you expect in most cases and that's okay.
When you try to move ADSR module's OUT slider or the one at wire's arrow you immediately loose this 'zero point'. Sometimes it's not what you intuitively expect but that's not a big problem really.
But imagine that you like to drive the same AMP button with two ADSR modules each contributing one halve to resulting modulation (just to show the problem most obviously, in practice it could be other modules), it becomes a great pain to 'catch a zero point' for getting no output signal when note trigger is inactive.
Next if you like to modulate the contribution of each ADSR module to resulting AMPLIFIER modulation by automating it's OUT button, the task of obtaining zero signal at untriggered state becomes completely irresolvable.
That's only one example. But globally the fact that modulating module at 'zero state' (such as inactive ADSR or MidiTrig receiving zero velocity at the lowest note) causes some changes to modulated module when connected/disconnected or switched on/off seems extremely weird to me.
Could you please explain, what was the reason behind this decision? On my opinion, setting 'initial' state of output signal to '-1' instead of '0' makes it slightly easier to make simple modulation schemes, but causes a great headache with complicated ones.
Of course that's only my view. Maybe there are many serious reasons that I don't take to consideration.
But at my humble opinion sonething like the third optional range mode of [0;1] would be more then useful.
Maybe it could be added as a right click option at BIPOLAR LED not to affect the interface.
However, you can easily invert it by turning the out slider on the ADSR (or any modulator for that matter) all the way down, and that will switch the ADSR to run in unipolar 0..1 range. Not sure if that fixes the issue??
The problem is that when you sum (or multiply and then sum) some different modulation sources it's strongly desired that in their "initial state" these sources don't affect the resulting sum. So when you attach say new inactive (not triggered) ASDR to "summing point" it doesn't affect the resulting modulation level at this point. Or in other words one "sleeping" ASDR should produce the same modulation as two or three paralleled ones.
In Karma's current case it's -1, -2 and -3 respectively. In the case you'll invert them it will be 1, 2 and 3. But the most useful and natural level would be of course 0, 0 and 0
let me propose you one example: if you use Envelope modulator in bipolar mode there's a possibility to set it the way when it's 'idle point' is zero and maximum point is '1'.
that's exactly what is needed for ADSR, MidiTrig and MidiData modulators.
In fact the '1' should be simply added to the existing output level of these modulators. Then [-1...0] turns to [0...1]
Hope I've been more clear now
Try setting the ADSR in this mode:
That is, bipolar off, inv on, out all the way down (negative), produces this output:
Hence it is not bipolar, but it does produce the wanted envelope, no?
Again, sorry if I'm still not understanding it correctly.
Thanks for your patience!
The same thing to MIdiTrig - it works nice!
The only remaining wish of mine now is to have 'INV' checkbox also for MidiData module to have a possibility to setup it the same way.
Thank you once more!
Good point! I've added it to the list.