List of exit codes?

Is there a list of exit codes somewhere with their corresponding meanings?
I am trying to boot supernova on Windows and getting exit code -1073741676, and I don’t know what this means.

Typically 0 means success and 1 means failure. “strange” values like -1073741676 indicate that the Server has crashed :slight_smile:

Which version? AFAIK there’s no supernova for Windows prior to 3.12.

Then… I’m not sure of the status of audio device selection for Windows supernova. It looks here like it should more or less match scsynth… but it’s possible that there are some edge cases where it crashes…?

Can you let us know how you’re configuring s.options before booting?

hjh

Version = 3.12

My startup file includes this:

o = s.options;
o.inDevice = nil;
o.outDevice = "ASIO : ASIO4ALL";
o.memSize = 512 * 1024;
o.numOutputBusChannels = 16;

This works on scsynth, but when I evaluate Server.supernova and try to boot the server with Ctrl+b, then I get the aforementioned exotic exit code.

Hmmmm… In earlier SC versions, it wouldn’t have worked to have a nil input device in scsynth either (which is admittedly a problem for devices with no inputs). This was fixed in scsynth but it’s possible that it wasn’t fully fixed in supernova.

@MarcinP – any thoughts about this? (I remember you worked on scsynth device selection but I don’t recall who ported that to supernova.)

hjh

I tried setting the inDevice to ASIO4ALL, and this prevents the error. Supernova boots after a very long delay, initially showing over 50% CPU usage in the Server meter, but after Ctrl-., it goes down to 2-3%.

Often I use a USB DAC which has no input, only output. I would be interested to know how to set my audio devices so I can use it with supernova on Windows.

Ok, that narrows down the problem.

Someone else, a month or two ago, raised the question of using a no-input soundcard. For most of SC’s Windows lifetime, this hasn’t been supported – but with the recent improvements in scsynth device selection in Windows, there’s room to change that.

I’m afraid I don’t recall the current status of disabling input. It might work or it might not be implemented yet.

If it works at all, you would have to set numInputBusChannels to 0, and no inDevice.

If that fails, then 1/ I guess log it as a bug and 2/ as a workaround, you might try WASAPI and set a dummy input device.

hjh

Lately, I’ve been I receiving these error codes a lot.

Sometimes on run… sometimes right at startup:

Interpreter has crashed or stopped forcefully. [Exit code: -1073741819]

I will assess whether or not this still occurs after raising SC’s priority in Task Manager, and report back.

Here are some remarks, as I was working on PortAudio improvements and supernova on Windows:

  • for ASIO, we always want to use the same soundcard for input and output, so just use <options>.device = "ASIO : ASIO4ALL"; setting inDevice to nil does not disable input, in causes the input device to be set to the default device
    • when inDevice is nil, with PortAudio we try to use the device on the same API as the output device, BUT there’s no concept of default device in ASIO and the first ASIO device might be selected instead (not sure, haven’t tried this in a while)
  • I think I’ve fixed setting numInputBusChannels = 0 to disable input, which should match scsynth operation, but this is not heavily tested, especially on Windows
    • in that case it should be OK to not set the inDevice, as PortAudio should not be using it anyway
  • exit code like -1073741676 is likely to be a PortAudio error that “bubbles up” to the main thread, so the place to look it up would be to look in PortAudio docs (not sure if that number is converted to decimal representation properly)
  • Interpreter crash is likely unrelated to the rest of this topic - server and language are separate processes and crashing one won’t typically crash the other; i.e. the origin of the crash is likely to be totally different
1 Like

When you boot scsynth, does it end up using "ASIO : ASIO4ALL" as the input device as well? How many inputs do you end up having? (The chosen device will be indicated in the post window)

Most programs either return EXIT_SUCCESS or EXIT_FAILURE and nothing else. The range of valid exit codes (at least on posix) is 0-255. If you get an exit code outside of this range, it very likely means that the program has crashed.