[RWP] OSC

Indigo 33indigo at charter.net
Fri Jun 7 04:06:58 EDT 2013


The default dot reaper dot osc is very interesting, in that it's part 
instructions and part code.
I like that, in that I think I can substitute values in the code part, 
and the previous explanation tells me what they are for.
I'll paste in a little of default dot reaper dot osc below.

I'm also loving JS Jessusonic language, which all those JS plugs, plus 
the default dot txt file that tells my joystick what to do are written in.
Instructions are not  included in the JS files; but they could be; since 
there's a way to punctuate comments; to separate them from code.
I dumped all those poorly written utilities I found on the web to set up 
a joystick in complicated ways.
Some of those amateurish apps crashed Reaper; and all were difficult to use.
The JS file that comes with Reaper is set it and forget it.
It lets me use midi learn to control all parameters of a soft synth with 
my generic gamePad.
Last night I was wobbling the bass around, like they do in dubstep, 
running a joystick on the filter cutoff while an arpeggiation was going, 
so much fun from a funky little $12 gamePad.
Way better to do serious automation from a real control surface, with 
longer throw faders, though; and save the joystick for crazy effects.

Here's a little of default dot reaper dot OSC:
snip:
# OSC pattern config file.

# Make a copy of this file, rename it, and edit the file to create a
# custom pattern configuration.

# For basic information about OSC and REAPER, see
# http://www.cockos.com/reaper/sdk/osc/osc.php .

# ----------------------------------------------------------------

# Default settings for how this device displays information.

# DEVICE_TRACK_COUNT is how many tracks this device can display at once
# (the track bank size).
# DEVICE_SEND_COUNT/DEVICE_RECEIVE_COUNT is how many sends and receives this
# device can display at once.
# DEVICE_FX_COUNT is how many track insert FX this device can display at 
once.
# DEVICE_FX_PARAM_COUNT is how many FX parameters this device can 
display at once
# (the FX parameter bank size).
# DEVICE_FX_INST_PARAM_COUNT is how many FX instrument parameters this 
device can
# display at once (the FX instrument parameter bank size).

DEVICE_TRACK_COUNT 8
DEVICE_SEND_COUNT 4
DEVICE_RECEIVE_COUNT 4
DEVICE_FX_COUNT 8
DEVICE_FX_PARAM_COUNT 16
DEVICE_FX_INST_PARAM_COUNT 16

# ----------------------------------------------------------------

# Default values for how this device behaves. The device has a selected 
track, bank
# of tracks, and FX, which are not necessarily the same as the selected 
track or FX
# in the REAPER window.

# REAPER_TRACK_FOLLOWS determines whether the selected track in REAPER 
changes
# only when the user changes it in the REAPER window, or if it follows 
the track
# currently selected in the OSC device.
# Allowed values: REAPER, DEVICE

# DEVICE_TRACK_FOLLOWS determines whether the selected track in the 
device changes
# only when the device changes it, or if it follows the last touched 
track in the
# REAPER window.
# Allowed values: DEVICE, LAST_TOUCHED

# DEVICE_TRACK_BANK_FOLLOWS determines whether the selected track bank 
in the device
# changes only when the device changes it, or if it follows the REAPER 
mixer view.
# Allowed values: DEVICE, MIXER

# DEVICE_FX_FOLLOWS determines whether the selected FX in the device 
changes only
# when the  device changes it, or if it follows the last touched or 
currently focused
# FX in the REAPER window.
# Allowed values: DEVICE, LAST_TOUCHED, FOCUSED

# DEVICE_EQ determines whether sending any FX_EQ message will 
automatically insert
# ReaEQ on the target track if it does not exist, or the message will 
only affect
# an existing instance of ReaEQ.
# Allowed values: INSERT, EXISTING

# DEVICE_ROTARY_CENTER defines the argument that represents no change, 
for rotary
# controls.
# Allowed values: 0, 0.5

REAPER_TRACK_FOLLOWS REAPER
DEVICE_TRACK_FOLLOWS DEVICE
DEVICE_TRACK_BANK_FOLLOWS DEVICE
DEVICE_FX_FOLLOWS DEVICE

DEVICE_EQ INSERT

DEVICE_ROTARY_CENTER 0

# ----------------------------------------------------------------

# Each line below is an action description in all caps, followed by a 
number of OSC
# message patterns. You can add, remove, or change patterns, delete 
lines, or comment
# out lines by adding '#', but do not change the action descriptions.

