Input meter

Hi,

This might be a really stupid question. For some reason I have never thought about this.
If I do:

s.options.numOutputBusChannels = 8; 
s.options.numInputBusChannels = 2;

Will the Input on channel 0 always be mirrored in the Output channel 2 if I use s.meter?

When I tap my keyboard I can see the mic signal mirrored in the output channel 2. At the moment Im working with headphones, but I’m going to perform on a multi-speaker setup.
Is this just how it is or am I doing something wrong? Sometimes I play it “silently” just to follow the meters when trying some panning movements, then it is quite annoying to see this meter.

I don’t see how that could happen, unless there is a synth copying the signal from bus 8 to bus 2.

Which OS and SC version?

EDIT: In Linux, there’s no mirroring at the output.

So there are two possibilities:

  • (Unlikely) Maybe there’s a bug in the server’s CoreAudio (mac) or PortAudio (win) drivers that inappropriately passes hardware input to a single output bus. If this were the case, I’d assume a lot of users would be complaining.
  • (More probable) Maybe there’s something in your startup script, or elsewhere, that plays a synth which reads the input and writes to bus 2. E.g., this will reproduce the issue, but with user action – if it’s in a startup script, then it’s easy to forget where it came from.
// this part may be in a startup script
ServerTree.add({ |server|
	{ SoundIn.ar(0) }.play(
		server.defaultGroup, 2, addAction: \addAfter
	);
});

s.options.numInputBusChannels_(2).numOutputBusChannels_(8);
s.boot;
s.meter;

hjh

You are probably right that it would be more complains if it were something to do with the CoreAudio(since I use mac).

I have tried to clean up my startup code as much as I can.

Now I tried it once again and then it was not a problem anymore. So it seems like I need to find out in what order things are executed.

What I noticed was that when I just make a clean start:

s.options.numInputBusChannels_(2).numOutputBusChannels_(8);
s.boot;

s.meter;

Things are looking good. If I then change the number of Output-channels to a higher number without rebooting, then the input is mirrored in the output channel 8. So I guess that the problem is that I must have the inputs and outputs changed in two places and that makes this thing happening.

It’s necessary to reboot the server after changing pretty much anything in ServerOptions. You can’t just set the variable – at minimum, s.reboot and then close/reopen the meter window.

Without rebooting, the system is in an inconsistent state, and you’ll see other weird behavior sooner or later.

hjh

Audio bus channels in SuperCollider are divided into three categories:

  • Output audio bus channels: from channel 0 up to s.options.numOutputBusChannels - 1.
  • Input audio bus channels: from s.options.numOutputBusChannels up to s.options.numOutputBusChannels + s.options.numInputBusChannels - 1.
  • Private audio bus channels: from s.options.numOutputBusChannels + s.options.numInputBusChannels up to 1023 (by default). These are used internally to transmit signals within the server.

If you change s.options.numOutputBusChannels without rebooting the server, the input audio bus channels may incorrectly appear under Outputs in the window opened by s.meter.