drowe67 / freedv-gui

GUI Application for FreeDV – open source digital voice for HF radio
https://freedv.org/
GNU Lesser General Public License v2.1
206 stars 52 forks source link

Default Audio devices #13

Closed drowe67 closed 3 years ago

drowe67 commented 5 years ago

It would be nice if freedv-gui worked out of the box without any audio device config. So for fresh installs:

  1. Single card rx-only setup
  2. Using the default system play and rec devices
  3. Set tx devices to "none".

So the new user could:

  1. ./freedv (or click on app in Windows)
  2. Select modem and Press 'Start" and it would start decoding off air signals (or canned files)

A variation for this (especially in Linux) would be a command line option to decode a wave file:

./freedv --mode 2020 all_2020.wav
tmiw commented 3 years ago

@drowe67, I've been thinking about how to integrate this as part of a more extensive update to how audio configuration works. It would be nice for the "first time setup" to be a simplified version of the current audio dialog that has two drop-down boxes (one for speaker/microphone sound device, one for the radio's sound device if any), but I'm not sure whether that should be its own thing or a tab on the existing audio dialog. Thoughts?

OTOH, I spent this weekend setting up my own Raspberry Pi-based SDR setup in the process of helping another ham debug his and my sound setup for WSJT-X (I haven't even tried to get FreeDV working on it yet) might be one of those setups that won't work with the proposed simple sound setup. I'm not sure how common that is but if it's anywhere near common on the Linux side, I could see the "simple" config being useless for anyone other than people using Windows or Mac. In that case, it might be okay just to default the config per OP and remind users to check the audio settings before proceeding.

drowe67 commented 3 years ago

Hi @tmiw - thanks for taking a look at this one. I agree it would be good to put some thought into this one before cutting any code. What might makes sense to us (or seem like fun to build) may not actually help in the real world. Some random ideas:

  1. Linux sound is likely to be tougher than Windows/Mac to make plug and play. But then again 90% of the users (est) are Windows and we could assume Linux users are up for a bit more technical fiddling.
  2. It might be worth watching a few first time users to see what problems they hit.
  3. We could also ask new users where they hit problems. However this might be less reliable - you'll get a lot of suggestions but it will be hard to work out what the important ones are.
  4. How do other programs do it? Are they really more straight fwd to set up? Why?
  5. Is it really a problem we should be spending time on? How many people are giving up because they can't set up FreeDV?
drowe67 commented 3 years ago

One more thought - I also feel adding any more tabs or GUI elements should be considered carefully - especially if they duplicate current functionality. Would be much better to take something away and make the current interface more intuitive/less error prone (if we can show it is indeed a problem) than provide more options.

tmiw commented 3 years ago

@drowe67, I think a lot of the confusion boils around the need for two sound cards, really; most others only need one sound card. For instance, WSJT-X asks for specific input and output devices as shown below:

Screen Shot 2021-03-10 at 11 25 34 PM

In the above example (using a virtual sound card to interface with a SDR program running on my Mac), the same device is used for both receive and transmit. I imagine this is the most common scenario overall, not just on Windows and Mac--especially if you're using a "traditional" radio and not an SDR. The one instance so far where I've needed to use two separate devices is on Linux, where the snd_aloop module seemingly does one way virtual sound devices; for that instance, one device handles transmit audio and the other handles receive. Even with that, though, I've had to screw around with device routing in pavucontrol to get things working correctly with WSJT-X--I haven't even tried getting FreeDV working with such a setup yet since it's intended to be fully headless and remotely operated.

Anyway, I attempted to address the confusion earlier this year by changing the labeling on the Audio Options dialog for the various device lists. I'd like to think that helped at least a little bit, but I've also not done any formal A/B testing to figure that out for sure. I'll ask around and see if I can get an idea as to what remaining difficulties there are with using that dialog.

drowe67 commented 3 years ago

@tmiw thanks for those thoughts.

I'm pleased we suggest an initial Rx-only step we in the user manual (and provide samples), hopefully that's helping people get started. Yes I agree your new Audio Config labels make more sense.

Good point on the same sound device generally being used for Tx and Rx. One exception is when using web based SDRs, which does seem quite popular.

It's actually hard to say if set-up difficulties are still an issue - I'm not sure how to measure this and get reliable feedback from end users.

tmiw commented 3 years ago

@drowe67, Walter wrote back and suggested a further clarification with the labels. For instance:

Old: Input To Computer From Radio New: Input To Computer From Radio (Digital)

or

Old: Output From Computer To Speaker/Headphones New: Output From Computer To Speaker/Headphones (Analog)

(in other words, tagging each device selection as either analog or digital)

It seems straightforward enough to do, agree?

Additionally, defaulting to a one sound card setup per OP is fairly easy to do, too. However, I'm not sure that'll have much benefit other than being able to play the sample audio files without additional setup.

Other than that, though, I'm not sure how changes could be tested other than simply doing a few of them (in experimental branches) and sending out builds on the digitalvoice list. The downside, of course, is that the people on there are more likely to have had experience setting FreeDV up, thus not being 100% representative of what a new user would do.

drowe67 commented 3 years ago

Hi @tmiw. I actually find the digital/analog labels confusing. But if you and Walter like them I don't mind the change. It would need to be mirrored in the manual.

I do feel that in this thread you and I have had a good discussion so perhaps there is nothing really ground breaking we can do to improve this part of set up. There may just be some irreducible complexity in the set up, a hump new users have to get over.

Perhaps a figure in the manual might help, or instructional videos.

tmiw commented 3 years ago

@drowe67, I looked at the current user manual and the steps seem to align with what the OP is proposing anyway. I'm fine just closing it unless we hear additional feedback (i.e. if having the application auto-default to the single sound card config as per the manual is beneficial).