SynthMaker

GUI Kits Building best practices

Archive · 2011 5 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

gluon ·

Hi there !

I'd like to design my GUI elements toolkit (using knobman, or illustrator etc)

I'd like to know how I can do that. I mean, imagine I want to rebuild ALL the elements, and want to make multiple kits, how should I organize that in the SM GUI itself ?

all practices & experiences would be appreciate 😀

trogluddite ·

One technique that is often used with bitmap controls is to make a control that is any 'empty shell' - all of the mouse and drawing stuff, but no bitmap loader. Then use a separate loader module to send the bitmap to all of the knobs through a wireless link. That way you can very quickly update all the knobs on a whole GUI with just one file loading operation for very fast 're-skinning'. The loader module could even use a bitmap array, so that you could switch between several pre-loaded skins.

One other little thing to watch out for - when you make a grid of animation frames in knobman etc. - always leave a small empty margin around the knob graphic (even 1 pixel is enough). If the images go right up against the border, SM's anti-aliasing doesn't quite work, and you get an ugly hard edge at the 'joins' in the film strip. It's really easy to do this by accident if you use drop shadows to make your knobs look more 3D.

infuzion ·

trogluddite wrote: One other little thing to watch out for - when you make a grid of animation frames in knobman etc. - always leave a small empty margin around the knob graphic (even 1 pixel is enough). If the images go right up against the border, SM's anti-aliasing doesn't quite work, and you get an ugly hard edge at the 'joins' in the film strip.

I used to leave an extra border around vector graphics also due to the anti-aliasing rounding also. Lately I don't really care, but I still see it.

gluon ·

trogluddite wrote: One technique that is often used with bitmap controls is to make a control that is any 'empty shell' - all of the mouse and drawing stuff, but no bitmap loader. Then use a separate loader module to send the bitmap to all of the knobs through a wireless link. That way you can very quickly update all the knobs on a whole GUI with just one file loading operation for very fast 're-skinning'. The loader module could even use a bitmap array, so that you could switch between several pre-loaded skins.

One other little thing to watch out for - when you make a grid of animation frames in knobman etc. - always leave a small empty margin around the knob graphic (even 1 pixel is enough). If the images go right up against the border, SM's anti-aliasing doesn't quite work, and you get an ugly hard edge at the 'joins' in the film strip. It's really easy to do this by accident if you use drop shadows to make your knobs look more 3D.

would you have a little template/sample of this ?

(thanks to both of you for your precious answers!)

trogluddite ·

Here's an example using a slightly modified version of the stock bitmap knob. I've put in comment boxes so that you can see what has been changed inside the knob module.

Using the transmitter module, you can select one of four skins (just add more options to the '1,2,3,4' selector string to add more - you could even give them descriptive names). When you click load, it loads a new bitmap into the currently selected skin. Note that all of the bitmaps loaded must have the same frame size, as entered into the transmitter properties, but they can each have a different number of frames.

If you wanted to add similar transmitters for other controls (e.g. switches, different size knobs) be sure to re-name the wireless transmitters and receivers for each type of bitmap.

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.