|
Muzys is fully skinable, and these skins are 100% platform-independent.
This means that if you make a skin on Windows, it will work on MacOS too and the other way around.
The best way to start creating a new skin is by duplicating an existing skin folder, and start changing the bitmaps with a painting program like Photoshop or Paint Shop Pro etc ...
Muzys' skins resides in your Muzys/Skins subfolder.
Each skin is put into a separate subfolder, and must contain a "Preview.Bmp" of 320x240 pixels, which is used as a preview for when the user is choosing a skin (via System menu : Skins), and an "Interface.Set" file which contains this skins' Layout assignments. Layouts are explained below.
Some of these bitmaps have a "mask" on top, which is used to blend the bitmap with the background. More on such masks below.
Note that all bitmaps must have even widths. And if a bitmap may vary in size, it is best to make them as small as possible so not to spoil the users' memory and cpu resources.
Now let's go into the details ...
The very background in Muzys comes from "Backgroundtexture.Bmp". Changing this bitmap changes the Muzys background. It's as simple as that.
The icon files are named "Icon___.Bmp", and they have this graphical format :
An icon bitmap has 1 mask on top, and some states below. The above example has, like most icons, 2 states.
An icon comes in 3 different sizes :
The bitmaps listed below don't have many special properties. Most of them have the typical Muzys graphical format : a mask on top, and some states below.
A Template is a combination of a Bitmap File (.Bmp) and a Setup File (.Set).
The bitmap contains the graphical design, and the setup file contains a list of properties for that bitmap. Most of the time, those properties indicate fields i.e. rectangular areas in the bitmap that have a special purpose.
If you've started editing a Muzys Skin from an existing one - which is recommended - you don't have to worry about these template propertiesas long as you don't change any field positions or sizes. Otherwise you have to update the relevant .Set file !
Muzys uses the following Templates :
The properties listed in the .Set file should have self-explaining names like, for example, "generator1-rectangle", which is the rectangular area where you've designed to be generator1.
Rectangles are described by as "rectangle=X,Y,Width,Height".
Colors are described by as "color=R,G,B".
Extra info on the ZynthPatchEditorTemplate :
This template uses a special format so that it can be stretched horizontally so to fit the width of the user's screen :
The zones 1, 3, 5, 7, 9, 11 and 13 should be designed so that they can be tiled horizontally, since they're used to stretch the bitmap. These zones are defined in the .Set file as "zone*-rectangle".
A Layout is also a combination of a Bitmap File (.Bmp) and a Setup File (.Set), but it is used in another way.
The bitmap contains the graphical info, and the setup file contains a number of parameters telling Muzys how to use that bitmap. All possible parameters are listed below.
But let me first explain you the basic principle :
A Layout is meant to be stretched / shrinked to a new size. That's why we divide the bitmap in 9 pieces.
The 4 corners are never stretched, and stay always the same.
The top and bottom sections are only stretched horizontally.
The left and right sections are only stretched vertically.
And the body section can be stretched in both directions.
For now, stretching is done by repeating.
Beside this cut-up, each layout can have some margins for its contents.
Let's say we have a layout for a button.
Though, for example, the top-, left-, bottom- and right-sections may be, for example, 32 pixels,
we may not want the text in that button to be that far from the borders.
That's why we can define the margins, which are quite independent from the above described sections.
To summarize :
* The top-, left-, bottom- and right-sections are used to stretch / shrink a bitmap.
* The top-, left-, bottom- and right-margins are used to place the contents.
A Layout can contain different 'states'.
For example, a layout for a button needs 2 states : one for the Off state, and 1 for the On state.
These different states are put vertically, thus each below the other.
Most of the times, a layout bitmap has also a mask, which is a full RGB mask for the layout.
Such a mask is used to tell where the background should come through, and were the layout should come through.
But since a mask can use full RGB values, anything in between is possible too !
But please note already that these 'in between' values cost more calculation time, and thus slow down your skin !
Muzys automatically detects what kind of mask you use, and that can be :
Now here are the possible parameters of a Layout.Set :
Only the statecount parameter MUST be given.
Other parameters may be omitted, since Muzys will calculate good defaults for them :
A last thing to tell is how we can use these layouts to make a skin.
The answer is in the "Interface.Set" file.
This file contains all the names of the variables that Muzys uses when building the Graphical User Interface.
But don't edit this file while Muzys is running and your skin is loaded.
Instead, use [Control]+[Alternate]+[F4].
This will call a 'hidden' menu from which you can choose "Start editing layouts ...".
From then on, where ever you [Control]+click on a GUI object, a special window comes up where you can edit the
layout-assignments for that object.
If you don't find the right parameter, press [Control]+[Alternate]+[F4] and choose "Edit InterFace Settings"
which really lists all possible parameters (cfr. "Interface.Set").
When editing is done, you may press [Control]+[Alternate]+[F4] and choose "Stop !", but this is not necessary. Your skin edits are automatically saved when you change skins (via System menu:Skins), or quit Muzys.
Muzys uses a private font format because of platform independency, and fixed font heights.
The are 3 fonts :
Muzys 3 has undergone some changes in the skinning system and this has the consequence that Muzys 2 skins are incompatible.
They can be converted though :
|