View Single Post
Old 08-14-2017, 09:51 AM   #1
White Tie
Pixel Pusher
 
White Tie's Avatar
 
Join Date: Mar 2007
Location: Blighty
Posts: 2,547
Default Custom colouring for Themers

When making a theme, you have some decisions to make about how you use the custom colours that the user may have selected. They can choose custom colours for panels (MCP/TCP) and for media item backgrounds, and can range across the entire RGB spectrum.

-------------------------------------------

Legacy Colouring

This is the default method when you start a new theme. As with almost everything theme related, if something was once done one way then it can still be done that way, and this remains a valid approach.

The legacy colouring method applies a solid block of the chosen colour as a composite over the entirety of the panel or media background. For the TCP/MCP this is a some/none program preference that the user sets (and they can never get 100% the colour they chose), for the media items there is a 'tint strength' preference that the user needs to adjust to preference for each theme, though its setting is stored as a program preference and not with the theme.



This a robust way of applying custom colours and a good place to start with your theme. Just be aware that you can't choose where the colour goes or how the composite combines with your colours, and the user can't actually get the colour they chose anywhere on the TCP/MCP and only on media items if they set the tint strength to 4.

Its important to note that the tint strength does not affect the actual peak colour, which is composite of the theme peak colour and the chosen chosen custom colour, and is an on/off preference made by the user. This is valued by some users because it allows them to have reversed colouring, where the background is coloured but the peaks are uncoloured, and works well enough if they don't choose extremes of custom colours and don't have the media items displayed on top of the media item. You could design for this appearance and then instruct users to set their preferences to suit, remember to also instruct them how to change things back if they stop using your theme, because the changes would be program-wide and permanent.

-------------------------------------------

V5 Colouring (Optional)

Enable by adding the line 'version 5' to your rtconfig.txt.

We have a lot of control over how images are applied and stretched in Reaper, thanks to the pink and yellow lines. PNG files can also have an alpha channel. In V5 we gained the ability to leverage these two factors to solve many of the design limitations and unpredictability problems we were having with the legacy custom colouring methodology; the alpha channel can now set the degree to which the custom colour is seen.

As an example, here are how variations of transparency would appear when applied to the alpha channel of the default 5 theme's tcp_bg and item_bg. Note that the track number bar is fully transparent in each, so that the user always gets a splash of the exact colour they chose.



As you can see, on the media items these transparencies duplicate the tint strength settings of the legacy method.

The images are composited over the code colour. Any transparency in your tcp_bg.png, for example, shows through the underlying 'unselected track control panel background' code colour, which brings back the ability to (somewhat, depending on your design) allow users to tweak theme colours using the theme tweaker like they used to back in the pre-V3 days. This is also where the custom colour is applied, as a 100% solid block of that colour.

Using the usual 'front' commands, it is therefore possible to layer panel elements of your design to allow the colour through to then be masked off by the alpha channel of higher elements. Pink and yellow lines can be used as usual to determine how your transparency areas respond to resizing of the panel.

-------------------------------------------

Optional Preference grey-out

If you are using the V5 method, obviously the legacy tint controls in the user preferences won't have any effect on your theme, since these factors are now achieved by the user editing the transparency of the images, or you providing pre-edited images for them to swap between.

To signify that those preferences won't have any effect, you can grey them out by adding the line 'tinttcp 0' to your rtconfig.txt. 100% of users will understand what that greying-out signifies, and it won't cause any of them concern or confusion. Trust me. Anyone who says that greying-out preferences was a cockup is fake news
__________________
The House of White Tie
White Tie is offline   Reply With Quote