From the original SynthMaker forum (2004–2014), with its members’ names and dates.
acg2010 ·
I have seen several projects such as Corestyler's and others where the front panel GUI is configureable or switchable. Being able to do it using text files and external graphics and animations seems very efficient and helps to keep the synth/effect size down.
I am sure just using selectors and triggers to change the front panel has already been tried. I have put together a simple example using the image module and the animated knob module with selectors. However, before I start developing this further, I was wondering if anyone had feedback on the pros and cons for such an approach. A few obvious cons are duplication of strip loader modules, increase in size from loaded graphics (GUI front panel and knob animations) and need for many selector primatives to make it work. But for smaller projects, maybe it would be ok. I did have to add redraw modules to speed up the switching of the GUI and knobs. Another problem would be adequately specificing the dimensions and specification of the knobs and front panel graphics to make it work right for user added components.
Anyway, just wondering what others thought.
BTW - just noticed that I did not have the same number of frames for Knob 2 so it disappears at full range (an easy fix).
trogluddite ·
Hi there,
Here are a few thoughts...
- Share knob bitmap loaders.
So long as you only want to use a handful of different size knobs throughout the design, you can remove the loader parts from the knobs themselves, and then use a single loader module (or one per unique design) that sends the bitmap/dimensions etc. to the knobs using wireless links.
(NB: if you use the same bitmap multiple times, SM can spot this and will load the bitmap into memory only once - so even with multiple loaders, the graphics memory needed may not be as much as you think)
- Knob Dimensions.
A simple system here is to assume that each frame of knob animation is square. So for example, if you use a vertical strip, assume that the bitmap width sets both the horizontal and vertical size, then calculate the number of frames with a simple division. This makes things a little more robust - for example, it would have prevented your 'disappearing knob' due to it being one frame too small.
- Consider using file references
This is a little more tricky to set up, and will slow the switching, but that may be a reasonable compromise if memory usage is a problem. Instead of storing multiple graphics inside the schematic, save them externally in the plugin folder (or a subfolder). Then load these files dynamically as and when they are needed (filenames can be stored as VST presets - see CoreStyler's great example HERE). It's also possible to save the filenames in a small "user settings" text file, rather than the preset system, if that would be more appropriate (e.g. to retain the settings between sessions).
Just some food for thought - I think there are examples of these things around the forum, but I'd be happy to post some examples if they prove hard to find.
acg2010 ·
Thanks trogluddite, excellent suggestions and observations that I had not considered. I will continue to work on it and if come up with anything useful, will post an update.
CoreStyler ·
I will release my own SM skins tools.
You can take a look here:
http://www.youtube.com/watch?v=GYNbe3FnOgM
You can change images, knobs, sliders, colors, fonts, sizes. You can also add suport for translation (by the same way) and module positions (not tested in a plugin).
I will make it available soon. 🙂
In Hardcore Kicks VSTi 2 is present.
acg2010 ·
Here is the proof of concept using Trogluddite's suggestions. It was done quick and dirty in Skinman. However, when loading new knobs I noticed that it must load each knob individually instead of just loading the knob once for all of them at once. What am I missing?
CoreStyler ·
Include the entire stuff into a text file. create a parser that load all the files.
For example, you do a thing like that:
line 0 - knob1.png
line 1 - knob2.png
Then, create a parser that do "string array get at" and link the relative path where your skins file are saved.
Use this switcher i made.
download/file.php?id=6999
It prevents reset while changing image file.
acg2010 ·
Thanks CoreStyler. I'll have to study up on the parser to use your suggestion.
acg2010 ·
Here is a version following trogluddite's suggestion to share bitmap loaders and use wireless links. Configuring this way resulted in loading of the knobs all at once, speeding up the process. Cutting out all the extra bitmap loaders only seemed to reduce the modules by only <1%. I am still studying the paser and how to implement CoreStyler's suggestion.
Wrote something here? To have a post removed or your name hidden, write to [email protected].