[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