Getting input from a Behringer mixer on Lubuntu

I am having difficulty to get supercollider get input from a behringer mixer connected to my linux (lubuntu) laptop. The input/output is already set in jack to be the mixer, but testing with a ring modulator as below I still hear the pure microphone sound:

(
{
	var sig, mod;
	sig = SoundIn.ar(1!2);
	mod = SinOsc.ar(mul:0.8);
	sig*mod;
}.play
)

Does any one have suggestions/hints?

SC doesn’t send the hardware input signals to the output by default – you have to write that into the code – and you didn’t write that.

Maybe the Behringer is doing something funny? Or check the connections in qjackctl or Carla?

hjh

Could you please give a code-example of what you mean? What is missing in my code to send the hardware input to SC?

You need to route the output to the specific hardware output using Out.ar. On audio interfaces output channels are usually labeled 1, 2, 3 etc. but in SC numbering starts from 0, so 0, 1, 2 etc. Your function uses SoundIn.ar(1!2) = SoundIn.ar([1, 1]), so your mic has to be connected to the second input channel of your audio input. If you want to output the signal to the second stereo pair on you interface, the last line of the function should be

Out.ar(2, sig * mod) // outputting to channels 2 & 3 in SC terms = channels 3 & 4 in DAW terms

I don’t use jack, so not sure how the routing goes, but in general you can evaluate

s.options.numOutputBusChannels

to see how many physical output channels are available from SC and you can change the number by evaluating

s.options.numOutputBusChannels = ‘some number’.

Note that in SC it is allowed to set the number of output bus channels both lower and higher than the actual number of outputs on your interface. Use s.meter to inspect where the signal is routed.

1 Like

My problem is actually not with outputs, but inputs in the first place. I don’t get any input into SC from hardware when using the mixing console, for comparison I also have a Focusrite interface, and there I got the input from mics without problem into SC. I tested for instance the following synth:

(
SynthDef(\in, {
	var sig;
	sig = SoundIn.ar(\inbus.kr(0));
	sig = FreeVerb.ar(sig, mix: 0.9, room: 1, mul: 0.6);
	Out.ar(\outbus.kr(0), sig)
}).add
)

I am reading from the first input bus and writing into the first output bus. The sound I hear is the original dry sound, without any reverbs! Also the meters aren’t shown any sign of an incoming signal at all (all the time gray).

Ok, sounds like this is not a problem with SC but with Behringer.

As you probably already know, interfaces are not plug-and-play in SC, you will have to reboot SC after changing audiointerface. When you do so, do you see the Behringer interface being selected in the post window? Also, it sounds like the dry sound you are hearing is not coming from SC but from direct monitoring through the Behringer, if you quit SC, do you still hear the dry signal? Can you output sound to the Behringer, not using the input, only the output? Have you tried not using Jack (I am not familiar with Linux, not sure that is an option)?

For me at booting never a name of the interface is printed. I get something like this:

JackDriver: client name is 'SuperCollider'
SC_AudioDriver: sample rate = 48000.000000, driver's block size = 1024
JackDriver: connected  system:capture_1 to SuperCollider:in_1
JackDriver: connected  system:capture_2 to SuperCollider:in_2
JackDriver: connected  SuperCollider:out_1 to system:playback_1
JackDriver: connected  SuperCollider:out_2 to system:playback_2
SuperCollider 3 server ready.
JackDriver: max output latency 42.7 ms
Requested notification messages from server 'localhost'
localhost: server process's maxLogins (1) matches with my options.
localhost: keeping clientID (0) as confirmed by server process.
Shared memory server interface initialized

Is there a way to make the boot info more verbose?