Booting SC reliably with different in and out devices

Hi all, I constantly run into failed boots in SC with the following setup (I am using the VScode extension and osx). These should be the correct numInputBusChannels_ and numOutputBusChannels_ as reported by the console.

(
Server.local.options.numInputBusChannels_(4);
Server.default.options.inDevice_("UMC404HD 192k");

Server.local.options.numOutputBusChannels_(64);
Server.default.options.outDevice_("BlackHole 64ch");

s.options.sampleRate_(48000);
s.options.blockSize = 4;
s.options.hardwareBufferSize = 2048;
s.options.memSize = 8192 * 32;
s.options.numWireBufs = 8192*2048;
...
rest of startup
)

on fail I usually get this error message:

*** Welcome to SuperCollider 3.14.0. *** For help type cmd-d.
***LSP READY***
[LANGUAGESERVER.QUARK] suggestedServerPortRange: [64630, 64640]
Using default server port: 64630 (allocated range: 64630-64639)
SCDoc: Indexing help-files...
SCDoc: Indexed 3441 documents in 0.79 seconds
Deferred(1651495131)
Booting server 'localhost' on address 127.0.0.1:64630.
VSTPlugin 0.6
Found 0 LADSPA plugins
Number of Devices: 12
   0 : "G27c-30"
   1 : "UMC404HD 192k"
   2 : "ThinkPad USB-C Dock Gen2 USB Audio"
   3 : "ThinkPad USB-C Dock Gen2 USB Audio"
   4 : "BlackHole 16ch"
   5 : "BlackHole 2ch"
   6 : "BlackHole 64ch"
   7 : "MacBook Pro Microphone"
   8 : "MacBook Pro Speakers"
   9 : "iPhone Microphone"
   10 : "UMC+BLACKHOLE"
   11 : "SYSTEM+BLACKHOLE"

Server 'localhost' exited with exit code 0.

The weird thing is, if I spam the restart sc command, it will randomly connect after about 5-20 reboots. If I make the in and out devices the same everything works fine.

Anything obvious I’m missing or ideas?

Thanks!

Apologies in advance for not answering your main question, but I’m not a Mac user, so I’m not equipped to troubleshoot it. (But I remember enough from my Mac days to suggest creating an aggregate device, if you’re going to boot routinely with this configuration.)

But… one side suggestion. You don’t need 16 million wire buffers. Wirebufs are used for connections between audio rate UGens, and SynthDef’s sorting algorithm tries to reuse them as much as possible. Scsynth reuses the same pool of wirebufs for all synths; you might expand to 128 or 256 but it’s extremely unlikely to need more than that. Supernova has to account for parallel processing so (I think) each synth has its own set of wirebufs, but even then, 16 million is a lot.

In any case, for the device problem, probably an aggregate device would help.

hjh