> 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