Set the default hostname and port number for outgoing OSC messages.
use_osc hostname (string), port (number)
Sets the destination host and port that osc will send messages to. If no port number is specified - will default to port 4560 (Sonic Pi’s default OSC listening port).
OSC (Open Sound Control) is a simple way of passing messages between two separate programs on the same computer or even on different computers via a local network or even the internet. use_osc allows you to specify which computer (hostname) and program (port) to send messages to.
It is possible to send messages to the same computer by using the host name "localhost"
This is a thread-local setting - therefore each thread (or live loop) can have their own separate use_osc values.
Note that calls to osc_send will ignore these values.
Introduced in v3.0
Examples
| # Example 1 |
|
use_osc "localhost", 7000
osc "/foo/bar"
|
# Send a simple OSC message to another program on the same machine
# Specify port 7000 on this machine
# Send an OSC message with path "/foo/bar"
# and no arguments
|
| # Example 2 |
|
use_osc "localhost", 7000
osc "/foo/bar" 1, 3.89, "baz"
|
# Send an OSC messages with arguments to another program on the same machine
# Specify port 7000 on this machine
# Send an OSC message with path "/foo/bar"
# and three arguments:
# 1) The whole number (integer) 1
# 2) The fractional number (float) 3,89
# 3) The string "baz"
|
| # Example 3 |
|
use_osc "10.0.1.5", 7000
osc "/foo/bar" 1, 3.89, "baz"
|
# Send an OSC messages with arguments to another program on a different machine
# Specify port 7000 on the machine with address 10.0.1.5
# Send an OSC message with path "/foo/bar"
# and three arguments:
# 1) The whole number (integer) 1
# 2) The fractional number (float) 3,89
# 3) The string "baz"
|
| # Example 4 |
|
use_osc "localhost", 7000
osc "/foo/bar"
osc "/foo/baz"
use_osc "localhost", 7005
osc "/foo/bar"
osc "/foo/baz"
|
# use_osc only affects calls to osc until the next call to use_osc
# Specify port 7000 on this machine
# Send an OSC message to port 7000
# Send another OSC message to port 7000
# Specify port 7000 on this machine
# Send an OSC message to port 7005
# Send another OSC message to port 7005
|
| # Example 5 |
|
use_osc "localhost", 7000
live_loop :foo do
osc "/foo/bar"
sleep 1
end
live_loop :bar do
use_osc "localhost", 7005
osc "/foo/bar"
sleep 1
end
use_osc "localhost", 7010
osc "/foo/baz"
|
# threads may have their own use_osc value
# Specify port 7000 on this machine
# Thread inherits outside use_osc values
# and therefore sends OSC messages to port 7000
# Override OSC hostname and port for just this
# thread (live loop :bar). Live loop :foo is
# unaffected.
# Send OSC messages to port 7005
# Specify port 7010
# Send another OSC message to port 7010
# Note that neither live loops :foo or :bar
# are affected (their use_osc values are
# independent and isolated.
|