Skip to content
This repository has been archived by the owner on Dec 18, 2022. It is now read-only.

On Linux, "audio device selector" toolbars is too small and dropdowns are cut off #435

Open
1 task done
nyanpasu64 opened this issue Aug 8, 2021 · 26 comments · May be fixed by #543
Open
1 task done

On Linux, "audio device selector" toolbars is too small and dropdowns are cut off #435

nyanpasu64 opened this issue Aug 8, 2021 · 26 comments · May be fixed by #543
Assignees
Labels
bug Some kind of fixable problem was encountered
Milestone

Comments

@nyanpasu64
Copy link
Contributor

  • I have read the specified guidelines for issues

Describe the bug
On Linux, the "audio device selector" toolbar is too small and cuts off the left side of the combo boxes/dropdowns.

To Reproduce
Steps to reproduce the behavior:

  1. Install and run Tenacity (or Audacity) on Linux.

Expected behavior
The toolbars are expanded, or the dropdowns are shrunken, so the audio device selector dropdowns don't have their left sides cut off.

As a workaround, you can drag the right side of the toolbar to expand it until the dropdowns are fully visible.

Screenshots
If applicable, add screenshots to help explain your problem.

https://twitter.com/TenacityAudio/status/1424146535386865668

screenshot

Additional information (please complete the following information):

  • OS: I'm using Arch Linux and KDE.
  • Version: long-standing issue since Audacity 2.4.x.

Additional context

Looking at the tweet linked above, apparently the issue also happens on GNOME. I think this issue happens on all Linux DEs where WxWidgets is backed by wxGTK and GTK 3, on both low and high DPI desktops, but I don't encounter it on Windows.

@Be-ing
Copy link
Contributor

Be-ing commented Aug 8, 2021

The screenshot on the right is how it looks with wxWidgets 3.1.5 on a high DPI screen. I don't know if this affects lower resolution screens. I also do not know if the bug is in Tenacity or wxWidgets.

@CHJ85
Copy link

CHJ85 commented Aug 8, 2021

Maybe a pop-up dialog would be a better solution than the drop down menu?

@Be-ing
Copy link
Contributor

Be-ing commented Aug 8, 2021

Why is this even in the main window?

@akleja
Copy link
Contributor

akleja commented Aug 9, 2021

Channel assignment should be on tcp, channel count on track creation, audio device / host in device settings imo.

Also the strange decision to have field description on the two first lines of the channel count selector.
And being able to select how many channels, but not which of those channels, which makes recording on a multi channel interface through ALSA virtually impossible.

@Be-ing
Copy link
Contributor

Be-ing commented Aug 9, 2021

Mockups or PRs would be great @akleja! I don't have the capacity to follow the design discussions in detail and work on the build system simultaneously but you seem to have good ideas.

@akleja
Copy link
Contributor

akleja commented Aug 9, 2021

I do have a mockup in the works. So far it's limited to the main window, but I plan on extending it to include some rework of the settings. The tcp needs a lot of love as well.

Regarding the toolbar in question, all those settings are present in the device settings in the prefs window. Removing it would not hurt in the least imo. But maybe replacing it with a small status toolbar that shows buffer size and samplerate and which acts as a shortcut to the device settings might be a good replacement. I'll see what I can come up with.

Thank you! You're doing an amazing work on the build system.

@akleja
Copy link
Contributor

akleja commented Aug 9, 2021

Perhaps an alternative toolbar could look something like this?
device_bar
Just a quick initial mockup. The cog would turn red when the audio device is offline.

@Be-ing
Copy link
Contributor

Be-ing commented Aug 9, 2021

replacing it with a small status toolbar that shows buffer size and samplerate and which acts as a shortcut to the device settings might be a good replacement.

Good idea.

@Be-ing
Copy link
Contributor

Be-ing commented Aug 9, 2021

Wait, are the audio buffer size and sample rate really so important to always be visible on screen in the main window? Maybe just the cog would be sufficient.

@n0toose n0toose added this to the 0.1.0 milestone Aug 9, 2021
@akleja
Copy link
Contributor

akleja commented Aug 9, 2021

No perhaps not, that might just be my personal preferences. Perhaps those could be shown in the corner of the status bar?
But just removing the toolbar and adding a shortcut to the settings might not be enough.
I've heard a lot of people (mostly non musicians) switch between multiple devices like headsets and such often. I'll have to give this more thought.

@emabrey emabrey added the bug Some kind of fixable problem was encountered label Aug 10, 2021
@akleja
Copy link
Contributor

akleja commented Aug 13, 2021

