Recently I was asked about controlling various features of a running sample using OSC. This program and an associated article and video is the result.
Awesome project. Is it possible to make a generalized example for only receiving OSC messages.
Because I’m confused about the sending part that are involved and its becomes very specific the example.
I just have continuous data coming in from an ESP wifi module and I need to set a variable set for each incoming osc signal. It must be easier not?
Here is a simpler system which receives inputs from two separate sources via OSC
The received data is stored using set commands and is then available for a separate live loop to do whatever you want with it. To test, I am generating the OSC messages locally in Sonic Pi, but they can come externally from your ESP8266, in which case you miss out (or comment out) the local section.
use_osc "localhost",4559 # used only for local testing where SP creates the data.
use_debug false
use_osc_logging false
live_loop :var1 do #receive and store var1 data
v1 = sync "/osc/test/var1"
set :v1,v1[0] # store the received data
end
live_loop :var2 do
v2 = sync "/osc/test/var2" #receive and store var2 datga
set :v2,v2[0] #store the second variable value
end
#as many as you need like the above
live_loop :latestData do #independent live loop processes latest available data
puts "latest values var1 #{get(:v1)} var2 #{get(:v2)}"
synth :tri,note: get(:v1),release: 0.4 #first variable adjust pitch
synth :saw,note: get(:v2),release: 0.4 #second variable adjusts pitch
sleep 0.4 #latest values read every 0.4 beats
end
#local generation of test osc messages
live_loop :createData1 do
osc "/test/var1",rrand_i(60,72)
sleep 0.2
end
live_loop :createData2 do
osc "/test/var2",rrand_i(72,84)
sleep 0.6
end
The two test data streams run at different rates, so you can hear the two variables updating at different times not synced to each other. Depending on how rapid a response you need, you may require to add use_real_time.
AMAZING! IT WORKS PERFECTLY AND I CAN CHANGE EVERYTHING OR ADD STUFF EASILY!
Sorry about the caps lock but I needed to do that!