Topic: New Virtual Assignment plugins
This describes a new and useful plugin; but before describing it let's make sure we understand the difference between a positional control value and an absolute control value. Suppose we have a level control that has a range between -100 dB and +20 dB. A full range absolute control value would be equal to 20; a full range positional value for this same control would be 1. The lowest absolute value would be -100 and the lowest corresponding positional value would be 0. The middle control value would be -40 dB (half way between -100 and 20) and the middle positional value would be .5, right in the middle between 0 and 1. All controls can respond to both an absolute control value and a positional value.
Absolute values are in the range of the control type as appropriate for that control. -100 to 20 dB for level or 20 to 20,000 Hz for frequency, etc... But all controls will have a full range floating point positional value between 0 and 1 indicating the relative position of the control between its minimum and maximum values.
The Virtual Assignment control found at the bottom of Control | Tools folder in the NWare device tree is used to allow one control (the virtual control) to selectively control more than one other real controls. For instance, the nTouch60 has a large control wheel. This is a virtual control that provides a positional value in the range of 0 to 1. It can be directly connected to any other control and will work properly, moving that control through its full range. But if this control is to be used to selectively change the values of more than one real control, for instance four faders on the same page, then a Virtual Assignment block must be used to do this. But a standard Virtual Assignment block can only handle absolute control values, not positional values. So a level control with a range of -100 to +20 dB would only be controlled in a range between 0 and 1 dB when using a Virtual Assignment block between the nTouch 60 virtual control and the target real level control. This is not useful.
In order to make this work properly a generic control of the same type with a properly set value range must be used as a value translator between the virtual control and the Virtual Assignment block. This works well but has the drawback of only working properly when all of the target real controls are of the same type. Clearly a solution that allows the virtual control to control any type and mix of real target controls is needed. That is what this new plugin is for. It can be used as a direct replacement for the standard Virtual Assignment block. Rather than transfer control values between the virtual and real controls, this plugin transfers positional values making its use valid with any type of control. The plugin attached here has three examples of the same plugin type as well as a help device plugin that can be opened to see a description of the device and how to change the number of real controls that are supported.