> One thing I haven't decided yet is the precise function prototype of the 
> functions that can alter the synthesis parameters directly. For example to 
> change the current volume of an active note, Kontakt has this KSP function:
> 
>       change_vol(note-id, volume, relative)
> 
> - "note-id" is the event ID of the precise note (voice) you want to change 
> its 
>   volume of.
> - "volume" is the new volume value of the note (voice) in millidecibel
> - "relative" is special thing: if you pass 0, then the note's volume will be 
>   simply overwritten, if you pass 1 then your new volume will be applied 
>  "relative" to the notes's current volume value.
> 
> Now that last mentioned parameter probably outlines, that their function 
> prototype is a bit suboptimal. Because first of all, what is "relative"? Does 
> it "add" *or* "multply" the new volume value against the current value? Then 
> the next thing is, this "relative" behavior is just meant to be applied to 
> the 
> value that *you* might have set before with a previous call of change_vol(). 
> This "relative" option has *no* impact on other volume modifiers, like volume 
> LFOs, volume envelopes, etc. So what do we want to do with the current volume 
> changed by those mentioned other sources (LFO,EG,...)?

I think (not verified) their relative mode is similar to the one found in the 
midibox diy project.
They have a good explanation of different "pot behaviour", and the 4 modes are 
quite exhaustive : Normal/Snap/Relative/Parallax

Quote : "Relative Mode: When you adjust a knob in Relative Mode, the parameter 
is affected immediately but not absolutely. In other words, the parameter 
change from the original value to the new value now reflects precisely the 
amount you adjusted the given knob. ie if the knob value is +30, and when you 
switch over, the value is now +50, the knob continues on as if it were at the 
parameter-set +50 position, so when you turn the knob (even though the knob 
physically is at +30) the next parameter value will be +51 (even though the 
knob is at +31). Obvoiusly, the downside is that in an unfavorable 
configuration - the worst case scenario being a maximum parameter value and a 
knob position at the minimum value - you do not have the full control range of 
the knob at your disposal. To counteract this situation, you have to turn the 
knob in the opposite direction to adjust the physical knob position so that it 
is equivalent to the actual parameter value (ie. turn the knob up to maximum, 
which will sync it with the maximum parameter value)."

In linuxsampler the received midi data replaces the knob position in the above 
text.
You can read complete explanations of modes here : 
http://www.ucapps.de/midibox_tutorial.html
Now, I'm not sure if these modes could apply to a software without GUI, as the 
user wouldn't have visual feedback to explain why the controlled parameter 
doesn't have the value sent by midi (unless he's aware to have explicitly set 
himself the mode, or having some debug/log information; which can be ok for a 
self written patch, but not so sure with a downloaded one)

> 
>       - Should this function simply override them completely and thus 
>         effectively disable those other volume control sources?
>       - Should it rather add its value to the volume levels of the other 
>         sources instead?
>       - Should it rather multiply its value against the volume levels of the 
>         other sources instead?
> 
> Probably we rather want the script author to decide this, and then we need to 
> add more options for the change_vol() function. Comments appreciated.
> 
> CU
> Christian


Raphaël Mouneyres
06 89 85 58 81

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Linuxsampler-devel mailing list
Linuxsampler-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel

Reply via email to