Page 2 of 2

Re: Offset and LFO

Posted: Tue Aug 02, 2011 6:27 pm
by grishata
nicop wrote: Yes, that's exactly what I'm trying to achieve.
I'm thinking of a LFO that runs indipendently and feeds the instrument's parameters.
I searched in the LS SFZ Reference, and maybe the only way to do that, is to implement lfoN_phase_onccX , so I can send a midi cc to LS with an external program.
I think that this can be achieved by implementing some custom internal generators which will be introduced as additional controllers. As you can see cc137 looks like LFO - alternate (changes from 0 to 1 and vice versa), but it looks like that this CC generates MIDI events with some fixed frequency. So, we'll need something like "parametric" continuous controllers - to be able to set some parameters like frequency, etc (and to be able to modulate these parameters with other controllers). Also, we'll need to extend the current SFZ spec with some additional opcodes. I'm thinking for something like ccN_prmX and ccN_prmX_onccY in the <global> section. For example, cc140_prm0=10 will set the first parameter of CC 140 with value 10 and cc140_prm2_oncc110=5 will specify that the third parameter of CC 140 will be modulated by MIDI continuous controller 110.
But I guess this should be well thought out.

Re: Offset and LFO

Posted: Wed Aug 03, 2011 4:11 pm
by nicop
I was able to achieve the "auto-pan" with these parameters:
lfo16_pan=100
lfo16_phase_oncc13=360

...and using a Puredata patch that sends a midi cc on channel 13. It acts like a LFO and with it I can have a full right-to-left pan automation.
I don't understand why lfoN_phase_onccX must be set to 360, but it's the only value that make to whole thing to work :) .
Is it correct that the lfoN_phase_onccX opcode works only if I place it under <region>? It doesn't work under <group>.

[quote=grishata]But I guess this should be well thought out.[/quote]

For me it's not so important to have it implemented, and I don't want to mess your roadmap up.
I think that maybe there are other things that are more important to implement than the additional controllers. (like the Internal Effects ;) )

Re: Offset and LFO

Posted: Fri Aug 05, 2011 9:33 am
by grishata
nicop wrote: I don't understand why lfoN_phase_onccX must be set to 360, but it's the only value that make to whole thing to work :) .
For example, if we have a LFO with a sine wave and lfoN_pan=100, one full cycle (0-360) can be divided into four sub-cycles:
1. Going from center to hard right (0-90)
2. Going from hard right to center (90-180)
3. Going from center to hard left (180-270)
4. Going from hard left to center (270-360)

If lfoN_phase=90, this would mean that we skip the first sub-cycle and the LFO will start directly from hard right to center. If lfoN_phase=180 and lfoN_phase_onccX=90, this would mean that controller X adds up to 90 degrees to the initial phase of 180 degrees. In this case, if the current value of CC X is 127 (max), the LFO will start from hard left going to center. If CC X value is 0, the LFO will start from center going to hard left.
nicop wrote: Is it correct that the lfoN_phase_onccX opcode works only if I place it under <region>? It doesn't work under <group>.
I fixed this.