I’ve always wondered about the OSC RegEx matching prefs and recently found this:
OSC Reg Ex Example
This explains using RegEx Expressions for sending.
But I was wondering if it is also possible to use this for a receiver pattern.
IE:
/FromVVOSC/.
/FromVVOSC/[12]
/FromVVOSC/CSWindow[.]
/FromVVOSC/CSWIndow[12]
RE Strings
When setting OSC Name Spaces for receiving or sendings.
Or constructing Strings for display. It would be great to be able to
1A) Have a $recVal variable that represents the recivers Value
1B) Have a $userVar local variable that could be set by the user
then these values could be used for creating the OSC Name Space,
For example in a Text Field could have:
display string: “Layer 1’s Blending Mode is ($recVal)”
of further:
set Layer1’s blending mode menu to send it’s string value via OSC to:
/FromVDMX/Layer1/BlendingMode
set userVar to “1”
set receiver’s OSC Reciving Namespace to:
/FromVDMX/Layer($userVar)/BlendingMode
Now Can Set Text Field display string:
“Layer ($userVar)'s Blending Mode is ($recVal)”
Maybe these String Constructions for be achieved via a
Do Math String Function or
a new TextFX Chains functions
I’ve noticed Vezer uses the following OSC parameters
Composition name
You can use the containing Composition’s name in OSC tracks address with the keyword $COMP
.
For example, if the Composition name is Foo
, you can insert that to the OSC address by defining the OSC address of one or more tracks this way: /$COMP/parameter1
. This case, Vezér will send data to /Foo/parameter1
.
Composition index
You can use $COMPINDEX
as a parameter in OSC address, which results in the index of the Compositions (starts from 1).
Track name
You can use the Track’s name in OSC tracks address with the keyword $TRACK
.
For example, if the Track name is Foo
, you can insert that to the OSC address by defining the OSC address of one or more tracks this way: /$TRACK/parameter1
. This case, Vezér will send data to /Foo/parameter1
.
Track Value
You can use $
mark in OSC addresses to use Tracks value in the address.
For example:
/layer$/trigger
will turn to /layer0/trigger
, /layer1/trigger
and so on, depending on the Track’s current value.
Here’s some suggestions I have:
These would take up
- an additional tab in OSC preferences
- an additional tab / space in each plug in
- additional room / tab in each receiver / sender
These items would be available in any place where an OSC Message can be created.
GLOBAL OSC PARAMETERS
- $PROJECT
- $BPM
- $MEASURETIME
- $LAYER
- $LAYER_IDX
- $LAYER_GR_IDX
These can be set for each plug-in and used within the plug-in to create OSC Messages.
EACH PLUGIN - HAVE DEFAULTS BUT USER CAN EDIT
- $PLUGIN_NAME
- $PLUGIN_PATH
- $PLUGIN_MIDI
- $PLUGIN_INT1
- $PLUGIN_INT2
- $PLUGIN_EXT
- $PLUGIN_COMP
- would default to the name in the workspace IE
Control Surface 1
- but user could override IE.
ContSurf
- could be used to identify part of the OSC Address path IE
FromCS
- or used as an element as part of a receiver identifier IE
- say I have LFO plugins named
LFO 1X, LFO 1Y, LFO 1S
LFO 2X, LFO 2Y, LFO 2S
LFO 3X, LFO 3Y, LFO 3S,
LFO L then used as with a combo (using $PLUGIN_INT1 from below)
- /<$PLUGIN_PATH$PLUGIN_INT1>X/Sine == /LFO L2X/Sine
- /<$PLUGIN_PATH$PLUGIN_INT1>X/Triangle == /LFO L2X/Triangle
- /<$PLUGIN_PATH$PLUGIN_INT1>X/Ramp == /LFO L2X/Ramp
- /<$PLUGIN_PATH$PLUGIN_INT1>Y/Sine == /LFO L2Y/Sine
- /<$PLUGIN_PATH$PLUGIN_INT1>S/Triangle == /LFO L2S/Triangle
- could be used in receivers to Identify a MIDI Channel that gets used and only needs to be changed in one place. here IE
3
- this could be used in multiple receivers
- /MIDI/ch. <$PLUGIN_MIDI>/ctrl [71]
- /MIDI/ch. <$PLUGIN_MIDI>/ctrl [72]
- /MIDI/ch. <$PLUGIN_MIDI>/ctrl [73]
- and updated / changed very quickly
- could be used to identify which PlugIn Instance this is IE
2
- can use for building of the OSC Address path IE
/<$PLUGIN_PATH><$PLUGIN_INT1>
would give you
/FromCS2
- could be used for various MATHS in creating OSC Address or Value
- represent an numbered instance of a plugin, MIDI channel etc
- be able to collect a VALUE from Other Sources, just like you can with receivers
- also be able so select OSC VARIABLES like the ones defined here
- be able to select what type of Value it is
- later be able to get a string formatted value from this using standard formatting
- IE
<"%.3f", $PLUGIN_EXT>
- this would be a COMPOSITE string variable
- one that can be constructed from GLOBAL or LOCAL PLUGIN OSC VARIABLES
- be able to use REG-EX in the constructions
- be able to use REPLACE FOR ANY REG-EX Groups
These can be set for each plug-in and used within the plug-in to create OSC Messages.
EACH RECIEVER/SENDER - HAVE DEFAULTS BUT USER CAN EDIT
- $SEND_NAME
- $SEND_TYPE
- $SEND_VAL
- $SEND_USR_INT
- $SEND_EXT_VAL
- $SEND_COMP1
- $SEND_COMP2
- this would be name to identify sender (User can overwrite)
- this would be name to identify sender (User can overwrite)
- be able to use REPLACE FOR ANY REG-EX Groups
- this could be a value that can be calculated from the original $VAL but having either
- math applied to it
- NumFX Chain Applied
- String Formatting / Processing
- Value Processing IE
$SEND_VAL_ADJ = $VAL * (($SEND_EXT_VAL->rgbColor()->red())
- could be used for an additional address identifier or for maths
- be able to collect a VALUE from Other Sources, just like you can with receivers
- also be able so select OSC VARIABLES like the ones defined here
- be able to select what type of Value it is
- be able ti get other types of values from it depending on value type IE
- $SEND_EXT_VAL->isType(Color)
- $SEND_EXT_VAL->rgbColor()->red()
- $SEND_EXT_VAL->xyPos()->x()
- $SEND_EXT_VAL->stringValue()
- $SEND_EXT_VAL->lastPathComp()
- $SEND_EXT_VAL->listItem(4)
- as in the $PLUGIN_COMP be able to do multi string construction
- be able to use GLOBAL / LOCAL PLUG IN & LOCAL SEND OSC VARIABLES
- another alternative string to above