# The patterns following the action are the messages that REAPER will 
send and receive
# to and from the OSC device. An action can have no patterns (and will 
be ignored),
# one pattern, or many patterns.

# The patterns may contain the wildcard character '@'. (This is 
REAPER-only, not part
# of the OSC specification.) The '@' wildcard is used to specify the 
action target.

# ----------------------------------------------------------------

# The OSC device sends patterns to trigger actions, and REAPER sends 
patterns to the
# device as feedback.  OSC patterns can include arguments, which are be 
interpreted
# in various ways, defined by a flag immediately before the pattern.

# n: normalized floating-point argument. 0 means the minimum value, and 
1 means the
# maximum value.  This can be used for continous controls like sliders 
and knobs.

# Example: TRACK_VOLUME n/track/volume n/track/@/volume
# The device sends /track/3/volume 0.5 to set the volume to 0.5 for 
track 3, or
# /track/volume 0.5 to set the volume for the track that is currently 
selected in
# the device. REAPER sends /track/3/volume 0.5 when track 3 volume 
changes to 0.5.
# If track 3 is currently selected in the device, REAPER will also send
# /track/volume 0.5. The floating-point argument represents as the track 
fader
# position in the REAPER window. 0 sets the fader all the way down, 1 
sets the fader
# all the way up, 0.5 sets the fader exactly in the middle. Therefore, 
the actual
# volume that is set depends on the REAPER track fader preference settings.

# f: raw floating-point argument. The argument is interpreted directly, 
to set or
# report a value.

# Example: TEMPO f/tempo/raw
# The device sends /tempo/raw 100.351 to change the REAPER tempo to 
100.351 bpm.
# REAPER sends /tempo/raw 120 when the tempo changes to 120 bpm.

# Normalized and raw floating-point arguments also support multiple 
parameters
# sent from the device.
# Example: FX_PARAM_VALUE n/track/@/fx/@/fxparam/@/value
# The device can send /track/3/fx/1,2,5/fxparam/6,7,7/value 0.25 0.5 0.75
# to set three FX parameter values at once, to 0.25, 0.5, 0.75 respectively.

# b: binary argument, either 0 or 1. The device sets or clears the state 
when
# sending the message. Can be used to emulate switches or momentary 
controls.

# Example: TRACK_MUTE b/track/mute b/track/@/mute
# The device sends /track/3/mute 1 to mute track 3, or /track/mute 1 to 
mute the
# track that is currently selected in the device. /track/3/mute 0 will 
unmute
# track 3. REAPER sends /track/3/mute 1 when track 3 is muted, and 
/track/3/mute 0
# when track 3 is unmuted. If track 3 is currently selected in the 
device, REAPER
# will also send /track/mute 1 and /track/mute 0.

# Example: REWIND b/rewind
# The device sends /rewind 1 to begin rewinding, and sends /rewind 0 to stop
# rewinding. REAPER sends /rewind 1 when the rewind button in the REAPER 
window is
# pressed, and /rewind 0 when the button is released.

# t: trigger or toggle message. The device triggers the action, or 
toggles the
# state, when the pattern is sent with no arguments, or with an argument 
of 1.
# The feedback values REAPER sends are identical to those sent for binary
# arguments.

# Example: METRONOME t/click
# The device sends /click or /click 1 to toggle the metronome on or off. 
REAPER
# sends /click 1 when the metronome is enabled, and /click 0 when the 
metronome
# is disabled.

# r: rotary. The device triggers the action in the forward direction 
when sent
# with an argument greater than ROTARY_CENTER, and in the reverse 
direction when
# sent with an argument less than ROTARY_CENTER. For some messages, the 
magnitude
# of the argument affects the rate of change. REAPER does not send 
feedback for
# these messages.

# Example: SCRUB r/scrub
# The device sends /scrub 1 to scrub forward, and /scrub -1 to scrub in 
reverse
# (if ROTARY_CENTER is 0).

# s: string. These messages include a string argument. Many of these 
messages
# are sent from REAPER to the device for feedback/display, but some can 
be sent
# from the device to REAPER.

# Example: TRACK_NAME s/track/name s/track/@/name
# The device sends /track/3/name "vox" to rename track 3 in REAPER, or
End Snip at an arbitrary point so as not to have this email rejected 
from being too long; but it goes on for 22,000 characters, all look like 
the intentions are very clear as to what it will do for the device it's 
setting up.
I love that the OSC file includes the various modes for buttons, whether 
they trigger; or latch ; or unlatch, etcetera.
Huge power in all this; I can get a feeling for why you love to program.
Indi




More information about the Rwp mailing list