I made a little progress, but one final piece is missing and I hope someone can help me out here (it's more tidal related this time). I've found a way to send all control names of a synth from supercollider to tidal every time SC recieves an OSC message to the path /SynthControls with the name of the synth as argument. This is the SC code for the OSCFunc:
(
OSCdef.new(
\SynthControls,
{
arg msg, time, addr, port;
var controls, controlNames, name, address, synth;
address = NetAddr.new("localhost", 6010);
name = msg[1].asSymbol;
synth = SynthDescLib.global.at(name);
controls = synth.controls;
controlNames = msg[1];
controls.do{arg control; controlNames = controlNames ++ " " ++ control.name};
address.sendMsg("/ctrl", "synthControl", controlNames);
},
'/SynthControls'
);
)
To read the variable in Tidal (1.7.2) one can use
import Control.Concurrent.MVar
import Data.Map.Strict as Map
fmap (Map.lookup "synthControl") ((readMVar $ sStateMV tidal))
for older versions of Tidal have a look at OSC: Tidal and Processing - #7 by yaxu
So the only thing missing is a tidal function to send a single OSC message to SC, and then post the message recieved back from SC in the console like above. I don't really want to define a custom supercollider target just for this. And it seems so simple to do, but I really don't know how. So I hope someone can help