I've been thinking about the issue about how to be able to change audio device with ease.
Here's a mockup of one solution, using the icons of the input/output level sliders as buttons, and using wxMenu to select device.
device_2
I haven't begun working on implementing it yet, wanted feedback first. But after looking at the code it should be fairly straight forward.
Another idea would be to merge the sliders to sit under their corresponding meter, and use the icon in a similar way. Might be less confusing and less scattered.

I have begun moving some stuff to the device settings, so things aren't scattered all over the place. Default sample rate was no problem, but moving the current/project sample rate is a bit more involved since it needs quite a bit of restructuring work to tie it free from the project selection manager and put it back into the project manager. Also I'm not super sure if we need both settings, but I guess they both serve their purposes.

Assigning input channels, and selecting which track to record on is a related issue, but that I haven't looked into yet. I'd prefer to set that on the TCP. Right now you can't even select input channel, and the behavior of what track things get recorded on is super strange to me.

@Be-ing
Copy link
Contributor

Be-ing commented Aug 13, 2021

using the icons of the input/output level sliders as buttons, and using wxMenu to select device.
Another idea would be to merge the sliders to sit under their corresponding meter, and use the icon in a similar way. Might be less confusing and less scattered.

I like both of these ideas.

@akleja
Copy link
Contributor

akleja commented Aug 13, 2021

Cool, I'll look into it a bit more after the weekend. I'm leaning towards merging sliders and meters. It'll be a bigger challenge, and will take some time, but it's probably worth it in the end.

@Be-ing
Copy link
Contributor

Be-ing commented Aug 13, 2021

I hope you don't mean overlapping the sliders and the meters like Traktor:
https://cdn.digitaldjtips.com/app/uploads/2010/10/09145942/traktor-pro1.jpg
That obscures the view of the meters. If you mean putting the sliders adjacent to the meters, yeah, good idea.

@akleja
Copy link
Contributor

akleja commented Aug 13, 2021

Oh yeah no way. I agree that'd be utterly useless.
I'd thinking meter above, slider bellow, and menu button to the left.
I'll whip up a mockup later before starting with implementation just to be extra clear.

@akleja
Copy link
Contributor

akleja commented Aug 16, 2021

I've started moving things around and transforming the meter toolbars to input/output toolbars.
Here's a screenshot of how it's looking so far:
io_toolbar
The next step is adding device selection to the menus, which will be the bigger challenge.
And then improving the resizing/placement of elements in the toolbars. Right now I haven't implemented a vertical layout, but I've at least planned for it.

@Be-ing
Copy link
Contributor

Be-ing commented Aug 16, 2021

That looks good, keep going!

@akleja
Copy link
Contributor

akleja commented Aug 18, 2021

I've been making some progress. The functionality is there at last. The sizing works ok, though it needs some more work.
The layout now flips when resized as it should.
There's a lot left to be done, but I'm getting there (slowly)
io_tb_3

@Be-ing
Copy link
Contributor

Be-ing commented Aug 18, 2021

Nice. Could you open a draft pull request?

@akleja
Copy link
Contributor

akleja commented Aug 18, 2021

Yeah I'll have to do a bit of cleanup first, but I'll open one when that's done.

@akleja
Copy link
Contributor

akleja commented Aug 18, 2021

Another question. Do we really need the device menu in the "Extra" menu? Currently it's tied into the combo boxes in the device toolbar. I guess I could migrate the code into a more suitable place. It just seems a bit redundant with the device settings existing and all, but perhaps it serves a purpose?

@Be-ing
Copy link
Contributor

Be-ing commented Aug 18, 2021

Where is the "Extra" menu that you are referring to?

@akleja
Copy link
Contributor

akleja commented Aug 18, 2021

It has to be enabled in prefs/interface

@Be-ing
Copy link
Contributor

Be-ing commented Aug 18, 2021

Yeah, that Extras > Device menu should be removed. It doesn't even do anything on my machine. Also the whole Extra menu should probably be broken up and moved to appropriate places. IMO "extras" and "advanced" modes are always cop-outs for actually making a good design.

@akleja
Copy link
Contributor

akleja commented Aug 18, 2021

Yeah I agree. I'll remove the Extras > Device menu for now. The rest has to be sorted out later, but a lot of it seems superfluous to me.

@akleja
Copy link
Contributor

akleja commented Aug 21, 2021

I just tried using a screen reader on linux. The screen reader support isn't that great. I'm thinking it might be a good idea to add the new i/o menus to the Extras menu anyway for now. Maybe later all the stuff in the extras menu can be moved out into the regular menus, but not having the device options in the menus is probably a bad idea for visually impaired users who would have a hard time using the toolbars. And at least with Orca, menus are a lot smoother to navigate than the prefs window.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Some kind of fixable problem was encountered
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants