Linux Audio Fixes#223
Conversation
|
Running it now @rruchte Rob. Seems to be working find so far. I like the diagnostic output, that is generally helpful for other stuff as well. |
|
Couple other paths that would be nice to know, are for the config (JS8Call.ini) and the data directories (ALL.txt). |
bd94fdf to
d6b0411
Compare
|
@wmiler Good idea, I've added this:
|
wmiler
left a comment
There was a problem hiding this comment.
Everything for my system is running well with this code. Just a note, I don't have pactl installed on my system, so I haven't tested that.
|
Great, thanks for testing. The pactl output will look like this: |
|
Wow, this is a lot to absorb in one sitting. I'm not a linux user, other than when I absolutely have to be. But this is what the Audio Diagnostics spits out on MacOS: So this all looks pretty good, except I don't have pactl/wpctl or pulseaudio. I got MacOS CoreAudio which shows: So there is some differences between what Qt shows and what the Apple System Profiler shows. But it's close enuf fer guvvermint work. |
|
Maybe I should limit the "Hints" to Linux only. |
|
I don't suspect Mac or Windows users will use it very often. So maybe just call it "Diagnostic hints for linux" instead of "Hints". Or if you want, the MacOS command to list the audio interfaces is |
d6b0411 to
49c7170
Compare
|
I added Mac OS and Windows output and changed the hints to be generic and only output the Linux-specific line on Linux. I have not yet tested the changes on Mac and Win. |
49c7170 to
fc2dce7
Compare
|
I'll pull this and test it for you on Mac. But I do think the diagnostic output should be left in the code long-term. I think it might come in handy. |
|
If it's expanded beyond audio (it arguably is already), we should think about putting it somewhere else. Maybe we should address that now before it gets released. |
|
@rruchte so I connected my iPhone to see how Qt enumerates that, and it does. I'm just posting the pertinent output here:
|
I'd agree with that. |
|
@rruchte Rob, maybe a tab to the right of It's putting out really useful stuff, and has already helped me a bit with the QT styling enhancement I've been working on. 👍 |
|
@Chris-AC9KH Chris, are you saying that I should remove all of the Mac OS specific output? |
I would say, maybe. That information that Qt is trying to get is very hard to come by on MacOS due to the way libraries and loader paths are protected from malware trying to insert itself into the system. So the stuff that's labeled not set, if it can be removed individually for Mac, take it out. If it works on the other platforms, it doesn't hurt anything and can leave it in. |
|
@Chris-AC9KH Roger, wilco. |
fc2dce7 to
0f0353e
Compare
|
@wmiler That's a good place for it, I moved it to its own tab and reverted the Audio tab.
|
0f0353e to
7e488ae
Compare
I would say, looking at the code, it's probably easier to leave it in there for the other platforms, at least for the Cross Platform block. From a malware standpoint, it would take a very sophisticated attack that tries to detect if Xcode is installed to use the Xcode tools to try to get that information, without exiting with a failure that would alert the user (and system) that there was an attempted malware attack. And even that would likely fail. MacOS doesn't use "Defender" or anything like that - it just uses the Unix permissions system to an extreme to protect itself. So it's not going to flag anything as being "malware", just a permissions problem. |
|
OK, I expect this to evolve a lot over time, maybe you can take ownership of the Mac aspects, and someone else can own Windows. |
Yeah, that would work fine. Go ahead and work on it, merge it, if I see anything in testing after that that could be an issue for MacOS I can submit a PR to fix it. |
|
Sounds good, I'm done unless anyone else has suggestions. |
Misc audio device identification and handling improvements Adds diagnostics tab to settings to dump system, app, and device details
7e488ae to
9a10826
Compare
|
A very minor warning from the Windows JTSDK64-Tools build system with the configuration as shown, building commit 7286992. The resulting executable runs fine, and when the same source commit is built on Linux Mint 22.3, no such complaint appears, even though both build systems are at Qt 6.9.3. I notice no difference in the audio enumeration in the JS8Call settings on either Windows or Linux, and all runs fine. 73, |
|
allow_monitors et al are linux-specific parameters so you won't get that warning on linux. Don't get it on MacOS either. Probably just on Windows. This is now merged to master, did not affect MacOS at all. Even the Diagnostic output is pretty good on Mac except for one block that is not allowed access on MacOS. Otherwise, if it fixes linux audio issues, I'd say it's great. I can try building it on arm64 Windows 11 with Qt Creator. But I only look at that if I absolutely have to because Windows 11 and me don't get along very well. |


Refactor audio device settings to use device ID instead of description
Misc audio device identification and handling improvements
Audio device diagnostics
This is an attempt to alleviate some of the Linux audio problems. This does not address the problem where some oddball inputs are not listed, but it does solve the "Requested input audio format is not supported on device" problem. I'd like to get some Linux users to test this, particularly if you have experienced audio weirdness.