I’m a little confused on how the plugin view works. It just scrolls through each of the plugins consecutively?
This may get difficult when you have duplicate plugins or simply a whole lot of them on a pedalboard.
Although conceptually I think it’s still powerful (especially combined with the parameter groups!)
Really nice out of the box thinking and adding a whole new UX on top of the existing system!
Thanks @dreamer, I’ve just added some notes on the TODO, yesterday was very late
This problem can be mitigated by selecting and reordering the plugins to show in the view
I’m also thinking if we can allow to assign a label to the plugins in the pedalboard.
Anyway the code is not yet ready and I like the concept, the view is also useful to quick change a plugin parameter during rehearsal or the performance.
Even if the code is not ready, would you mind describing a bit how you went about expanding the Mod GUI and how you hooked this into the code running in the MOD device?
I didn’t grap all the code and the architecture of mod-ui
I’m not so expert with all the UI frontend tecnoligy used, but I’ve +30 years of professional experience in programming
My english is… bleah
General approach
Anyway it took me more than 2 days to write the module and this was my approach:
Read the code to get an idea of the library and frameworks were used in the frontend:
a. HTML+Javascript
b. JQuery+UI
c. Mustache
d. Less with Grunt
Study a bit of everything
Start to modify the codebase and see what happens:
a. Try to add an icon on the menu and open a new page (I searched for similar code: pedalboard library, bank manager and file manager)
b. Write somenthing similiar and hook on the UI
c. Try to reuse the plugin settings dialog for most of the UI (that was very hard at first)
Follow the conventions used, even those that I dont’ like
Tecnical notes
To be more specific all the UI is included in the index.html with the orchestration of the Desktop (desktop.js) class, Host (host.js) class, Pedalboard (pedalboard.js) and several other files to glue the html code + the mustache templates + the js behaviour.
The mustache templates are in the folder ‘include’ and are processed and served by the python backend in a single js file with all the content stored on a js opbject so it can be used by mustache in this way:
That’s really impressive, such a serious enhancement for those who use the web-ui while performing.
I was wondering if ther’s a way to estimate the added footprint on Dwarf and, assuming that these improvements will eat some cpu cycle, if we should expect an increased workload also when we go headless.
I just tested it on a raspberry pi with a 7" touch display and I love it. I’m not sure I feel brave enough to push it to my dwarf though. Do you have any safety advice for those who would like to install this on a mod device?
Before going too tecnical: I’ll release all these changes (and some more I’m still developing) in a custom dwarf image when I feel they will be ready for a broad testing
I think that’s too early to push on the dwarf, I still haven’t done myself, but from my understanding it can be done safely because in any case you can reflash the original firmware image without any problem.
These are the step required:
Compile the native libmod_utils.so present in the mod-ui/utils with the dwarf toolchain (the same you will use for developing a plugin)
deploy the .so file in the same location of the previous one: /usr/lib/python3.4/site-packages/modtools/libmod_utils.so
run the mod-deploy.sh script
if you want you can take a backup of the original files (see the script for details) present on these folders:
I still don’t know exactly how to do step 1. But for the Dwarf I suppose the step 3 should be done from a mod-ui based on branch hotfix-1.13 for firmware 1.13 or plugin-store…