You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Looking at the source code of scsynth [1], I see that in case that
either input device or output device is not defined, it will try and
get the default set for that in the system configuration. Since you
have no input devices, that one will fail, and you get to the fallback
option, which fails.
Suggested fix, for a Windows developer to try out:
// lines 350,351 are currently
if (mDeviceInOut[0] == paNoDevice) mDeviceInOut[0] =
Pa_GetDefaultInputDevice();
if (mDeviceInOut[1] == paNoDevice) mDeviceInOut[1] =
Pa_GetDefaultOutputDevice();
// add this line afterwards:
if (mDeviceInOut[0] == paNoDevice) mDeviceInOut[0] = mDeviceInOut[1];
Then the rest of the code should catch the problems, and real problems
only occur when there is no output device.
If you want to catch also that case, add another line:
if (mDeviceInOut[1] == paNoDevice) mDeviceInOut[1] = mDeviceInOut[0];
That way, you will always have either input or output... (only input
could be of interest to pure recording setups without monitoring).
sincerely,
Marije
[1] bool SC_PortAudioDriver::DriverSetup(int* outNumSamples, double*
outSampleRate) in SC_PortAudio.cpp around line 328
The text was updated successfully, but these errors were encountered:
Looking at the source code of scsynth [1], I see that in case that
either input device or output device is not defined, it will try and
get the default set for that in the system configuration. Since you
have no input devices, that one will fail, and you get to the fallback
option, which fails.
Suggested fix, for a Windows developer to try out:
// lines 350,351 are currently
if (mDeviceInOut[0] == paNoDevice) mDeviceInOut[0] =
Pa_GetDefaultInputDevice();
if (mDeviceInOut[1] == paNoDevice) mDeviceInOut[1] =
Pa_GetDefaultOutputDevice();
// add this line afterwards:
if (mDeviceInOut[0] == paNoDevice) mDeviceInOut[0] = mDeviceInOut[1];
Then the rest of the code should catch the problems, and real problems
only occur when there is no output device.
If you want to catch also that case, add another line:
if (mDeviceInOut[1] == paNoDevice) mDeviceInOut[1] = mDeviceInOut[0];
That way, you will always have either input or output... (only input
could be of interest to pure recording setups without monitoring).
sincerely,
Marije
[1] bool SC_PortAudioDriver::DriverSetup(int* outNumSamples, double*
outSampleRate) in SC_PortAudio.cpp around line 328
The text was updated successfully, but these errors were encountered: