You are on page 1of 7

houseofwhitetie.

com

Edit Default 5 Theme


8-9 minutes

Editing the Default 5 Theme

The default theme for REAPER 5 has been designed to be more


easily edited by you, the user. I have done this by controlling some
sections of the theme's complex underlying WALTER script using a
system of macros that I call 'Flow'.

Flow responds to the most common requests that I hear from


users - to be able to decide the order in which interface elements
are hidden when a panel is shrunk, and the size of elements -
without learning WALTER. With Flow, you can do just that merely
by changing a few clearly labelled numbers in a text file.

Please follow me as I show you how to edit the Flow of REAPER's


most complex panel : the Track Control Panel, or 'TCP'.

Step 1 : Open the rtconfig.txt file

Everything we need is in a text file called 'rtconfig.txt'. Here's how


to find and open it:

DETAILS IF YOU'RE INTERESTED : The theme comes as a


'.ReaperThemeZip' file, which is nothing more than a standard .zip'
file with a fancy file extension. We've changed it back to zip so we
can get at its tasty innards. We've ignored the .ReaperTheme file
(which controls the non-WALTER elements of the theme) and
images, to get to the rtconfig.txt.

Step 2 : Find the default TCP layout

When you create a track in REAPER, the TCP is the panel that
appears to the left and, unless you've changed it, the default layout
is the one you get. And that's what we're going to edit.

At first glance the rtconfig is big and full of meaningless guff.


Relax; its simple things repeated over and over and much of it
needn't concern you. Use the search function of your text editor to
find this line:

#>---------------------------- TRACK CONTROL PANELS


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

Below that you'll see a section marked 'USER : mess with these:'
...these are the flow settings. We're going to mess with them.

Step 3 : Change the order and try it out

The first chunk of settings you'll see is this:

; order of controls (1-15)


def order_recarm    1
def order_label     2
def order_volume    3
def order_io        4
def order_pan_width 5
def order_mute      6
def order_solo      7
def order_fx        8
def order_fxbyp     9
def order_phase     10
def order_env       11
def order_recmode   12
def order_recmon    13
def order_fxin      14
def order_recinput  15

This is the order that the various parts of the interface appear in.
Flow arranges the elements from the top left in numerical order,
and moves them to the next line if there's not enough room when
you resize the panel, like this:

In this layout, the IO button (that launches the routing window) is


element 4, and the pan/width controls are element 5. Lets swap
them by simply swapping their numbers:

def order_io        5
def order_pan_width 4

Save the text file and return to REAPER. Nothing will have
changed, the IO button will still be in front of the pan control,
because we need to tell REAPER to refresh the theme. Easiest
way to do this is to swap to another theme, and then back again.
Ctrl-Alt-PageUp then Ctrl-Alt-PAgeDown will do that. See it now?
Great. You now know how to make changes to the Flow and check
them in REAPER. Before you take a moment to re-order all the
elements to how you'd like them, however, lets change some other
things...

Step 4 : Change the width of an element

If you change the width of an element, the flow will adjust


accordingly, like this:

Lets play with that. Skip over this section for now, it just sets the
base Flow sizes:
set pad               [4 4]                 ; the padding between elements [x
y]
set n_border          [8 8]                 ; nominal border around all
elements
set e_size            [0 0 19 19]           ; the base element size [0 0
height width]

...to find this section:

;             element          w   h   pad glu sf


variance      order_recarm     0   0   0   0   0
variance      order_label      90  0   -4  0   0.1
variance      order_volume     0   0   -3  0   0
variance      order_io         5   0   0   0   0
variance      order_pan_width  23  0   0   0   0
variance      order_mute       0   0   0   0   0
variance      order_solo       0   0   -5  1   0
variance      order_fx         -3  0   0   0   0
variance      order_fxbyp      -7  0   -4  1   0
variance      order_phase      -4  0   0   0   0
variance      order_env        23  0   0   0   0
variance      order_recmode    16  0   0   0   0
variance      order_recmon     0   0   0   1   0
variance      order_fxin       -1  0   0   0   0
variance      order_recinput   90  0   -4  1   0

Flow always assumes that every element is a square. This section


is where you tell it how much each element varies from that basic
square. The first column of numbers is the variance in width, and
because the theme is NOT made up of lots of squares, you'll notice
I've already set some of them.
Most of the elements will only look 'correct' at the size I've set
them, because they are images, but three are designed to work at
varying widths : the track label, the volume control and the record
input selector. Lets change the width of the track name, and just for
giggles lets make it really stupid so we can really see the
difference:

variance      order_label      200  0   -4  0   0.1

Now do as before : save the text file, refresh the theme in


REAPER, admire the results. Then, perhaps, change the width to
something a little more sensible!

EXTRA DETAILS IF YOU'RE INTERESTED : You'll notice that


rather than being a fixed width, the label stretches a bit as you
resize the width of the panel. This is because of the setting in the
last column 'sf', which is the 'stretch factor'. Have a play with that
value (between 0 and 1) if you want, or don't want, some stretching
to happen.

The second column 'h' is where you can set the variance in
element height. But don't; I haven't set the theme images to look
good at anything other than their standard height.

Step 5 : Glue an element to the previous element

Flow always swaps an element to the next line if there isn't room
for it. However, if you like you can 'glue' two elements so that they
line-swap together, like this:

If you set this value to '1' on the second of the two elements, you'll
get the glue behaviour.

Step 6 : Change the spacing

Flow always puts the same horizontal padding (or 'gap') in front of
every element. In the third column of numbers you can vary this.
Positive numbers make it bigger (in pixels) than the standard,
negative numbers make it smaller, like this:

Step 7 : Other Stuff

set min_width      [196]


layout will break if panel width is less than 2 element's width. Use
this to stop before that happens...

set f_align        [2]


line all the elements up, rather than staggering with the folder
hierarchy ([0] no, [1] yes, [2] V4 style 2nd element stretch)

set show_vals      [0]


show value readouts for volume, pan and width

set use_area       [0]


multiply the stretch factor by the number of visible rows, to make
use of the additional area ([0] no, [1] yes)

set popup_fader    [0]


draw a big fader if size permits

These Flow settings have their own descriptions. Mess with the
values if you wish.

Oops! No! Undo!

Has it all gone wrong? Regret your terrible edits? Well, remember
that we didn't delete the '.ReaperTheme.Zip' file. Just delete
everything you extracted from it (the .ReaperTheme file and its
associated folder, and that folder's content) and rename it back to
'.ReaperThemeZip'.

Done.

You might also like