ETC with WIFI Adapter (Critter&Guitari) respond to OSC

is it possible to setup the ETC Wifi.sh and pygame engine so that it can respond to Open Sound Control via the Critter&Guitari Plugged WIFI Adapter overruling the ETC.Knob’s values if needed?

The wifi adapter is working very fine, i can code the patches with the browser editor and the results are pretty… So the ETC is an well running automated visual generator in a coffee shop.

Can someone give me a hint what python OSC library to use, where to place it and what to write in wifi.sh to open the needed ports and run a OSC receiver. And finally maybe a short intro how to use it in patches.

Perfect would be if those ETC Wifi OSC enabled patches could be controlled via something like TouchOSC then.

The ETC software is in several parts: a background program that reads the knobs and buttons, a mode player, and the modes themselves. The background program is sending the knobs and button presses (via OSC) to the mode player program which then passes them to the current mode. So the mode player is already listening to OSC on port 4000. you can see what it is listening for here (scroll down to bottom starting line 115):

so you should be able to send it these messages from any other device on the network, as long as you know the IP of the ETC. (haven’t actually done it, but touch OSC might be a cool thing to try)

I see, trying to test this thru touchOSC via port4000.
Unfortunately the osc.py tells me its receiving the knobs in one pack of integers.
I think it is hard to set this up in the most osc senders unless you know how to pack arrays of int in one osc message. Still dont know how osc will distinguish the integers from each other. Maybe separated with comma…
also a bit confusing why the numbering of the arguments is unsorted…
etc.knob_hardware[0] = float(k4) / 1023
etc.knob_hardware[1] = float(k1) / 1023
etc.knob_hardware[2] = float(k2) / 1023
etc.knob_hardware[3] = float(k5) / 1023
etc.knob_hardware[4] = float(k3) / 1023
maybe historical reasons…

tried lots of different schemes to send via osc to the server.
/knobs/iiiiii
/knobs/i i i i i i
/knobs i i i i i i
/knobs iiiiii
/etc/knobs …
and the other way around trying to receive “/led i” scheme…
to know at least the server is up and doing stuff…

so the moment i think i have to import osc in my mode scripts also and init the server myself?
or does the wifi.sh have to be edited in some way to open the port even if the ETC_Mother is including osc receivers/sending?

Oh yeah, I remember this issue trying to use touch OSC for something like this. you could build a mode that setup its own listener on a separate port, but this might get complicated… another thing you could do is just add some OSC handlers to osc.py (I think it is located at /root/ETC_Mother/osc.py), then reboot. To make changes to the root filesystem, you first need to put the ETC into read write mode, run this command:

/root/scripts/remount-rw.sh

yeah this was just from some old order of the knobs on the front panel of the device.