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

Reply
 
Thread Tools Display Modes
Old 06-03-2020, 10:14 AM   #1
ernzo
Human being with feelings
 
ernzo's Avatar
 
Join Date: Sep 2013
Posts: 715
Default Theme Editor, and Data Processing scripts

Excuse my ignorance..

This is just an idea I've had for a while,
that I think would be cool to implement/develop at some level,
or at some point in the future.

But..
Given than all Themes share the Same Nomenclature as far as element images/textures go..

Wouldn't make sense/be possible to create a "Theme Editor" and accompanying "Data Processing" script,
that allows the user to select elements of a Theme from a Database/Pool of other themes's files/elements?

I wouldn't know how to do it myself, I'm not a coder,
but the idea seems feasible to me..
(at least on a basic level)


-Data Processing script, a script that:

Takes all Themes, and uncompresses them in separate folders.

Takes all the PNG files and groups them together by type, changin its file name to add a number.
For instance taking the "transport_record_on.png" of themes X-Y-Z,
and renaming the files to: "transport_record_on_1.png" "transport_record_on_2.png" "transport_record_on_3.png".. etc.

All this files would be copied to a "Transport Record On" Folder,
so that the "Theme Editor" script could browse through all the models of Rec Buttons later on..

And the same applies for all the rest of theme Elements/PNG files..


-Theme Editor, a Script similar to the actual Theme Adjuster that:
(Instead of letting the user adjust determined parts of a single theme..)

Takes all the processed data, and lets the user select/modify the elements that conform a Theme one by one.

For instance, taking all the "transport_record_on.png" files (1-2-3), and letting the user select which button/image/texture to use.

This could be done first with all the basic elements of a theme,
like say: Rec button, Mute/Solo buttons, Vol/Pan knobs, Fader, TCP/MCP background etc..

And later be extended to include all compatible element images/textures that can possibly be shared between themes..

Or even let the user modify the Scale and Position of each element.

The modified theme could then be saved,
just as the Adjusted/Edited themes can be saved now.


-This would allow us to take a number of themes,
and Mix them, letting us create a Hybrid that used the favorite parts of each..

Or even create a Pool of all the Existing Themes (+1000),
and create a Super Database/Pool to create any possible combination of theme elements!

That would be awesome/powerful..
and also would be useful for theme Creators/Modders,
and fruitful in terms of the amount of themes/variations that could easily be created/shared!


Maybe I'm completely Wrong, as I said I'm no coder..

But from the top of my head it doesn't seem completely impossible,
given the fact that a Theme Adjuster script Exists, Works, and does similar things from another perspective..

What do you think?
.

Last edited by ernzo; 06-03-2020 at 01:03 PM.
ernzo is offline   Reply With Quote
Old 06-03-2020, 03:05 PM   #2
White Tie
Pixel Pusher
 
White Tie's Avatar
 
Join Date: Mar 2007
Location: Blighty
Posts: 4,950
Default

I think we should take it as a mark of success that you have been given the false impression that theming works in such a rational way The reality is far messier. Make a blank theme; literally a blank text file with the extension changed to .ReaperTheme. That is now a valid theme, load it. What you see is... that is Reaper.

What themes do is override that, push it and pull it, recolour and replace. But underneath, its always that. The directions themes go in radiate out from that starting point, and as theming has become more powerful, so themes have become less and less like each other. So the (often requested) idea of merging bits from different themes is unanswerable; maybe. Depends. Themes use different images to do the same job, and for every element may assign colours using the theme, or WALTER, or an image, or a combination of all three. So that bit of what you're suggesting is a bit unthinkable I fear. They could all use the same root theme, I suppose, V6 mods are very popular right now, but that would very, very quickly become an unbearable limitation, we know that because pre-WALTER that was how themes worked and we hated it!

In the V5 theme I did a lot of 'user mess with this' variables, that the user could type in to change the theme. In V6 I asked to be able to change those WALTER variables using ReaScript; that made it possible for me to make the V6 theme adjuster and a heavily variable-driven theme to be controlled by it.

What more would be needed to allow image swapping? Well, I've already done it, sort of with WALTER and image alternates hidden off the edge of the panel. As it stands, themes can only use a single image folder tree per layout, and only two deep. Everything within gets loaded into memory at once. If we were to get the capability to change the former, the later would need to change, I don't think the developers would be keen on that. To put it mildly. But if it were (however unlikely) then if we could change that with WALTER then we already have the capabilities we would need to change it with ReaScript.

