SynthMaker

Configureable GUI

Archive · 2012 8 old posts

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].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.