Setup with loopback instruments and captures

I'm running tidalcycles on an embedded SBC (Orange Pi 5 Plus, running linux) and I have a tascam Model 12 mixer connected to it using USB C. Al this is built into my (well not the mixer) is built into a modular case with a small screen and a wireless keyboard for live coding.
I'm happily running audio from multiple orbits to separate channels on my mixer using a pipewire tool to patch all this, combined with the midisynths that I drive from tidal and have audio sent into my mixer.
Now to do the live mixing, I'm using a script to visualise the RMSlevels from SuperDirt and send them over OSC to my visualiser, so I have an idea of what is going on in this sometimes complicated setup.

I'm using the simple but effective hydra-superdirt to send data to the visualizer.

(
// Run this to start sending the RMS OSC messages to SC.
~dirt.startSendRMS;

// The bridge will be listening to OSC messages on port UDP 9130.
b = NetAddr.new("aib4.local", 9130);

// This is the RMS OSC handler, here we'll forward these messages to our bridge
OSCFunc({ |msg|
	// Forward OSC message
	b.sendMsg("/rms", *msg);
}, "/rms");
)

Now this works great for the sounds I create in TidalCycles/Superdirt, but I want to visualise the audio from the synths as well. I can bring them back into superdirt without hickups, but I want to internally patch those inputs to some of the outputs for visualisation.
So I have tidal channels1-10 (5 stereo orbits) being correctly send to the RMSsender
And I'm sending orbits 6-7-8 which is 1 mono and 2 stereo MIDI synths sent back to super collider from my sound cards capture ports.

Can I get route the signals to out 11/12(double mono) 13/14(stereo) and 15/16(stereo) in supercollider they are sent to my visualiser?

I tried

Out.ar(12, In.ar(10,1))

to route the mono channel capture_AUX5 from SC in12 to out11 but it does not seem to output anything. I can see sound coming in on the SuperCollider Levels (Ctrl-M) window, but not going out...

1 Like

Ok I can patch the the inputs to the outputs

{Out.ar(12, SoundIn.ar(10,1))}.play;

But that does not yet send the audio to the RMSsender apparently

I asked over at the Superdirt Github as well

You could just roll your own:

(
{ 
	var rmsReplyRate = 8, rmsPeakLag = 3, replyID = 1000;
	var signal = In.ar(10,1);
	SendPeakRMS.kr(signal, replyRate: rmsReplyRate, peakLag: rmsPeakLag, cmdName:"/rms", replyID: replyID)
}.play(target: ~dirt.group, addAction: \addToTail);	
)

This is untested, you probably need to fiddle a bit e.g. with the id.

1 Like

Ok, Having fiddled with it for a bit got it to work. Thanks for the suggestion.

I'm filtering the replyID in my visualisation, so that worked by just adjusting it to my needs.
I did have to change the signal variable
from In.ar(10,1); to SoundIn.ar(10,1);