Custom Button Bar

I really like the git project https://github.com/FrancescoCeruti/linux-show-player. This is a python interface that creates a panel of buttons that can execute different things - sounds, midi commands, execute files. Unfortunately, I haven’t be able to get it to work on my current soundcard. After several weeks of trying, I’m about to give up.

BUT - it occurred to me that with Audacity’s sophisticated GUI interface, it might be possible to create a custom Audacity button panel that could be used to program different functions, e.g., start recording, play this track, stop this track. Stop and save. I COULD create a button panel outside of Audacity that can use the mod-script-pipe.so interface to control it, but before I go that far, I thought I would ask if the same thing could be done from within Audacity itself. The ultimate goal of this is to create a “touch” panel that can be used to record a podast with bumpers in real-time - not asynchronously paste it together after the fact. It’s all about workflow.

Anyone have any ideas?

Looks like the interface is created by Qt5.
I’ve done some work with PyQt, and I like it a lot. Qt is a very powerful cross-platform GUI toolkit.

When Audacity was first created, WxWidgets was chosen as the cross-platform GUI toolkit as there were doubts about the license terms of Qt at that time. Qt now has a clear dual licensing model, suitable for open source (free license) or closed source (commercial license) projects. Audacity is heavily integrated with WxWidgets and is unlikely to switch to Qt as that would require a massive rewrite of hundreds of thousands on lines of code.

I have seen an experimental version of Audacity with a much simplified touch screen interface. Unfortunately the developer of that feature has not been engaged in Audacity development for over three years, and as far as I’m aware he never released the source code. So yes it is possible to make a custom touch screen interface, but it’s not an area of current development.

I expect that you find Audacity difficult to work with for “real-time” production. From the very start, Audacity was designed as a “post production” (paste it together later) type of application, so everything is designed that way. If you need to handle multiple streams simultaneously, you may be better to design something from the ground up (there are high level audio libraries available for Python, and Qt can massively simplify the development on nice, cross-platform GUIs).

There is some developer interest in developing a HTML5 interface, and some preparatory work has begun on that, but it’s a long way off before anything usable will be available.

There’s some information about what is coming soon in the new scripting interface here: https://alphamanual.audacityteam.org/man/Scripting_Reference

Thanks for the detailed reply. You don’t happen to recall the simplified interface programmer’s name or thread information, do you? If I were to work on a simplified interface, can you point me to any resources?

BIG THANK YOU! :smiley: