Old 09-26-2016, 08:02 AM   #1
White Tie
Pixel Pusher
 
White Tie's Avatar
 
Join Date: Mar 2007
Location: Blighty
Posts: 4,936
Default 3. Making a REAPER theme



Please consider reading the stickies on
How to use a REAPER theme and
Common tweaks to a REAPER theme
before going further.

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

As REAPER has grown, its theming capabilities have grown with it. Broadly speaking it has maintained compatibility with themes made all the way back near the beginning. Old themes still work, and new themes still use the same theming facilities that old themes relied on. Additional layers of increasingly powerful theming functionality have been added onto the top as time has gone by, each relying on the existence of (and your understanding of) the preceding functionality.

Layer 1 : ReaperTheme

REAPER's initial theming was based on themable code colours, font assignments and tweakable elements. These are still in use, and their settings are saved in a theme's .ReaperTheme file.
The initial theming also used .ico images, thankfully we effectively don't need to worry about them any more.

Layer 2 : Advanced Theming

In 2007 REAPER added 'Advanced Theming'. This gave support for .png images and additional tweakable elements that had their values stored in an 'rtconfig.txt' file. All of these are still in use.

Advanced Theming SDK.
Theme Images SDK


Tutorial - Reaper Theming with Pink Bits

Layer 3 : WALTER

With the addition of WALTER (Window Arrangement Logic Template Engine for REAPER), some of the themable elements can be resized, repositioned, recoloured and some of the dynamic logic controlling their appearance can be scripted. User selectable layouts are scriptable. WALTER is also within a theme's 'rtconfig.txt' file.

WALTER SDK

WALTER : A themer's guide

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

Deprecated Sticky : Basics of Theme Editing
__________________
The House of White Tie
White Tie is offline   Reply With Quote
Old 08-14-2017, 09:54 AM   #2
White Tie
Pixel Pusher
 
White Tie's Avatar
 
Join Date: Mar 2007
Location: Blighty
Posts: 4,936
Default

An explanation of custom colouring for themers is HERE.

More on tinttcp in the Reaper.ini and rtconfig.txt files, and the associated preferences grey out, HERE.

An explanation of how folder indenting in the TCP works is HERE.

Using layout_dpi_translate to change layouts for HiDPI :HERE

Adjusting themes using scripting : HERE.

Adding theme adjuster functionality to a theme without doing any scripting : HERE.
__________________
The House of White Tie

Last edited by White Tie; 04-30-2023 at 01:07 AM.
White Tie is offline   Reply With Quote
Old 08-15-2017, 07:22 AM   #3
Flaneurette
Human being with feelings
 
Join Date: Dec 2016
Posts: 373
Default

Photoshop PSD template for the Reaper 5 default theme: https://forum.cockos.com/showthread.php?t=194500
Flaneurette is offline   Reply With Quote
Old 12-05-2019, 04:34 AM   #4
lerian
Human being with feelings
 
Join Date: Oct 2011
Posts: 442
Default

Hi White Tie,

Is there / will be an updated walter SDK/Themer guide for v6?

Thanks
lerian is offline   Reply With Quote
Old 12-05-2019, 05:06 AM   #5
White Tie
Pixel Pusher
 
White Tie's Avatar
 
Join Date: Mar 2007
Location: Blighty
Posts: 4,936
Default

The SDK should always be up to date based on how it is auto-generated, I believe, though of course its helpfulness is limited to the dry facts. I might update the themers guide at some point if I have time.
__________________
The House of White Tie
White Tie is offline   Reply With Quote
Old 12-07-2019, 01:36 PM   #6
lerian
Human being with feelings
 
Join Date: Oct 2011
Posts: 442
Default

Thank you!
lerian is offline   Reply With Quote
Old 12-08-2019, 03:36 PM   #7
MEMFIS_AKA
Banned
 
Join Date: Jul 2017
Posts: 192
Default

How to make invisible this one's?
Attached Images
File Type: png Annotation 2019-12-09 003601.png (2.9 KB, 1299 views)
MEMFIS_AKA is offline   Reply With Quote
Old 01-17-2021, 02:14 PM   #8
Joesi
Human being with feelings
 
Joesi's Avatar
 
Join Date: Sep 2009
Location: Vienna
Posts: 109
Default Stacked knob images

Hi to all of you
Hi White Tie,

Sorry if this is a noob question...
I never figured out how to integrate stacked knobs in Reaper.
Is there anywhere a kind of tutorial what to do, given I already designed a stacked knob image?
I'm used to do that in Reaktor, no problems there, but what has to be done in Walter or the png-folders for Reaper to accept those images?

Any help appreciated!!!
I'd look forward to share my themes with the community but this issue always kept me from realizing my visions.
Joesi is offline   Reply With Quote
Old 01-18-2021, 03:30 AM   #9
xpander
Human being with feelings
 
xpander's Avatar
 
Join Date: Jun 2007
Location: Terra incognita
Posts: 7,667
Default

Check the OP and study the WALTER : A themer's guide. There is a section about knob stacks in there, starting from the page 28. Theme Images SDK, also linked to in OP, gives you a list of possible knob stack images.
xpander is offline   Reply With Quote
Old 02-25-2021, 05:53 PM   #10
dimtok
Human being with feelings
 
Join Date: Dec 2019
Location: sthlm, swe
Posts: 146
Default

Hi,

Is the walter theme guide available somewhere in html or similar on the web where the text would be easier to browse? I understand ofc if it isn't.

Thanks,
dimtok is offline   Reply With Quote
Old 04-05-2021, 07:57 PM   #11
JOE SA SA
Human being with feelings
 
JOE SA SA's Avatar
 
Join Date: May 2009
Location: GUADALAJARA, MEXICO
Posts: 557
Default SVG ON Reaper

And how about the Reaper 7 theme in svg? I mean, the whole program would be even lighter. Is it possible, many guys here can do it. Even for SWS. Isn´t it?
__________________
Links caidos? ve a 1joesasa desde tu navegador favorito y ve los videos hospedados en youtube y desde ahora solo en Daylymotion.
JOE SA SA
JOE SA SA is offline   Reply With Quote
Old 07-22-2021, 05:29 PM   #12
toitoy
Human being with feelings
 
toitoy's Avatar
 
Join Date: Jun 2010
Posts: 17
Default

yeah is SVG even a possibility in next reaper versions?
Inter face will be scaleable and the whole theming will become easier. Is it wishful thinking?
toitoy is offline   Reply With Quote
Old 07-23-2021, 02:21 AM   #13
White Tie
Pixel Pusher
 
White Tie's Avatar
 
Join Date: Mar 2007
Location: Blighty
Posts: 4,936
Default

This is the thread for the details on how to make a Reaper theme. For that reason it makes no sense to post feature requests here.

The developers are unlikely to read this thread. I do read this thread, but I am unable to action feature requests. For that reason it makes no sense to post feature requests here.

Regarding SVGs : that would be a feature request. MORE HERE TL/DR : You don't mean SVG you mean vector (not the same thing) and almost certainly no, for the forseeable future. If you wish to respond, please do so there not here.
__________________
The House of White Tie
White Tie is offline   Reply With Quote
Old 08-28-2021, 07:22 AM   #14
JRTaylorMusic
Human being with feelings
 
Join Date: Feb 2019
Location: Austin, TX
Posts: 413
Default HiDPI/Retina Theming Info

Reposting WT's response to my inquiry here to hopefully make it easier for others to find.
Quote:
Originally Posted by White Tie View Post
I haven't written any documentation on the HiDPI functionality because I don't have a definitive understanding of exactly what it is doing in detail and I don't want to publish wrong information; during pre-release things were done in numerous different ways, and at least one important implementation method has even changed since Reaper V6 was released. The HiDPI functionality is not currently described in the theming SDK.

I gladly offer assistance here in the forum, I have briefly explained how to enact a HiDPI theme HERE [pasted below], and in the V6 theme I kept the HiDPI sections of the code separate so they could be used as exemplars, though I acknowledge that might be of limited use because they are wrapped up in lots of complex macros. So ..er.. ask away, and I'll tell you what I'm pretty sure is happening, just don't ask me to sign any paperwork

The image based approach that is used it burdensome on the themer, but it and the simple WALTER layout code method means that no experienced themer should find it technically challenging. If you, or anyone else, is interested in making a HiDPI theme then please let me know, because there's unlikely to be effort expended on documentation if there's no demand - all I've seen so far is modders removing HiDPI functionality There also appears to be an understanding gap between theme modders and the way HiDPI works at a hardware/OS level (see this thread), the state of HiDPI implementations in OSs is still changing, and the hardware landscape is also changing in time as we gradually see less of the really silly annoying things like 1080 @ 133% laptops. So its, y'know, complicated.

The only other thing the V6 default theme has that is new is the theme adjuster script control functionality, see: Adjusting themes using scripting : HERE. Adding theme adjuster functionality to a theme without doing any scripting : HERE. Though I've retro-fitted that to the Default 5 theme now, so I'm not sure it counts as V6 new any more!
Quote:
Originally Posted by White Tie View Post
Its going to take a while to document this properly, so I'll try to provide some information here and if you have any questions that will help me in understanding how most clearly to communicate it.

For WALTERable areas (MCP/TCP/EnvCP/Transport)

...its all just layouts, same as they ever were from V5 and earlier. Make a layout with images in a folder that are the correct size for your chosen dpi scale, and make the WALTER sized appropriately.

In def6 I made base layout macros at 100%, with a scale mutiplier that could be applied when I ran the macro for each layout, but this was just my choice. You could hard-code your WALTER for each size if you like doing lots of typing

All that remains is to tell Reaper to automatically use your resized layouts when its drawing at what you have decided is the appropriate dpi scale, which you do using layout_dpi_translate.

Code:
;			requested	scale >	use
layout_dpi_translate	'50%_A'		1.0	'A'
each line of this maps one layout (that the user has chosen) to another layout, and then uses that layout instead (without bothering the user) should the dpi scale be higher than the defined scale value.

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

For non-WALTERable areas
...misc_dpi_translate is used, which takes the form:
Code:
misc_dpi_translate dpi_scale folder
If Reaper finds itself drawing a misc element at a dpi_scale higher than the dpi_scale value, it uses the images in the folder of that name and (though I have yet to test whether it always does this correctly) draws at that scale. So. in the Def6:
Code:
misc_dpi_translate 134 150
misc_dpi_translate 174 200
It starts out drawing using the root images. If it is drawing at a dpi scale higher than 134, it jumps to 150% scale and uses the 150 folder for its images. If the dpi scale is higher than 174, it jumps to 200% scale and uses the 200 folder for its images.
JRTaylorMusic is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 08:29 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.