Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Color Themes and Icon Sets

Reply
 
Thread Tools Display Modes
Old 08-04-2019, 05:24 AM   #1
Dyl
Human being with feelings
 
Join Date: Oct 2018
Posts: 59
Default A novice‘s supplement to the WALTER Themer’s Guide

Resources:
https://www.reaper.fm/sdk/walter/walter.php#elements

http://www.houseofwhitetie.com/reape...mers_guide.pdf

In this primer I’ve detailed some common tasks that are essential to get right before you can begin with WALTER. The Themer’s Guide, quite rightly, focuses on WALTER. However, coming from a non-coding background I found I could not get started even on the basic tasks laid out in part one. So, I’ve pulled together stuff from across the Reaper forums and combined it with some of my own ideas to enable anyone to get ready for WALTER. I’m not laying claim to any of this information and much of it is on the forums. Unfortunately, for a novice, it’s really hard to draw it all together and make sense of things when you have no real idea how it all works. I spent days just trying to figure out how to save my own Reaper theme, for example.
So, if you want to get started with WALTER please read on, these notes should help you.

Bullet points highlight the key steps, dialogue offers additional detail. Please try this and feedback any errors or omissions.
main points covered:

1/ unpacking an existing theme.
2/ clearing the WALTER code out of an existing theme to get an empty Track Control Panel (TCP).
3/ testing progress and my mistakes.
4/ packing up a theme and saving it under a new name.
5/ cleaning up the ColorThemes folder and more progress testing.
6/ adding elements to your theme’s TCP and the 8 number system.
7/ opening your theme for editing.

Basic computer skills are assumed, opening/saving, zipping/unzipping and renaming files/folders, that sort of thing. I had my wife play test this stuff and she unravelled with zip folders and text editors. Everything else worked so as long as you can zip and edit text you will be fine.

1/ unpacking an existing theme
The WALTER Themer’s Guide says find a WALTERless theme or create a new one from scratch. This seemed unrealistic for a novice. Instead of worrying how to do either task I figured out how to open an existing theme, clean it out and save it under a new name. The first steps...

• watch this video it’s really clear:
http://www.houseofwhitetie.com/reape...dit_def_5.html

or

• Open Reaper Options menu > show REAPER resource path in explorer/finder.
• Open the ColorThemes folder
• Rename the Reaper theme called Default_4.0.ReaperThemeZip to
Default_4.0.ReaperTheme.Zip.
Note the “.” between “Theme” and “Zip”. That’s all it needs.
This changes the theme file to a zipped folder, still in the ColorThemes
folder.
• Unzip this folder into the ColorThemes folder (important to get right, or it
won’t work).



Check for a Default_4.0_unpacked folder and Default_4.0_unpacked.ReaperTheme file in the ColorThemes folder. If your unzipping process placed them in a new folder in the ColorThemes folder (or anywhere else) you will need to put them directly in the ColorThemes folder.

That’s it. You can check your work by opening the Reaper Options menu > Themes. If you’ve done things correctly you should see a theme called Default_4.0_unpacked. Opening this in Reaper looks exactly the same as the default 4 theme. You’ve not made any changes yet, you have just unpacked a theme though.

2/ clearing the WALTER code out of an existing theme to get an empty TCP panel
The WALTER Themer's guide clearly shows how this is done. However, the rtconfig.txt is way more complex looking compared to the guide pdf examples. Rather than work through code I couldn’t understand I just cleaned it all out. Glancing back at the WALTER commands I now see only a few key words to look for. When you are just starting out this can seem pretty daunting. So, try the method below and go back to the WALTER reference after a few runs at this. It will look easier...

• Open the Default_4.0_unpacked folder created in section one (above).
• Search the folder for the rtconfig.txt file.
• Open this file in a text editor (Notepad++ is really good, allows highlighting and line numbering).
• Scroll down the rtconfig.txt file to find the line that looks like ;-----WALTER------.
• Keep the two lines under this, i.e., “clear tcp.*” and “set tcp.size [400 100 160]”.
• Delete all lines down to “Layout Tracking” (keep this one, delete up to, not including).
• Save the rtconfig.txt file.

At this stage you’ve cleared out all the WALTER commands (well, those for the task in hand) that will allow you to see an empty TCP panel (coming up). In the SDK page (link above) you will see examples of the code you’ve just cleared out of the rtconfig.txt file. This was pretty advanced code but it is all built up from the basic format of a command and an expression. The commands are listed on the online reference page along with a useful list of elements to add to your TCP; remember this it will be helpful later. The WALTER Themer's guide discusses commenting out code on page 8 but because the deleted code was quite complex it just seemed easier to cut it and start from scratch.
Notepad++ allows you to keep the edited rtconfig file open. As long as you save it Reaper won’t have any problem running it. I cannot say how other text editors behave, you may need to close the file and reopen it after you’ve checked your work in Reaper.

3/ testing progress and my mistakes
You can test progress in a couple of ways. First, look at…

• Options > Themes menu and check for the Default_4.0_ unpacked theme.

If you don’t see this theme go back to section 1 and double check your steps. Make sure you have both the unpacked folder and ReaperTheme listed in the ColorThemes folder. Several times I unzipped into another folder. I also unzipped into AppData\ROAMING\Reaper location (where??). Default_4.0 is not it, it’s got to be the unpacked version. If you haven’t got the unpacked version you’ve missed something. Go back, try again.

This next step was the trickiest for me, I regularly failed to refresh the Reaper theme and this hides any changes you might have made. If you were looking at the unpacked theme and then made changes to the rtconfig file you won’t see the changes unless you recycle the theme you are working on.

• Switch to another Reaper theme (from Options > Themes menu) and then switch back to the unpacked theme.

I also found I could open a theme by double clicking the ReaperThemes files in the ColorThemes folder.

When you now look at the Default_4.0_unpacked theme (refreshed as described above) you should see nothing at all in your TCP in the Reaper project. Don’t forget to have a project open or at least one track open in the TCP. I forgot many times and it’s not helpful.

4/ packing up a theme and saving it under a new name (your choice)
This step is crucial if you want to save your own theme. There are some quirks that occur during this process but it’s straightforward when you think about what you are trying to achieve.
You are basically looking to repack everything and call it something new and relevant to you.
The following steps are the easiest way I found of carrying out the task…

• Open the ColorThemes folder
• Create a new zip folder and give it a name like this example:
Dyl.ReaperThemeZip.zip
The “.zip” part will be added when you create the zip folder (I didn’t know this!). Just make sure it ends Zip.zip when you’ve saved it
• Cut and paste the Default_4.0_unpacked folder into your new zipped folder
• Cut and paste the Default_4.0_unpacked.ReaperTheme file into the zipped folder
• Rename the zipped folder removing the “.zip” from the name. eg, Dyl.ReaperThemeZip.zip
would become Dyl.ReaperThemeZip.

Now the zip folder icon should change to the reaper theme icon. If you still see the unpacked files/folders in the ColorThemes folder, you can delete these.

The quirks? Well, I couldn’t change the name of the unpacked folder or file so that Reaper made the links. In other words it failed to open correctly when I changed the unpacked file names to match my theme’s name.
Also, when I came to reopen my theme it opened the renamed files as Default_4.0_unpacked regardless of what I renamed them. Also, when I looked at the listed themes in the Options > Themes menu the Default_4.0_unpacked theme showed up regardless of what I renamed it in the ColorThemes folder. You may come across these issues and that’s the only reason I’m describing them. I don’t know how to fix them but I know the bullet-pointed steps work.

5/ cleaning up the themes folder (if required) and more progress testing
If you’ve managed section 4 you probably don’t need to read this section but you will need to change the Default_4.0.ReaperTheme.Zip folder back to a ReaperTheme file. To do this…

• Rename the Default_4.0.ReaperTheme.Zip as Default_4.0.ReaperThemeZip.

You should have previously cut and paste two unpacked folders/files into a zipped file of your choosing. If you copied these instead you can delete them from the ColorThemes folder (after you’ve checked they are copied in your theme zip folder).

To check everything is fine, look through the ColorThemes folder. There should be no “unpacked” files or folders. There shouldn’t be any zipped folders in ColorThemes either.
Check Reaper menu > Options > Themes. The listed themes should not include unpacked themes and your named theme should be listed, in my example, Dyl.

Select your theme and it should display a TCP with no elements in it. If you have a display of very old looking graphics in your TCP then you’ve probably not packed up/zipped up your theme correctly. This is really old Reaper code showing as the default, apparently. By now you know what to do.



part 2 to follow...

Last edited by White Tie; 08-05-2019 at 02:18 PM.
Dyl is offline   Reply With Quote
Old 08-04-2019, 05:27 AM   #2
Dyl
Human being with feelings
 
Join Date: Oct 2018
Posts: 59
Default A novice‘s supplement to the WALTER Themer’s Guide part 2/2

following on from part 1...



6.1/ adding elements to your theme’s TCP and the 8 number system
Now to play with some WALTER. Refer to section 1, this is the same process applied to your own theme rather than Default_4.0…

• Open Reaper Options menu > show REAPER resource path in explorer/finder.
• Open the ColorThemes folder and prepare to unpack your own theme.
• Rename the Reaper theme, e.g., Dyl.ReaperThemeZip to Dyl.ReaperTheme.Zip.
Note the “.” between “Theme” and “Zip”.
This changes the theme file to a zipped folder, still in the ColorThemes folder.
• Unzip this folder into the ColorThemes folder.

If you read the quirks in section 4 here’s a couple more that cause head scratch…

Do the bullet point but be aware of the naming because you’ll be using these unpacked files/folders.

• Check for a Default_4.0_unpacked folder and Default_4.0_unpacked.ReaperTheme file in the ColorThemes folder. If your unzipping process placed them in a new folder in the ColorThemes folder (or anywhere else) you will need to put them directly in the ColorThemes folder.

Looks familiar? Remember the process? But note for whatever reason the files/folders you packed into your theme will not work if you try to rename them according to your theme. I don’t understand why not but found it best to roll with it. It works, so…

Just like in section 1, the Reaper Options > Themes menu will show Default_4.0_unpacked. This is the theme you are working on. Don’t worry it doesn’t have a name relating to your theme. You will pack it all away nicely at the end leaving a finished named ReaperTheme file.

Here’s the new stuff…

• Find the rtconfig.txt file in the Default_4.0_unpacked folder.
• Open this file in a text editor (Notepad++ is good for highlighting and line numbering).
• Scroll down the rtconfig.txt file to find the line that looks like ;-----WALTER------ .
• Scroll past the two lines of WALTER you left behind earlier and prepare to type.
• Open the SDK WALTER reference webpage listed in the Themer’s Guide page 4.
• Use the menu to jump to UI Elements and consider the TCP elements listed.
• For now, use the Themer’s Guide example of the solo button
• Type the following line into your rtconfig file just below your existing two lines of WALTER:

set tcp.solo [10 3 20 20 0 0 0 0]

• Save the rtconfig file and switch to Reaper.
• Open a new theme (Options > Themes menu)
• Switch back to Default_4.0_unpacked theme.

Right now you should be looking at a TCP with a solo button in the top left of each track. See the Themer’s Guide page 9’s “Show A Single Button” image. That’s what you should see. If you don’t, assuming you’ve got to the Default_4.0_unpacked theme, then you’ve probably mistyped the line you’ve just added to the rtconfig file.

The fun really starts now. Add as many elements as you like to your rtconfig file and check the results in Reaper. You will come across placement issues but focus on the first four digits in the 8 digit expressions bracket only. The first two digits move the element/button and the second two size the element. For that reason it’s good to focus on the elements listed as buttons in the WALTER reference webpage. The description of the basic numbers system is covered very well in the Themer’s guide and also on the SDK WALTER reference webpage. Check these out to figure out position and sizing; if you’ve got this far that’s an easy step to take. It’s easier to focus on moving elements around without having to think of more complicated expression techniques. The Themer’s guide is pretty clear about this but it is not particularly clear (in this first part) about the alternative expression methods. Colouring, for example, changes the numbering convention. Make it easier for yourself and stick to uncoloured buttons for now.
I also recommend adding one line of code at a time to your rtconfig file. Test that by refreshing your Reaper theme (remember, switch to a new theme and switch back, or double-click a theme in the ColorThemes folder). When you are sure about that element move on and add another element. Don’t expect a great theme first time, just get used to placing UI elements in your code and Reaper theme.
If you run into positional problems, maybe not seeing any change to your TCP then two methods can really help you problem solve. The first is to comment out all the elements of your rtconfig file that you know are definitely working. A semi-colon “;” placed at the beginning of a line of text will comment it out (see page 8 WALTER Themer’s guide). This leaves only the bug visible but saves time by hiding all the good stuff. You can work out what to do from there and uncomment your code when you’ve fixed things. The second method is to make the element larger, so large it becomes obvious above the other elements. From there you can work out a better position. Obviously, you need to resize your element once the issue is resolved.

At this stage you are ready to really get stuck into WALTER and work with the Themer’s Guide part two. But don’t forget to save your work...

6.2/ Save your newly altered theme
This process is similar to section 4 except you will already have a zip folder, e.g., Dyl.ReaperTheme.Zip. (see section 6.1 bullet points).

• Cut and paste the Default_4.0_unpacked folder into your theme zipped folder
• Cut and paste the Default_4.0_unpacked.ReaperTheme file into the zipped folder

I ran into problems with existing files in the zip folder. My quick and dirty method to overcome this was to first empty the zip folder. Then I cut and pasted the unpacked file and folder from the ColorThemes folder into my theme’s zip folder.

• Rename the zipped folder removing the “.” from the name. e.g, Dyl.ReaperTheme.Zip
becomes Dyl.ReaperThemeZip.

Like before, the zipped folder symbol should change to a ReaperTheme file symbol. Now you should be able to open your theme in Reaper. Make sure you clean out any unpacked stuff left behind in the ColorThemes folder. If you’ve been following closely that won’t be an issue.
Don’t worry that the unpacked files are Default 4.0 types, when you pack/zip up your theme it all works out.
To double check you’ve got it right open Reaper’s Options > Themes menu and check there are no unpacked themes listed and your theme is listed too. Yes? Success.

7/ Opening your theme for editing
No problem:
• Open Reaper Options menu > show REAPER resource path in explorer/finder.
• Open the ColorThemes folder
• Rename YourTheme.ReaperThemeZip to YourTheme.ReaperTheme.Zip.
Note the “.” between “Theme” and “Zip”.
• Unzip this folder into the ColorThemes folder.
• Get ready for more advanced WALTERing in part 2 of the WALTER Themer’s Guide.

I hope this guide will help some users unravel the challenges of starting WALTER. I am having fun now I’ve cracked these tasks. Hopefully other newbies will too.
Dyl is offline   Reply With Quote
Old 08-04-2019, 11:39 PM   #3
MaXyM
Human being with feelings
 
Join Date: Aug 2018
Posts: 454
Default

There is no need to switch between themes any more in order to reload a theme you are working on. It can be done by one of following ways:
1. select your theme again from Options/Themes menu
2. double click in ReaperTheme or ReaperThemeZip (considering those file types are associated with Reaper)
3. Press "Reload images" button in Theme tweaker window - it reloads whole theme, not only images
4. Use Lokasenna script - it executes option #1, but being a script it can be executed by a hot-key which gives the fastest (most time) way to do that.


Regarding your findings, I have to admit that materials intended to be a guide for theming beginners, are too scattered, inconsistent, incomplete and outdated. I'm a programmer, so it was easier for me to get grasp on it (especially on file structures, WALTER language), but of course I was struggling to find particular information when needed. Especially when some inconsistencies inside theming engine played a role.

On the other side, I would avoid creating an guide in step-by-step format (like suggested by your proposal). Such way leads often to copy-paste workflow without understanding what happens under the hood.
For example, renaming ReaperThemeZip to ReaperTheme.Zip*) in order to unzip files is not the only way. Unzipping the package in order to get access to files inside is not always needed too. It depends on tools you have.
That's why I would suggest to describe wisely what ReaperThemeZip is, including file structure inside, making a theme maker to understand that, allowing him to chose tools he feels most comfy/familiar with.

PS1 why to start with default theme v4 instead of v5 which is likely more up-to-date?

PS2 ReaperTheme.Zip is not a "zipped folder". I think some people might understand it this way, but this it is not, so I would stick to the facts.

Last edited by MaXyM; 08-05-2019 at 12:57 AM.
MaXyM is offline   Reply With Quote
Old 08-05-2019, 12:52 AM   #4
Dyl
Human being with feelings
 
Join Date: Oct 2018
Posts: 59
Default

Thanks for going through this.
Point 1/ That is great, just tested it.
Point 2/ Is half way included in my text. But after testing, yes they both work.Good stuff.
These 2 points make things a little easier. I will try and edit them into the guide.
Point 3/ I don't know to avoid creating a new step by step list to access the SWS stash, locate the script you mention and then add it to Reaper. I certainly couldn't find that now. I'd have to document my steps in order to get there.
Can you say what it's called and which repository it is in. I'm not keen on downloading the whole stash.

Weirdly, when I clicked the "quote" button on your post a whole new paragraph appeared that isn't displaying on the main forum post. Not sure whether you intended I see that.
Just to reiterate, I've no intention of doing any more than I've done here. My purpose in doing this was to get past the hurdles that blocked me from starting to learn WALTER. I think there are plenty of challenges ahead with WALTER.
EDIT point:
Posted this reply and your full post came up. Odd behaviour!
The quote addition had your Lokasana point 4 as point 3 and the theme tweaker point didn't appear at all.
Sorry this is a bit messy as a reply.
Ok, your points are valid and maybe they are the very thing you are talking about. This process was a guide not a definitve text. You are talking about alterative ways to do things, which is good and helps me learn more. This is perfect and stretches my knowledge base out. I wouldn't want to create a text that covers every possibility or else I am indeed doing the thing you said I shouldn't.
Why default 4 and not 5?
Well, apart from the Themer's guide telling me to do so?
But seriously, if you look at the rtconfig.txt file for 5, it is structured very differently from 4, for which the themer's guide was created. In 5 there is the additional Flow stuff. Too much for me to tackle, I'm afraid.

Last edited by Dyl; 08-05-2019 at 01:02 AM. Reason: post displays incorrectly
Dyl is offline   Reply With Quote
Old 08-05-2019, 05:31 AM   #5
White Tie
Pixel Pusher
 
White Tie's Avatar
 
Join Date: Mar 2007
Location: Blighty
Posts: 4,950
Default

Quote:
Originally Posted by Dyl View Post
Why default 4 and not 5?
Well, apart from the Themer's guide telling me to do so?
Well, actually no it doesn't, but looking at it again I can see why you might think it did because I veer off on a silly tangent. Oops, sorry.

From the guide, p6:
Quote:
I strongly recommend that you do not start learning WALTER by trying to edit an existing theme with complex WALTER - and the default theme has some very complex WALTER.

...

Find the ColorThemes folder in your REAPER path, as described above, and unpack the Default_4.0.ReaperThemeZip. You will have a new theme available called “Default_4.0_unpacked” and you can edit its WALTER by finding its rtconfig.txt file within the “Default_4.0_unpacked” folder.

...

Make a new theme, or open an existing theme that has no WALTER. The first thing we need to do is tell WALTER to override the standard layout. In this tutorial we will be working on the TCP, so we need the command to clear the TCP elements.
Me going off on a tangent about how to unpack the default theme in the middle of that was foolish, I apologise for it leading you astray.

My advice to not edit the default theme is doubly so for the V5 due to me making the default 5 very easy for a beginner to mod, at the cost of making it an absolute nightmare for a beginner to deep edit.

If you're looking to learn, start with a blank theme. And absolutely definitely not a default theme!

A blank theme is an empty text file. You can then edit that using the theme tweaker to give it values. You can then assign it a resource folder (an empty folder). In that you can put an rtconfig.txt, also a blank file. You now have a fully functional (but crap) theme ready to have stuff optionally added to it.
__________________
The House of White Tie
White Tie is offline   Reply With Quote
Old 08-05-2019, 08:05 AM   #6
Dyl
Human being with feelings
 
Join Date: Oct 2018
Posts: 59
Default

Quote:
Originally Posted by White Tie View Post
Well, actually no it doesn't, but looking at it again I can see why you might think it did because I veer off on a silly tangent. Oops, sorry.

From the guide, p6:


Me going off on a tangent about how to unpack the default theme in the middle of that was foolish, I apologise for it leading you astray.

My advice to not edit the default theme is doubly so for the V5 due to me making the default 5 very easy for a beginner to mod, at the cost of making it an absolute nightmare for a beginner to deep edit.

If you're looking to learn, start with a blank theme. And absolutely definitely not a default theme!

A blank theme is an empty text file. You can then edit that using the theme tweaker to give it values. You can then assign it a resource folder (an empty folder). In that you can put an rtconfig.txt, also a blank file. You now have a fully functional (but crap) theme ready to have stuff optionally added to it.
Thanks for the clarification, totally see where I went wrong with that default 4 thing.

Now I'm struggling with the last paragraph.
I've created a theme from here: Actions > Theme Development: Show theme tweak/configuration window? Called it chuff.
I've also created a folder in the ColorThemes folder where my new theme resides. It's got the same name as my theme. I've dropped a blank text file in the folder called rtconfig.txt but the process doesn't seem right.
I've missed something here surely, do I need to do something specific to make the folder an assigned folder?
The chuff theme has an icon like all the other themes I have except they end in Zip. My chuff.ReaperTheme does not have Zip on the end.
I've tried renaming it to end in Zip and .Zip but things start going wrong there. I even created a chuff.txt file but the above theme tweaking actions window cannot see it in the list of themes if I try loading it???

What am I missing?

Last edited by Dyl; 08-05-2019 at 08:18 AM. Reason: additional details
Dyl is offline   Reply With Quote
Old 08-05-2019, 08:43 AM   #7
MaXyM
Human being with feelings
 
Join Date: Aug 2018
Posts: 454
Default

