This is a really long post. Sorry about that! I just felt I have to explain my views a little bit. So:
I'm a happy user of QJackCtl - been several years now. If there is single program that is involved in my every live setup and home recording session, it is QJackCtl.
However, when I have explored deeper and deeper to Linux audio, I have found interesting features from QJackCtl - usually learnt from tutorials scattered around the web. It took me two years to realize that I can save my connections in Patchbay. One year more, and I found the Alsa midi bridging feature. Few years more, and I realized that I can choose my soundcard via it's name in the Interface-box, not only by its id.
Now I think I know QJackCtl:s features quite well, and I'm started to realize how steep the learning curve really is in some parts of the program. I never remember how the preset saving function works in options-screen. It wasn't until last week when I made my first succesful presets. Before that I just ignored whole feature because it was so clumsy to use. I have also found several discussions on the net, where people can't get their soundcard working because they don't know they could press that little right-pointing arrow next to the Interface-selection box and get an easy list of soundcards.
This all led me to thinking about fixing the GUI a little bit. Don't get me wrong: I really like QJackCtl. I just think it could be a little bit easier to use. I'd like to see little changes here and there: not a whole-new-thing someone could call "an unholy mess"...
In my opinion most important dialogs are the "Setup" dialog and "Connections" window. I made few UI mockups and collected a list of my ideas. Here I first explain and then try to justify them. Mockups are attached.
First tab should be Jack settings instead of Settings. This is because the first tab has all the parameters sent to Jack, hasn't it? Other tabs are QJackCtl configuration options, if I've understood correctly. (Options in those other tabs could be grouped better, by the way.)
Interface selection should be changed: by pressing the big down-facing arrow user should get the interface listing that is now opened from little right-pointing arrow. A list of recent device names should reside in that secondary menu, opened from the little arrow. This way, the menu I believe most users most often need, is opened from the most visible and most obvious button.
Most of the settings should be hidden. User could easily access them by pressing Advanced settings button. (QJackCtl should also remember the visibility setting so that experienced users could make advanced options visible once and forget whole thing.) This way the UI could emphasize the most important options. One of the biggest problems when I started using Jack and Linux was that insane amount of options in "Setup" window: all tutorials told me to "try different options to get solid system". It took me long time to realize that only first three or four rows affect overall stability. Of course I'm not sure if my choices are correct. Maybe Priority is more importan than Periods/buffer an so on. There are two mockups of this: advanced options collapsed and opened.
Label reading Midi driver should be Alsa midi bridge instead. And options: Disabled, Show hardware ports and Show all ports. (If possible, the alsa_pcm-sockets in Connections window should be renamed as Alsa midi bridge.) "How I can connect my midi keyboard to Yoshimi? They are placed in different tabs" is one of the most common questions in the forums. I think this option together with the renamed tabs in Connections window will make this whole thing more self-explanatory. I have done mockup of the menu.
Frames/period should maybe have something related to Buffer size in it's tooltip. That way users could maybe better figure out what it does? I'm not sure, but I think in Windows and Mac world many manufacturers have option called "Buffer size" in their utilities?
Audio label could be Audio I/O instead. That way people finding capture/playback -features could more easily find them.
Tabs should be labeled as: "Jack audio", "Jack midi" and "Alsa midi". At present few people really know the difference between "MIDI" and "ALSA" tabs. When I first used QJackCtl, I was really confused when my midi keyboard didn't show up in the "MIDI" tab. Clicking "ALSA" didn't seem like reasonable choice beacuse I didn't know Alsa handles also midi. So I closed the whole program because I thought it was broken.
Expand all should change to collapse all when clicked. This is presented in Mockups.
Labels on top of connection field could maybe be a second way round: Output ports / Readable clients and so on. Is the "Readable clients" even necessary? This change isn't so crucial however, because I think everyone understands the present labels as well.
There should be a new button called Save Connections (opens Patchbay window, maybe also does automatically the same as hitting the "New" button in Patchbay Window.) This is not present in my mockups, but I think it's a really important change. That button would immediately open up the purpose of Patchbay window to most of the users.
When clicking single connection line, there could be an option called save this connection. That would also open a patchbay and add connection to the currently active patchbay. (I think this would be more like a whole new feature. Maybe I'll discuss this further in the Patchbay section.)
To be continued...
I have even more ideas regarding the Patchbay and Session windows. However my post is already now so long that maybe it's better to present those ideas later on.
What do you think about these ideas? I'd really like to help you if you decide to realise some of the aforementioned changes.