SPAOP
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Preprocessor defines

Several options (most importantly: the network addresses of the WONDER system) can be changed by setting preprocessor defines. Note that the Introjucer allows to set those defines in a text field so they will be applied for both the Xcode and Visual Studio projects.

Parameter-Defines in WonderHeader.h

There are a few parameters for both the plugin and the StreamMulticaster (network addresses, parameter ranges, ...) that are defined in the file WonderHeader.h - so have a look at the file's documentation page for details on those parameters.

SPAOP_DISCRETE

Setting the flag SPAOP_DISCRETE will change the coordinates and rotation angle parameter's types from non-discrete to discrete. This is relevant for how the plug-in's host handles those parameters:

Normally (witout SPAOP_DISCRETE set), the host can set the parameters to any value within their range ([-COORD_MAX , COORD_MAX] for coordinates, [0.0 , 360.0] for the rotation angle). When SPAOP_DISCRETE is set, the host can only set them to discrete values within that range: coordinates are discretised to steps of 1 cm (meaning values can only be one of (-COORD_MAX, -COORD_MAX + 0.01, -COORD_MAX + 0.02, ..., COORD_MAX - 0.01, COORD_MAX)), the angle is discretised to steps of 0.1 degree (meaning values can only be one of (0.0, 0.1, 0.2, ..., 360.0)).

So what is the use for that flag? After recording automation data, certain hosts will "reduce" the automation data and interpolate automation values they deem to be irrelevant. Some hosts have settings where this feature can be turned off (e.g. Cubase's full versions), others don't (e.g. the LE versions of Cubase). By setting the SPAOP_DISCRETE flag some hosts (e.g. Cubase) can be forced not to reduce any automation data (apparently, any change of discrete parameter values is considered to be relevant). The downside however is that certain options to manipulate automation data might not be available for discretised parameters (e.g. in Cubase, "drawing" a diagonal automation by setting two automation points is only possible for non-discrete values).