Ultimately, and I apologise for my reply being such a downer, there is a bit of history that might interest you. Back in V3 when themes were all the same but just had different images, someone (sorry I can't remember who) started working on a web based solution that would could pull images from a database according to your choices and package them up into a theme. Even that ran aground because of how theming works; after an enormous amount of work the images would perhaps work, but you'd still be left with the user needing to fix the huge problems of the .ReaperTheme settings and all their weird and unexpected colour and font dependencies.

There comes a point where you have to ask 'why not have the whole theme drawn by ReaScript'? I don't know if that's ever going to happen, but it was certainly in the back of my mind as one of the other reasons why I went through the process of learning scripting.
__________________
The House of White Tie
White Tie is offline   Reply With Quote
Old 06-03-2020, 03:32 PM   #3
ernzo
Human being with feelings
 
ernzo's Avatar
 
Join Date: Sep 2013
Posts: 715
Default

Quote:
Originally Posted by White Tie View Post
I think we should take it as a mark of success that you have been given the false impression that theming works in such a rational way
LOL..


Quote:
Originally Posted by White Tie View Post
Ultimately, and I apologise for my reply being such a downer,
By no means!
It's always good to be educated on the subject..

I just thought there would be a minimal level of Homogeneity between themes,
that allowed to swap some parts of them, at least on a Basic level..
(buttons etc)

But ofc accounting the basic layout of a theme would have to be preserved,
like if you parted from a V6/V5/V4 type theme, those type of themes would be more compatible.

Quote:
Originally Posted by White Tie View Post
Back in V3 when themes were all the same but just had different images, someone (sorry I can't remember who) started working on a web based solution that would could pull images from a database according to your choices and package them up into a theme. Even that ran aground because of how theming works; after an enormous amount of work the images would perhaps work, but you'd still be left with the user needing to fix the huge problems of the .ReaperTheme settings and all their weird and unexpected colour and font dependencies.
Awesome!
I came into Reaper at the V4 era, so I missed that one..


Quote:
Originally Posted by White Tie View Post
There comes a point where you have to ask 'why not have the whole theme drawn by ReaScript'? I don't know if that's ever going to happen, but it was certainly in the back of my mind as one of the other reasons why I went through the process of learning scripting.
Well whatever floats your boat right..

I think it would be good to consider homogeneity/compatibility in future method revisions,
but at the same time, I guess the actual system allows for more originality/individuality..

We don't want a closed system where all themes end looking/being just iterations of the same thing..
and the stash is full of very unique/creative stuff indeed!
ernzo is offline   Reply With Quote
Old 06-03-2020, 07:18 PM   #4
lucas_LCS
Human being with feelings
 
Join Date: Dec 2015
Posts: 2,099
Default

I don't see this as possible at the moment .
While the themes may use the same components or images, the sizes are different and that size is coded into the custom WALTER for the theme.
This automatically eliminates all themes previous to version 6 as viable.

In LCS_Flat-6 all custom images are based on the original v6 theme and are the same size as corresponding default image.
If I removed the custom layouts it would be straight image replacement, which was my original intention.
If the other themes based on version 6 are doing the same thing, then it's just a matter of pulling the images you want from each theme.
They will be interchangeable without requiring any coding.

While creating or altering an image can be a bit difficult for some, replacing an image with another image that ha the same dimensions is a simple process.
I don't see a database being needed or beneficial for that.

::
__________________
LCS Themes
lucas_LCS is offline   Reply With Quote
Old 06-03-2020, 11:16 PM   #5
ernzo
Human being with feelings
 
ernzo's Avatar
 
Join Date: Sep 2013
Posts: 715
Default

Quote:
Originally Posted by lucas_LCS View Post
I don't see this as possible at the moment .
While the themes may use the same components or images, the sizes are different and that size is coded into the custom WALTER for the theme.
This automatically eliminates all themes previous to version 6 as viable.
Scale may not be the biggest issue..
but that's half part of the problem right there!

Although if there was some common ground/homogeneity between themes/elements,
even that could be addressed..

By having a simple Scale/Position control,
just as there are other types of global/concrete controls in the actual Theme Adjuster script.


Quote:
Originally Posted by lucas_LCS View Post
While creating or altering an image can be a bit difficult for some, replacing an image with another image that ha the same dimensions is a simple process.
I don't see a database being needed or beneficial for that.::
Well it's not a problem of Complexity, but of Time and Practicality/ease..

Replacing one image and reloading the project is very easy indeed..
But what if I wanted to decide between/browse through 100, or 500 images?

Having a drop-down list of possible images, or even a simple up/down arrow selector,
and being able to immediately preview the result (even if out of scale),
would make it much more easy and less time-consuming.. don't you think?

If the Scale/Position adjuster is not a possibility, the theme would surely have to be manually Readjusted afterwards.

But at least one would be saving a lot of Time in the element/image selection..
.

Last edited by ernzo; 06-03-2020 at 11:38 PM.
ernzo is offline   Reply With Quote
Old 06-03-2020, 11:56 PM   #6
White Tie
Pixel Pusher
 
White Tie's Avatar
 
Join Date: Mar 2007
Location: Blighty
Posts: 4,950
Default

The thing you're missing is that the same image doesn't even necessarily do the same job from theme to theme (before you even get into the question of overlay hacks), and each theme picks and chooses from the range of possible images it uses. No theme ever made uses all of them.

The def6, for example, is designed to use the minimum number of images possible by inheriting MCP elements from the TCP, and for them to be as small as possible ...because of the whole 100%/150%/200% thing, which I believe even the mods of it don't duplicate. So even if this thing already existed, and even if had the severe limitation of only working with def6 mods, it would already be broken because of those mods only partially conforming to the def6.
__________________
The House of White Tie
White Tie is offline   Reply With Quote
Old 06-04-2020, 01:35 AM   #7
lucas_LCS
Human being with feelings
 
Join Date: Dec 2015
Posts: 2,099
Default

Quote:
Originally Posted by ernzo
Replacing one image and reloading the project is very easy indeed..
But what if I wanted to decide between/browse through 100, or 500 images?
I take a screenshot and use an image editor to audition different changes.
This also allows me to use layers to easily compare the changes with each other or with the default.

::
__________________
LCS Themes

Last edited by lucas_LCS; 06-04-2020 at 10:36 AM. Reason: corrected the quote and expanded the response
lucas_LCS 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 05:47 AM.


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