Hey! I have a Bela Mini with the multichannel expander and I am trying to run a project with supercollider but there is no sound. Even the supercollider hello example does not produce any sound. A C++ project works fine, however. The DigitalOut example works fine too with supercollider.
Do you have any ideas why?
Thanks and all the best,
Jürgen

I think the basic sc example has a mono output. Can you double check it's not an issue withbthe listening system not reproducing the left channel?

Hey, thanks for your quick response! No, both channels work when I try the c++ sinetone example for instance. It seems like only C++ is working, neither SuperCollider, nor PureData, nor Csound expamles give any sound.

I am running v0.3.8h, 5 January 2023

What device have you got exactly and what channels are you listening to? The C++ example is the only one that writes audio to all output channels, while the Pd/Sc/Cs examples use 1 or 2 channels instead. These will come out only of the channels on the Bela/BelaMini cape, but not of any of the expanders.

Create a new Pd project and use this patch, does it work?

main.pd
527B

Okay, thanks, that worked! But I am still struggling with SuperCollider, I tried

s = Server.default;

// Set up options for the Bela
s.options.numAnalogInChannels = 2;
s.options.numAnalogOutChannels = 2;
s.options.numDigitalChannels = 0;
s.options.maxLogins = 4;
s.options.bindAddress = "0.0.0.0"; // allow anyone on the network connect to this server

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

s.waitForBoot {
	// Your code goes here.
	{
		var sig;
		sig = SinOsc.ar(220.0, 0.0, 0.3);
		sig = SplayAz.ar(8, sig);
	}.play;
};

ServerQuit.add({ 0.exit }); // quit if the button is pressed

Do I miss something?

I have the bela mini with the multichannel expander, my speakers are plugged in to the 0-1 and 2-3 outputs on the expander.
Thanks for your help!

Sorry it will take me till thursday before I am back with an audio expander so I can troubleshoot this properly.

Okay, thanks for looking into it!

OK it is indeed a bug due to a change of API between the Supercollider build and the Bela core code. I need to work on that, it will have to be early next week, sorry about the further delay.

    OK, first off, I know next to nothing about Supercollider, but it seems that your Sc code is wrong. I tried a few different options.

    Any of these works (only showing the content of the s.waitForBoot{} block for brevity, the rest of the document it's identical to the one you posted above):

    	SynthDef("multitest",{ // one oscillator per output channel
    		Out.ar(0, SinOsc.ar(200) * 1);
    		Out.ar(1, SinOsc.ar(300) * 1);
    		Out.ar(2, SinOsc.ar(400) * 1);
    		Out.ar(3, SinOsc.ar(500) * 1);
    		Out.ar(4, SinOsc.ar(600) * 1);
    		Out.ar(5, SinOsc.ar(700) * 1);
    		Out.ar(6, SinOsc.ar(800) * 1);
    		Out.ar(7, SinOsc.ar(900) * 1);
    	}).send(s);
    	s.sync;
    	Synth.new("multitest", target: s);

    or

    	{ Out.ar(4, PinkNoise.ar(0.1)) }.play // noise out of channel 4

    or

    	{ // one oscillator duplicated to all outputs
    		var sig;
    		sig = SinOsc.ar(220.0, 0.0, 0.3);
    		sig.dup(8);
    	}.play;

    or

    	{ // one oscillator spread to all outputs
    		var sig;
    		sig = SinOsc.ar(220.0, 0.0, 0.3);
    		sig = SplayAz.ar(8, sig, width: 8);
    	}.play;

    Looking at the last one, crucially you were using the wrong width for SplayAz. This value, according to the docs, means Over how much of the channels each signal is distributed. and - while I appreciate that this is not necessarily the correct way of expressing that in English - it seems to mean in practice "Over how many channels each signal is distributed". Setting it to 8 seems to have the intended result.

    giuliomoro OK it is indeed a bug due to a change of API between the Supercollider build and the Bela core code.

    This is a separate issue that doesn't actually affect the pre-built version of Supercollider that is bundled with Bela, so the above should suffice.