UltraStar-Deluxe / USDX

The free and open source karaoke singing game UltraStar Deluxe, inspired by Sony SingStar™
https://usdx.eu
GNU General Public License v2.0
803 stars 157 forks source link

macOS: Options > Microphone settings empty #566

Open bohning opened 3 years ago

bohning commented 3 years ago

Actual behaviour

When I run UltraStar by double-clicking on the app, the Microphone settings are empty and I cannot configure any microphones.

image

This was a known issue for me, and so far I was able to work around it by starting USDX from the command line (either with open UltraStarDeluxe.app or by going into the app and starting USDX via ./ultrastardx) and then the microphones could be configured without problems. However, this "workaround" does not seem to work any longer, I get the same behavior as illustrated in the screenshot above. So currently, USDX seems to be unplayable for me, unfortunately.

I think it has to do with access rights to the microphones, but I am not sure how/why this seems to be a problem. In the Mac security settings, UltraStarDeluxe is allowed to access microphones:

image

The relevant part of the Error.log seems to be:

STATUS: Opened audio device [TAudioPlayback_SDL.InitializeAudioPlaybackEngine] ERROR: Error checking format: Internal PortAudio error [TAudioCore_Portaudio.TestDevice] ERROR: Device "Built-in Microphone" does not work [TAudioInput_Portaudio.EnumDevices] ERROR: Error checking format: Internal PortAudio error [TAudioCore_Portaudio.TestDevice] ERROR: Device "AirBeamTV Audio" does not work [TAudioInput_Portaudio.EnumDevices] STATUS: #Input-Devices: 0 [Portaudio]

Details

Provide some additional information:

bohning commented 3 years ago

Interestingly enough, this is not the case with UltraStar Deluxe v2020.4.0-stable, which I downloaded and copied to /Applications (overwriting my own compilation). I have a feeling that the microphone permissions are set for the stable version, but somehow not for my own compilation (and the computer does not ask for microphone access permission when starting the other version). I am clueless, but at least I can use the stable version to play. Any help by mac experts welcome.

basisbit commented 3 years ago

could you maybe try self-building the old version, then if that works with microphones, bisect test the versions to figure out which commit broke it?

Tom1827 commented 2 years ago

Same issue for me. Downloaded /installed UltraStar Deluxe v2020.4.0-stable. Exactly same empty screen as shown by @bohning above. (Neither method described of starting via the command line helped.) Not sure if I'm missing something but I can't find an error.log?

bohning commented 2 years ago

@Tom1827 Look at /Users/$youruser$/Library/Logs/UltraStar Deluxe for the Error.log.

Tom1827 commented 2 years ago

Thanks @bohning

Very similar (relevant) log entries to yours:

STATUS: Opened audio device [TAudioPlayback_SDL.InitializeAudioPlaybackEngine]
ERROR:  Error: Audio callback is not called [TAudioCore_Portaudio.TestDevice]
ERROR:  Device "Built-in Microphone" does not work [TAudioInput_Portaudio.EnumDevices]
ERROR:  Error: Audio callback is not called [TAudioCore_Portaudio.TestDevice]
ERROR:  Device "Scarlett 2i2 USB" does not work [TAudioInput_Portaudio.EnumDevices]
STATUS: #Input-Devices: 0 [Portaudio]

Running on 10.14.6. In other apps, everything audio-related seems to be working fine.

hartenc commented 2 years ago

Running on the latest version of USDX and MacOS Mojave, I've got the same problem. Frequently rebooting and replugging the microphones solve the problem some times, but sometimes this makes me spend an hour trying to get the microphones to work.

STATUS: Opened audio device [TAudioPlayback_SDL.InitializeAudioPlaybackEngine] ERROR: Error: Audio callback is not called [TAudioCore_Portaudio.TestDevice] ERROR: Device "USBMIC Serial# 092181705 " does not work [TAudioInput_Portaudio.EnumDevices] ERROR: Error: Audio callback is not called [TAudioCore_Portaudio.TestDevice] ERROR: Device "MacBook Pro microfoon" does not work [TAudioInput_Portaudio.EnumDevices] STATUS: #Input-Devices: 0 [Portaudio]

hartenc commented 2 years ago

Temporary solution: reboot and restart until USDX sees at least one microphone. Replug the other and usually it will work. In those cases it will still work after restarting USDX for any reason. Seems to be an initializing problem, maybe a fix can be found in retrying the microphone loading a few times?

hartenc commented 2 years ago

Interesting observation: if you reinstall the application (open the dmg, drag the game to Applications, even if it is the same version), the microphones will work. So it seems that the first run works perfectly, and after that errors might appear.