Quote:
I've missed something here surely
You are missing basics about theme files structure. This is what I wrote before - there will be more such black holes ('cause those such things are not consistently documented). Copy&Paste doesn't help though.

There are a few notes:
1. Reaper, to create list of themes shown in Options/Themes does look into ColorThemes directory
2. this directory might be located in different locations depending on your installation. You can find it using Options/Show Reaper resources menu option.
3. While custom color themes are located in mentioned directory, technically speaking, Reaper can load a theme from whatever location you force it to (by clicking on the theme file)
2. Reaper supports zipped and uzipped themes. Unzipped themes have ReaperTheme extension while Zipped themes have ReaperThemeZip one.
3. Zipped theme is nothing more or less than ReaperTheme file compressed into ZIP file (mostly with related resources directory)
4. Unzipped theme is built from at least ReaperTheme file. It may contain resources also. Those are placed in subdirectory. Name of subdirectory must not be related to your theme name. To make reaper know which subdirectory to look into, ReaperTheme contains an ui_img parametr. The variable can point to subdirectory or ReaperThemeZip file

I suppose your ReaperTheme file misses ui_img parametr, or it's filled with wrong value.
Also you may see no difference if resources directory as well rtconfig file are empty. But it's obvious

Last edited by MaXyM; 08-05-2019 at 09:26 AM.
MaXyM is offline   Reply With Quote
Old 08-05-2019, 09:34 AM   #8
White Tie
Pixel Pusher
 
White Tie's Avatar
 
Join Date: Mar 2007
Location: Blighty
Posts: 4,950
Default

A few of the things in the post directly above are incorrect or misleading, but I'm a busy man.
__________________
The House of White Tie
White Tie is offline   Reply With Quote
Old 08-05-2019, 11:44 AM   #9
MaXyM
Human being with feelings
 
Join Date: Aug 2018
Posts: 454
Default

Incorrect? I doubt 'cause I described things I found working.
Misleading? Can be, depending on actual mindset or language skill. But I can provide additional information if needed (in contrary to WT)
MaXyM is offline   Reply With Quote
Old 08-05-2019, 12:21 PM   #10
Dyl
Human being with feelings
 
Join Date: Oct 2018
Posts: 59
Default

If you can explain step by step, how to do the following, without making any assumptions that I know any of it, know any jargon, or in any way have any skills, that would help me a lot...

"A blank theme is an empty text file. You can then edit that using the theme tweaker to give it values. You can then assign it a resource folder (an empty folder). In that you can put an rtconfig.txt, also a blank file. You now have a fully functional (but crap) theme ready to have stuff optionally added to it." from Mr White Tie, see above posts.

To be more specific:
How do I name a blank theme, as in what is the naming structure?
How exactly do I edit it using the theme tweaker?
Do I create it, instead, in the theme tweaker, which I have assumed is the theme development tool available from the Actions list?
What is the theme tweaker, exactly?
How do I name the resource folder in relation to the theme I've created?
How do I assign the folder to the theme?

If you can answer these questions for me I would be very happy.
Dyl is offline   Reply With Quote
Old 08-05-2019, 01:11 PM   #11
MaXyM
Human being with feelings
 
Join Date: Aug 2018
Posts: 454
Default

Quote:
Originally Posted by Dyl View Post
How do I name a blank theme, as in what is the naming structure?
However you like, applying filesystem restrictions. Maybe there are undocumented/hardcoded restrictions. But naming it "my 1st theme" (by creating "my 1st theme.ReaperTheme" file does work.

Quote:
How exactly do I edit it using the theme tweaker?
With ThemeTweaker you are editing only currently loaded theme. So select your theme, edit things (read below) and save it again. If you not save it, you loose any changes if you switch to another theme or restart Reaper.

I assume you are expecting be able to create/edit gfx appearance of your theme. Wrong.
And IMO it's the biggest pitfall of the method suggested by WT (while I'm agree with him, that theme maker should learn first, going through available documentation, to get idea what it is about. Such knowledge really helps when resolving theming tasks.

ThemeTweaker allows to setup fonts (type, size, colours) colours of GUI elements. That's all. No object sizes, no bitmap manipulation, no control flow logic.

Quote:
Do I create it, instead, in the theme tweaker, which I have assumed is the theme development tool available from the Actions list?
I don't understand the question.
In action list you have to tools available: ThemeTweaker and ThemeElementFinder.
Using ThemeTweaker you are editing and saving a ReaperTheme file, which is main file of the theme.
ThemeElementFinder allows to find GUI gfx element by it's name and highlight it in running Reaper. But you need to know resource name first.

Quote:
What is the theme tweaker, exactly?
It's Visual editor for ReaperTheme file. Mostly helpful for selecting colours from colour palette and fonts (because their definition is saved to file in encoded form, so effectively impossible to edit manually)
AFAIK, in the past, it covers all Reaper theming features. So theming itself started and ended with use of this tool. Today it's a different story (see my ending note).

Quote:
How do I name the resource folder in relation to the theme I've created?
The name of resource folder can differ from theme name. But it's a good practice to get them same or related.

Quote:
How do I assign the folder to the theme?
The name of folder must appear as value of ui_img found in your ReaperTheme file

Quote:
If you can answer these questions for me I would be very happy.
Hope you are

If you are still struggling with a start do as follows:
1. load some theme. Might be default v5, or other which provides colours the best fits your needs.
2. Save it using ThemeTweaker into the same location under different name (ie "MyTheme"). It will create MyTheme.ReaperTheme file
3. manually create subdirectory in location where themes are saved. Name it how you like, ie "MyThemeDir"
4. edit MyTheme.ReaperTheme, find line containing ui_img. Edit it to ui_img=MyThemeDir. Save the changes
5. MyThemeDir is intended to contain your rtconfig.txt file and image assets. You can create them or copy from other themes to experiment with.

Now you are working with unzipped version of your theme.
Hope it will help with a few first steps.

However keep in mind, that theming today is mainly based on rtconfig file (even if WT claims opposite). This require at least basic programming/scripting skills, knowing tools like Photoshop/Gimp and Illustrator/Corel to create/modify gfx assets etc. It's not something you can do without it.

Last edited by MaXyM; 08-05-2019 at 01:34 PM.
MaXyM is offline   Reply With Quote
Old 08-05-2019, 01:27 PM   #12
Dyl
Human being with feelings
 
Join Date: Oct 2018
Posts: 59
Default

Quote:
Originally Posted by MaXyM View Post
However you like, applying filesystem restrictions. Maybe there are undocumented/hardcoded restrictions. But naming it "my 1st theme" (by creating "my 1st theme.ReaperTheme" file does work.

With ThemeTweaker you are editing only currently loaded theme. So select your theme, edit things (read below) and save it again. If you not save it, you loose any changes if you switch to another theme or restart Reaper.

I assume you are expecting be able to create/edit gfx appearance of your theme. Wrong.
And IMO it's the biggest pitfall of the method suggested by WT (while I'm agree with him, that theme maker should learn first, going through available documentation, to get idea what it is about. Such knowledge really helps when resolving theming tasks.

ThemeTweaker allows to setup fonts (type, size, colours) colours of GUI elements. That's all. No object sizes, no bitmap manipulation, no control flow logic.

I don't understand the question.
In action list you have to tools available: ThemeTweaker and ThemeElementFinder.
Using ThemeTweaker you are editing and saving a ReaperTheme file, which is main file of the theme.
ThemeElementFinder allows to find GUI gfx element by it's name and highlight it in running Reaper. But you need to know resource name first.

It's Visual editor for ReaperTheme file. Mostly helpful for selecting colours from colour palette and fonts (because their definition is saved to file in encoded form, so effectively impossible to edit manually)
AFAIK, in the past, it covers all Reaper theming features. So theming itself started and ended with use of this tool. Today it's a different story (see my ending note)

The name of resource folder can differ from theme name. But it's a good practice to get them same or related.

The name of folder must appear as value of ui_img found in your ReaperTheme file

Hope you are However keep in mind, that theming today is mainly based on rtconfig file (even if WT claims opposite). This require at least basic programming/scripting skills, knowing tools like Photoshop/Gimp to create/modify gfx assets etc. It's not something you can do blindly using some gfx editor.
Maxym,
thank you, I am indeed very happy, you've helped me greatly.
The one question you didn't understand, well you actually did and you've clarified it in the following questions.
What's even better is that I had just figured this stuff out myself and was about to post.
So now I create a folder with rtconfig.txt file in it. Create a theme file with the .ReaperTheme on the end. Make sure my theme file has the right ui_img name for the folder and when I save it I can access it via the theme development/tweak action, save it and it imports all the colour settings from there.

Truly awesome.
Thanks again. I can really start with some WALTER now.
Dyl is offline   Reply With Quote
Old 08-05-2019, 02:42 PM   #13
White Tie
Pixel Pusher
 
White Tie's Avatar
 
Join Date: Mar 2007
Location: Blighty
Posts: 4,950
Default

Quote:
Originally Posted by Dyl View Post
How do I name a blank theme, as in what is the naming structure?
How exactly do I edit it using the theme tweaker?
Do I create it, instead, in the theme tweaker, which I have assumed is the theme development tool available from the Actions list?
What is the theme tweaker, exactly?
How do I name the resource folder in relation to the theme I've created?
How do I assign the folder to the theme?
You're overcomplicating things; the answer to most of your questions is 'it doesn't matter'. The key thing you're missing is that you don't need to do anything because a theme (even a default theme) is just a set of overrides of Reaper's fallback, built-in theme (the ugly grey Win95 looking one).

A .ReaperTheme is just a text file. You can create/edit it in a text editor. Or you can use the theme tweaker, if you like, because it is easier. Start by making a blank text file and saving it as a .ReaperTheme. Add some color definitions to it, if you like, using the theme tweaker. Add a resource folder and some images, if you like. Add an rtconfig.txt ...if you like. Have fun. Its not voodoo.

By the way, theme structure is covered at the top of the SDK. Is it possible you've not seen that page? You're asking a number of questions that are actually documented on the actual Cockos documentation, slight though it might be it is crucial knowledge.
__________________
The House of White Tie
White Tie is offline   Reply With Quote
Old 08-05-2019, 03:10 PM   #14
Dyl
Human being with feelings
 
Join Date: Oct 2018
Posts: 59
Default

Quote:
Originally Posted by White Tie View Post
You're overcomplicating things; the answer to most of your questions is 'it doesn't matter'. The key thing you're missing is that you don't need to do anything because a theme (even a default theme) is just a set of overrides of Reaper's fallback, built-in theme (the ugly grey Win95 looking one).

A .ReaperTheme is just a text file. You can create/edit it in a text editor. Or you can use the theme tweaker, if you like, because it is easier. Start by making a blank text file and saving it as a .ReaperTheme. Add some color definitions to it, if you like, using the theme tweaker. Add a resource folder and some images, if you like. Add an rtconfig.txt ...if you like. Have fun. Its not voodoo.

By the way, theme structure is covered at the top of the SDK. Is it possible you've not seen that page? You're asking a number of questions that are actually documented on the actual Cockos documentation, slight though it might be it is crucial knowledge.
Yes, I got the last piece of the jigsaw from that very document. The ui_img thing.
Even after I figured that out I found I was missing all images so my set tcp.solo task rendered an exclamation mark. It's insane the amount of raking I've done to get one solitary icon that isn't even the solo button. I've fixed that, as well as everything else now.

It just isn't that easy to interpret all of this stuff when you have no idea. You are right to say you are overcomplicating things, of course. But that's only a true statement when you actually figure out how to piece it all together. Up to that point, when the penny finally drops it's truly soul crushing. Looking at the WALTER guide, I can see there is an incremental development of ideas. I can even understand them just from reading about them. Much like the User guide, complicated stuff broken down into simple steps. This whole process of creating a theme has been ridiculously opaque though and not left me feeling particularly good about Reaper.
If it was documented in one easy to read format I would just be facepalming for being such an idiot but the amount of effort and time I expended on trying to piece together two files, a folder and a handful of text lines is unbelievable.
I haven't got enough years left in me to keep going at this pace!

having got all that off my chest, I do appreciate the fact that you have answered my questions and facilitated my learning of this stuff. MaXyM too, you've both nursed me through this.
Dyl is offline   Reply With Quote
Old 08-05-2019, 03:33 PM   #15
White Tie
Pixel Pusher
 
White Tie's Avatar
 
Join Date: Mar 2007
Location: Blighty
Posts: 4,950
Default

The reason its not in one simple guide is there is no one simple way of doing things; there are many. Much of the advice you read here comes from people decrypting existing themes and codifying what they see into 'rules' that must be obeyed. And then complicating those rules to include the other way of doing things that they might notice people doing. To be a comprehensive theming document, a total tutorial would need to be spectacularly branching and complicated to cover everything; its been 10 years and many have tried. No one has ever managed it.

How do you get into theming? I don't know, because I don't know what you want to do. Are you a designer, and want to swap out some images? Are you a user who just wants to change a few sizes or colors? Or are you someone who wants to know everything? How much time are you willing to devote to this? For every person, the answer is different, and the documentation is different. Learning how to theme Reaper is always a journey of self-directed discovery; I've been doing it for 10 years and it still is for me. The disparate nature of the documentation perfectly reflects the disparate nature of how theming works in Reaper. If you really want to understand what's going on, he clearest path is to start from nothing.

I keep saying make a blank theme. No one ever believes me.
__________________
The House of White Tie
White Tie is offline   Reply With Quote
Old 08-05-2019, 04:51 PM   #16
MaXyM
Human being with feelings
 
Join Date: Aug 2018
Posts: 454
Default

Quote:
Originally Posted by White Tie View Post
I keep saying make a blank theme. No one ever believes me.
And you don't believe them that it's no go for them.
The reason is simple: starting with blank page together with no knowledge about syntax it's impossible to fill empty theme with anything. It's like it's hard to ask for things having no idea they could exist. Starting with empty theme might be effective for theme makers who know SDK. At least to extent which allows to start with anything.
Newcomer can't read SDK because it's too synthetic. He cannot find correlation between what he wants to achieve and terms found in SDK. He would need to memorize whole SDK first. Nobody is going to do that this way.
He wants to touch a file seeing immediate result/change. In contrary, starting from a working theme, he can search for word "width" to get some knowledge about "width" practical use.

Maybe instead of suggesting working with blank theme, creating some template/simplified theme for teaching purposes would be more benefiting. Who knows.


Quote:
The reason its not in one simple guide is there is no one simple way of doing things; there are many. Much of the advice you read here comes from people decrypting existing themes and codifying what they see into 'rules' that must be obeyed. And then complicating those rules to include the other way of doing things that they might notice people doing. To be a comprehensive theming document, a total tutorial would need to be spectacularly branching and complicated to cover everything; its been 10 years and many have tried. No one has ever managed it.
Funny is, that in this fragment you put question and resolution all together.
Yes, people guessing things because there is no comprehensive documentation. In most cases they got simplified answers from other themers or even from you. If they have got complete overview of the mechanics they would understood theming mechanics better.

IMO at some point total document, to cover everything is really needed. It must not be complicated. In fact theming in Reaper is not a rocket science. There are two reasons why it looks like that: suboptimal documentation and a lot of hacks/obsolete things which affects theming.
I admit, resolving this issue is not piece of cake. But waiting next 10 years will not improve the situation.

If it not gonna happen, at least don't be surprised every time people struggling with basic things not believing in development methods you are suggesting.

Last edited by MaXyM; 08-05-2019 at 05:03 PM.
MaXyM is offline   Reply With Quote
Old 08-05-2019, 07:10 PM   #17
EpicSounds
Human being with feelings
 
EpicSounds's Avatar
 
Join Date: Jul 2009
Posts: 7,568
Default

Quote:
Originally Posted by MaXyM View Post
Maybe instead of suggesting working with blank theme, creating some template/simplified theme for teaching purposes would be more benefiting. Who knows.
+1

whitetie would you teach this to a noob like me for a video (or with Kenny)?
__________________
REAPER Video Tutorials, Tips & Tricks and more at The REAPER Blog
EpicSounds is offline   Reply With Quote
Old 08-06-2019, 01:41 AM   #18
White Tie
Pixel Pusher
 
White Tie's Avatar
 
Join Date: Mar 2007
Location: Blighty
Posts: 4,950
Default

Quote:
Originally Posted by EpicSounds View Post
whitetie would you teach this to a noob like me for a video (or with Kenny)?
Absolutely; I'd be glad to.

We'll be starting with a blank text file.

I find it staggering that this chap would rather argue with me on the internet over this fact, rather than just try it : it is a core truth about the way Reaper theming works that everything is an amendment to built-in values, behaviours and images, and you can tell by the way questions are asked when someone has just completely failed to grasp this utterly crucial point. I keep saying to start with a blank text file. The template is built in, and never goes away, which is both a blessing and a curse. Any 'simplified' theme is already, by definition, a complication that reduces understanding.

If someone doesn't understand this, they by definition don't understand it, which is of course entirely to be expected if they don't know otherwise. However, if they have read my documentation, where I explain it, and still don't understand it then ...well, what? They think that I am mistaken? They think I'm lying? That I'm trying to make a point or something? But that I need to make more documentation none the less? Wow. The internet.
__________________
The House of White Tie
White Tie is offline   Reply With Quote
Old 08-06-2019, 02:12 AM   #19
MaXyM
Human being with feelings
 
Join Date: Aug 2018
Posts: 454
Default

No, it's you who instantly rejects the fact, that others might have different method of learning things.
It's not about the empty theme results in empty Reaper.
It's about the empty theme means empty rtconfig file, which cannot be filled if one don't know what it can be filled with.

For some it's easier to look at already working commands to understand them (especially since WALTER language is rather self explanatory), than jumping between various SDKs to find a command matching their needs.

I'm not saying that your method is completely wrong. yes, it's like it should be in school - basics first, then gradualy more and more complex things. Including all cheats (on Reaper and creator side).
But for beginners (especially for those who don't want to spend next 10 years being a professional theme maker but want to do a few modifications for their own use instead) learning from other themes is quicker and provides results faster (so it's more rewarding)

Last edited by MaXyM; 08-06-2019 at 02:18 AM.
MaXyM is offline   Reply With Quote
Old 08-06-2019, 02:23 AM   #20
White Tie
Pixel Pusher
 
White Tie's Avatar
 
Join Date: Mar 2007
Location: Blighty
Posts: 4,950
Default

Quote:
Originally Posted by MaXyM View Post
empty theme means empty rtconfig file, which cannot be filled if one don't know what it can be filled with.
I understand that you don't understand why this is fundamentally, and crucially wrong. I could keep explaining it to you, but I can't understand it for you.
__________________
The House of White Tie
White Tie is offline   Reply With Quote
Old 08-08-2019, 08:58 AM   #21
Dyl
Human being with feelings
 
Join Date: Oct 2018
Posts: 59
Default

I absolutely believe that one should start from a blank document, Mr White Tie. I've never understood the whole, dive right into the hardest example you can find way of doing things. Only problem I had was that I couldn't figure out the conventions of file naming extensions etc. used in Reaper. So I couldn't take the first steps either.
Don't really understand why the thing's turning into some weird argument either when everyone's got their own way of going about things/reasons for learning things.
Sorry it's turned out this way, that's not what I wanted.
I'm glad I've finally figured out how to create a blank doc but this has been a rather unproductive use of my WALTER learning time. It isn't even WALTER coding is it?--- setting up the ReaperTheme file, a resources folder, linking the two, creating an rtconfig file, using images etc. For me that just feels like housekeeping. For each of these tasks, for a novice, that's hours of trawling to get to a point where you can use the first "set tcp.solo" task from the guide. Even then, without learning about adding images to your new theme's resource folder that first task in the Themer's guide won't work satisfactorily. Or at least in my case all I got was an exclamation mark for an icon.
I too would certainly welcome some video instructionals on WALTER/theming but I would like to see the very tasks I've had problems with clearly spelled out.
I'm reluctant to post my "new, improved novice supplement" given the amount of heat generated but you were absolutely right it's way simpler than it seems.
I can say, a hearty thank you to you for your responses, and again, I would never have started this thread if I thought it would be like this.
Dyl is offline   Reply With Quote
Old 08-17-2019, 04:51 AM   #22
Never
Human being with feelings
 
Never's Avatar
 
Join Date: Jul 2016
Location: Ohio, USA
Posts: 633
Default

Quote:
Originally Posted by White Tie View Post
I understand that you don't understand why this is fundamentally, and crucially wrong. I could keep explaining it to you, but I can't understand it for you.
+1 Definately not an empty theme just because the rtconfig is empty.

@MaXyM - The reason there can never be a 100 % definative sdk or guide is the same reason
REAPER is not released one last time in an all-out best version, lol , then the software
would basically be EOS for all intent and purpose.
WALTER is coming to us - much like the many dev builds and updates of REAPER - piece by piece;
assembling over time - the greatest DAW ever created, and the .ReaperThemeZip format, & WALTER; is still.... though
misunderstood by many users - the BEST gui theme editing and creation system there has ever been for a DAW at least.....and again....it is evolving on a daily basis.
I created a post where a user can come and see all the theming and WALTER related changes since v5, and WT
created a fair amount of Lit. on the v.5 theme and it's capabilities and the description - in detail - of it's editing process,
and one particular user here created a Photoshop doc that actually contains on many layers - all of the myriad theme elements of the default v 5 theme, so that one can easily read WT's instructions - and inner-RTCONFIG notes - and,
combined with a skimming of these, open the afformentioned template and create new elements right over top of the old ones, then mute the underlying images, and export. Viola! New customized theme in no form or fashion similar to v5, except the function of element snapping / anchoring, etc.
Of course, with the advent of the new v6 theme and the even MORE simplified - and dare I say - spoiler - WT praise comes next for those allergic....(haters).....again...dare I say.....Innovative, efficient, amazing, just all around miraculous A+ Hackery level intellegentsia of the scripting features!!! He is making it even EASIER for those whos cannot under-
stand the concept of listing and calling scalar values and coords using conditions......and.....

@Dyl..... I mean all of the math,
the macros, the C etiquette and syntax, the polish notation, the var's, the deeper stuff......isn't really WALTER....
it's all researchable Ad Darn NAUSEUM online, juat lookup c++ relational operators, those are the boolean operators you really need to conditionalize element drawing with WALTER. All the other stuff....keep hittin the snooze button till
you get down the following:
Scalars, and how to call them for use in creating a condition. Ex: ?recarm set.tcp.solo [1 1 20 20 0 0 0 0] [1 1 30 30 0 0 0 0] ...............We just created a conditiop using the 'recarm scalar'....we call for it to return a positive value if it IS armed by placing a ? in front of the scalar name....?recarm...that tells REAPER to say (if record armed)...why YES, I am recarmed...so....therefore...I will execute the very next command...and no more on that line....then skip to next line of code.
SO: ?recarm set.tcp.solo [blazay blah darn coords to enter]....<since ?recarm is POS, REAPER executes the immediately following command and ignores the rest of the line, skipping to the next......NOW then....
IF: ?recarm set.tcp.solo [coords coords coords x x ] [THESE COORDS INSTEAD IF ?recarm NEG!!]....<<<<<<<<<<<<
______________________________^^^^^^------------\
Scalar^^... REAPER says 'no I am not Recarmed, so.. I will ^SKIP! the next command, and execute the one after it.^
Hopefully you can see past the arrows....if you read the first part of the themer's guide...it should be more than enuff for you to gleen the correct etiquette,etc.
If you can learn how to write that bit of code properly for any other element....AND
learn the edge attachment mechanism (explained in the guide....*Search for 'Bernstraw'...and backup a bit i think.
AND learn that using margins: 0 is left, 0.5 is center, 1 is right, AND learn that you need to have the sdk up in your browser the whole time while working on a theme...for reference....AND , use the 'S&M theme helper to get your pixel h's and w's. SWS Actions; AND of course: when you rename a theme's resource folder, or .ReaperThemeZip title,
and you load the theme in REAPER, and none of your images show up, simply: open the theme tweaker>
all the way at the bottom, if you are working with an unpacked theme, click Browse (Bot. Right)> Navigate to correct folder, select>SAVE!>YES< OVERWRITE!
If you are using a packed theme, same as above.....BUT!! - instead of navigating to the folder, navigate to the actual ReaperThemeZip file.>SAVE!>OVERWRITE!>YES! .........VIOLA!! Now Refresh them....to do this:
Click Ctrl+Alt+Pg. Down - Now click Ctrl+Alt+Pg. Up (Next theme, Previous theme). Now the images should show up!

using what I have just explained, you can either use v5 def. and WT's Lit. AND the Photoshop Template and make a great theme,
-or-
Start from scratch, and for the first time, make your own basic, functioning theme. What I shared with you, believe it or not, is actually enough to start writing a functional theme and bring it to a very beta useable stage.
NEXT::
Research Arithmatic Preprocessors (C++)
.....................Logical Operators
.....................Increment / decrement
....................ternary operators
.....................Bitwise operators
....................Equality and INequality
and of course you need to learn about LOGIC ex: (AND, OR, XOR, Etc.)..... bitwise operators , etc., will be used to implement these different types of logic. Different types. Functions. Use. Syntax.
These Logics are tantamount to types of switches or combinations of switches, which you will eventually use to write the AWESOME code people will praise you for.
Of course, to bring the applause, you will need to have good ideas, problem solving and analytical skills, and LEARN MACROS!!!!

Last edited by Never; 08-17-2019 at 05:07 AM.
Never is offline   Reply With Quote
Old 08-17-2019, 06:23 AM   #23
jrengmusic
Human being with feelings
 
jrengmusic's Avatar
 
Join Date: Jun 2015
Location: Indonesia Raya
Posts: 684
Default

Learning WALTER is like learning programming. You start from writing Hello World! from scratch. It is the fundamental way to learn, with any programming language.

The problem is most of people who start theming with WALTER are not programmer, not used to read SDK (to learn the syntax, convention, etc) or simply just impatiently lazy.

Hacking/replacing images is an instant gratification, because on most cases you get the result right away. But the more complex the theme, the deeper the rabbit hole. You will get lost in no time.

Start with a blank theme. Read the SDK.
__________________
JRENG! | M E T R I C
jrengmusic 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 02:24 AM.


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