#>----------------------------------- GLOBALS -----------------------------------------

version 5
use_pngs 1
tcp_showborders 0
mcp_showborders 0
transport_showborders 0
tcp_vupeakwidth 2
mcp_vupeakheight 2
mcp_mastervupeakheight 4
mcp_altmeterpos 0
use_overlays 1
tcp_vol_zeroline FF666666
tcp_pan_zeroline 66000000 
mcp_vol_zeroline FF666666
mcp_pan_zeroline 85000000 
trans_speed_zeroline 85000000
gen_vol_zeroline FF000000
gen_pan_zeroline FF000000
item_volknobfg 85000000 FF778485 00474F4F
mcp_min_height 240
mcp_voltext_flags 5 5
tcp_voltext_flags 12 
tinttcp 298
peaksedges 0
tcp_heights 0 22 43 64   ; supercollapsed, collapsed, small(norecarm), recarm size
tcp_folderindent 13
  
; ----------------- WALTER -------------------
; font #1 - MCP Track Numbers
; font #2 - Extended Mixer
; font #3 - Transport Selection
; font #4 - Envcp labels
; font #5 - Transport Rate
; font #6 - Extended Mixer - Large layouts
; -------------------------------------------

; Global stuff : here are some macros, to be used later

macro colorsmart element r g b rec_red      ; element name, desired rgb, go red on recarm? ('1' yes, '0' no)
  set luma                     + + * 0.299 [trackcolor_r] * 0.587 [trackcolor_g] * 0.114 [trackcolor_b]
  set element                  ?trackcolor_valid luma{x}>140 [0 0 0] [255 255 255] [r g b]
  set redness                  / [trackcolor_r] * [0.5] + + [0.1] [trackcolor_g] [trackcolor_b]
  set element                  ?rec_red ?recarm redness{x}>2.5 [255 150 150] [255 0 0] . .
endmacro

 macro make_sidebar sbar_w lp tp rp bp  ; make a sidebar of defined width, with padding (left top right bottom)
  set w_plus_pads              + + [sbar_w] [lp] [rp]
  set mcp.size                 + w_plus_pads
  set mcp.fxbyp                + w_plus_pads 
  set mcp.fx                   + w_plus_pads 
  set mcp.fxin                 + w_plus_pads 
  set mcp.io                   + w_plus_pads 
  set mcp.recinput             + w_plus_pads 
  set mcp.label                + w_plus_pads 
  set mcp.pan                  + w_plus_pads 
  set mcp.pan.label            + w_plus_pads 
  set mcp.width                + w_plus_pads 
  set mcp.width.label          + w_plus_pads 
  set mcp.mute                 + w_plus_pads
  set mcp.solo                 + w_plus_pads
  set mcp.env                  + w_plus_pads
  set mcp.phase                + w_plus_pads
  set mcp.volume.label         + w_plus_pads
  set mcp.volume               + w_plus_pads
  set mcp.recarm               + w_plus_pads
  set mcp.recmon               + w_plus_pads
  set mcp.recmode              + w_plus_pads
  set mcp.meter                + w_plus_pads
  set mcp.extmixer.mode        [1]
  set mcp.extmixer.position    - - [lp tp sbar_w h] [0 0 0 mcp.trackidx{h}] + [0 0 0 bp] [0 0 0 tp]
  set mcp.trackidx             + * [w_plus_pads] [0.5]
  set mcp.folder               folderstate<0 + [w_plus_pads] . .
endmacro

macro variance loc v2 v3 v4 v5 sf
  set e##loc##_variance              [loc 0 v2 v3 v4 v5 sf]
  set e##order_pan_width##_variance  trackpanmode==3 [loc] .
endmacro 

macro do_flow eA eB eC 
  set eB                      + + + [eA] [eA{w}] [pad eA e_size e_size] count{x}==1 f_align{x}==2 * +:1:-1 maxfolderdepth folderdepth [0 0 13] [0] [0] ; find left. Do special case if e2, and f_align is mode 2
  set eB                      ?count{x} . f_align{x}==2 [n_border eA e_size e_size] [border eA e_size e_size]                                          ; special case if e1, with possible adjustment if f_align is mode 2
  set eB                      + eB [eB##_variance{4} 0 eB##_variance{2} eB##_variance{3}]                                                              ; add the variance
  set str_mult                ?use_area{0} * row_count eB##_variance{6} eB##_variance{6}                                                               ; if use_area is on, multiply the stretch factor by row count
  set eB_str                  + eB * [0 0 str_mult{0}] - real_w{x} 200                                                                                 ; stretch width by the stretch factor
  set eB                      eB_str{w}>eB{w} eB_str eB                                                                                                ; stop the stretch from crushing the element
  set eC                      + [. . e_size] [. . eC##_variance{2}]                                                                                    ; for glue, pt1 : find eC's width
  set eC_str_mult             ?use_area{0} * row_count eC##_variance{6} eC##_variance{6}                                                               ; for glue, pt2 : apply any 
  set eC_str                  + eC * [0 0 eC_str_mult{0}] - real_w{x} 200                                                                              ; for glue, pt3 : find eC's width
  set eC                      eC_str{w}>eC{w} eC_str eC                                                                                                ; for glue, pt4 : find eC's width
  set eB_r                    !eC##_variance{5} \
                                + + [eB] [eB{w}] [border] \
                                + + + + [pad] [eB] [eB{w}] [border] [eC{w}]                                                                            ; find right. Add eC's width and a pad if eC's glue is on.
  set eB                      ef_w{x}<eB_r{x} ef_w{x}<eA_r{x} . + [0 space] [border eA{y} eB eB] .                                                     ; the hiding  
  set eB_b                    + + [eB{y}] [eB{h}] [border{3}]                                                                                          ; find the bottom
  set eB                      h<eB_b{x} [0] !eA{x} !count{x} . [0] .                                          ; if there's not enough height for you, hide. if eA is hidden, you should be too. Unless you're e1, of course.
  set count                   + count{x} [1]            
endmacro

macro draw_tcp
  set count                  [0]
  set ef_w                   ?ef_w_var_on{x} ef_w_var{x} + - w [32] !f_align{x} [0] * +:1:-1 maxfolderdepth folderdepth [13]    ; the effective width without the folder area etc.
  set tcp.volume.label       gl_gl_tcp_volume_label
  set tcp.pan.label          gl_tcp_pan_label
  set tcp.volume.label       gl_tcp_volume_label
  set tcp.width.label        gl_tcp_width_label  
  set tcp.pan.label          gl_tcp_pan_label
  set row_1_min              + ?show_vals{x} [0 tcp.volume.label{h}] [0] + * 2 [0 n_border] [0 e_size{h}]      ; smallest y-size it can fit. Altered if vals are showing.                        
  set row_1_var              + [0 -1] / - [0 h] + * 2 [0 n_border] [0 e_size{h}] 2                             ; set up the y-axis squash
  set border                 + h>row_1_min{y} ?show_vals{x} [n_border tcp.volume.label{h} n_border{x} n_border{y}] [n_border n_border n_border{x} n_border{y}] + [n_border n_border] [0 row_1_var{y}]  \
                             !f_align{x} [0] * +:1:-1 maxfolderdepth folderdepth [13]                          ; Border is [l t r b]. If there's only room for one row, do y-axis squash. If f_align is wanted, do it.  
  set space                  + [pad pad] [e_size{w} e_size{h}]                                                 ; the total size of a standard element 
  set e0                     [. border]                                                                        ; imaginary zero element
  
  set tcp.volume.label       h>row_1_min{y} . [0]    ; if in y-axis squash phase, kill the labels
  set tcp.width.label        h>row_1_min{y} . [0]
  set tcp.pan.label          h>row_1_min{y} . [0]
  
  set tcp.size               + [400 100 min_width{x} 0] !f_align{x} [0] * +:1:-1 maxfolderdepth folderdepth [0 0 13]
  set real_w                 + - w [32] !f_align{x} * maxfolderdepth [13] * folderdepth [13]
  set row_count_2			 + + * 2 border{y} pad{y} * 2 e_size{h} 
  set row_count_3			 + + * 2 border{y} * 2 pad{y} * 3 e_size{h} 
  set row_count              h>row_count_2{0} h>row_count_3{0} [3] [2] [1]

  do_flow e0 e1 e2
  do_flow e1 e2 e3
  do_flow e2 e3 e4
  do_flow e3 e4 e5
  do_flow e4 e5 e6
  do_flow e5 e6 e7
  do_flow e6 e7 e8
  do_flow e7 e8 e9
  do_flow e8 e9 e10
  do_flow e9 e10 e11
  do_flow e10 e11 e12
  do_flow e11 e12 e13
  do_flow e12 e13 e14
  do_flow e13 e14 e15  
  do_flow e14 e15 
  
  set tcp.recarm             e##order_recarm
  set tcp.label              e##order_label
  set tcp.volume             e##order_volume
  set tcp.io                 e##order_io        
  set tcp_pan_width          e##order_pan_width
  set tcp.mute               e##order_mute
  set tcp.solo               e##order_solo
  set tcp.fx                 e##order_fx
  set tcp.fxbyp              e##order_fxbyp
  set tcp.phase              e##order_phase
  set tcp.env                e##order_env
  set tcp.recmode            e##order_recmode
  set tcp.recmon             e##order_recmon
  set tcp.fxin               e##order_fxin
  set tcp.recinput           e##order_recinput  
  
  set pan_width_fader        - / [0 e_size{h}] [1 2] [0 1]
  set tcp.pan                !tcp_pan_width{x} [0] trackpanmode==6 [tcp_pan_width tcp_pan_width tcp_pan_width pan_width_fader{y}] [tcp_pan_width tcp_pan_width e_size e_size] 
  set tcp.width              trackpanmode==3  [0] trackpanmode==6 + tcp.pan + [0 1] [0 pan_width_fader{y}] + tcp.pan - [tcp_pan_width{w}] [e_size{w}]  
  
  set fxparm_space           +:-1:1 + + [n_border n_border] [border e15] [32 e15{h}] [w h]  
  set tcp.fxparm             ?e15{x} + + [border e15] [0 e15{h} fxparm_space{x} fxparm_space{y}] [0 pad] [0]

  set _                      tcp.fxparm{h}>0 + [tcp.fxparm{y}] [tcp.volume{h}] [10000]
  set tcp.label              !popup_fader{x} . h>_{0} + tcp.label [0 0 tcp.volume{w} 0] .
  set tcp.volume             !popup_fader{x} . h>_{0} [tcp.fxparm tcp.fxparm tcp.fxparm tcp.volume{h}] .
  set tcp.fxparm             !popup_fader{x} . h>_{0} - + tcp.fxparm [0 tcp.volume{h}] [0 0 0 tcp.volume{h}] .

  front                          tcp.width tcp.label
  set tcp.volume.label.margin    [0 1 0 0 0]
  set tcp.volume.label.color     val_color
  set tcp.width.label.margin     [0 1 0 0 0]
  set tcp.width.label.color      trackpanmode<=5 val_color [90 130 90]  
  set tcp.pan.label.margin       [0 1 0 0 1]
  set tcp.pan.label.color        trackpanmode<=5 val_color [130 90 90]    
  set tcp.label.margin           [2 0 2 2 0]
  set tcp.label.color            ?recarm [255 255 255] [184 184 184]
  set tcp.fxparm.font            [2]
  set tcp.fxparm.margin          [0 0 3 0]
  set tcp.pan.fadermode          gl_fader_swap   
  set tcp.pan.color              gl_pan_color  
  set tcp.width.fadermode        gl_fader_swap 
  set tcp.width.color            gl_pan_color      
set tcp.recinput.color           ?recarm [255 255 255] [210 210 210]
  set tcp.recinput.margin        [4 0 17 0]       
set tcp.volume.fadermode         tcp.volume{w}>e_size{w} [0] [1] 
  set tcp.volume.color           [0 0 0]    
set tcp.meter                             [388 2 10 95 1 0 1 1]
  set tcp.meter.vu.div                    [1]
  set tcp.meter.readout.color             [100 100 100 255 255 183 171 255]
  set tcp.meter.scale.color.lit.bottom    [255 255 255 255 0 168 99 255]
  set tcp.meter.scale.color.lit.top       [255 255 255 255 0 168 99 255]
  set tcp.meter.scale.color.unlit.bottom  [51 51 51 0 51 51 51 0]
  set tcp.meter.scale.color.unlit.top     [51 51 51 0 51 51 51 0]
set tcp.trackidx                 folderstate<0 [369 35 17 17 1 0.5 1 0.5] folderstate==1 [369 48 17 17 1 0.5 1 0.5] [369 41 17 17 1 0.5 1 0.5]
  set tcp.trackidx               h<32 folderstate<0 [0] . .
  set tcp.trackidx.margin        [0 0 0 0 0.5]
  colorsmart                     tcp.trackidx.color 230 230 230 0
set tcp.foldercomp               [369 0 18 19 1 0 1 0]
set tcp.folder                   [369 86 18 14 1 1 1 1]
  set tcp.folder                 h<32 folderstate<0 . [0] .
  set ef_w_var_on                [0]

endmacro

macro draw_master_tcp
  set count                  [0]
  set ef_w                   ?ef_w_var_on{x} ef_w_var{x} + w [-32] 
  set master.tcp.volume.label gl_tcp_volume_label
  set master.tcp.width.label  ?show_vals{x} + [w] [-70 0 32 16] [0]
  set master.tcp.pan.label    ?show_vals{x} + [w] - [-82 0 40 16] [master.tcp.width.label{w}] [0]
 
  set row_1_min               + ?show_vals{x} [0 master.tcp.volume.label{h}] [0] + * 2 [0 n_border] [0 e_size{h}]      ; smallest y-size it can fit. Altered if vals are showing.                        
  set row_1_var               + [0 -1] / - [0 h] + * 2 [0 n_border] [0 e_size{h}]  2                                   ; set up the y-axis squash
  set border                  + h>row_1_min{y} ?show_vals{x} [n_border master.tcp.volume.label{h} n_border{x} n_border{y}] [n_border n_border n_border{x} n_border{y}] + [n_border n_border] [0 row_1_var{y}]  \
                              !f_align{x} [0] * +:1:-1 maxfolderdepth folderdepth [13]                                 ; Border is [l t r b]. If there's only room for one row, do y-axis squash. If f_align is wanted, do it.  
  set space                   + [pad pad] [e_size{w} e_size{h}]                                                        ; the total size of a standard element 
  set e0                      [. border]                                                                               ; imaginary zero element
  set master.tcp.volume.label h>row_1_min{y} . [0]      ; if in y-axis squash phase, kill the labels
  set master.tcp.width.label  h>row_1_min{y} . [0]
  set master.tcp.pan.label    h>row_1_min{y} . [0]
  set master.tcp.size         + [400 100 min_width{x} 0] !f_align{x} [0] * +:1:-1 maxfolderdepth folderdepth [0 0 13]
  set real_w                  + - w [32] !f_align{x} * maxfolderdepth [13] * folderdepth [13]
  
  do_flow e0 e1 e2
  do_flow e1 e2 e3
  do_flow e2 e3 e4
  do_flow e3 e4 e5
  do_flow e4 e5 e6
  do_flow e5 e6 e7
  do_flow e6 e7 e8
  do_flow e7 e8 e9
  do_flow e8 e9 e10
  do_flow e9 e10

  set master.tcp.label         e##order_label
  set master.tcp.volume        e##order_volume
  set master.tcp.io            e##order_io        
  set master.tcp.mono          e##order_mono
  set master_tcp_pan_width     e##order_pan_width
  set master.tcp.mute          e##order_mute
  set master.tcp.solo          e##order_solo
  set master.tcp.fx            e##order_fx
  set master.tcp.fxbyp         e##order_fxbyp
  set master.tcp.env           e##order_env
  
  set master_pan_width_fader   - / [0 e_size{h}] [1 2] [0 1]
  set master.tcp.pan           !master_tcp_pan_width{x} [0] trackpanmode==6 [master_tcp_pan_width master_tcp_pan_width master_tcp_pan_width master_pan_width_fader{y}] [master_tcp_pan_width master_tcp_pan_width e_size e_size] 
  set master.tcp.width         trackpanmode==3  [0] trackpanmode==6 + master.tcp.pan + [0 1] [0 master_pan_width_fader{y}] + master.tcp.pan - [master_tcp_pan_width{w}] [e_size{w}]  
  set fxparm_space             +:-1:1 + + [n_border n_border] [border e10] [32 e10{h}] [w h]  
  set master.tcp.fxparm        ?e10{x} + + [n_border e10] [0 e10{h} fxparm_space{x} fxparm_space{y}] [0 pad] [0]  
  set _                        master.tcp.fxparm{h}>0 + [master.tcp.fxparm{y}] [master.tcp.volume{h}] [10000]
  set master.tcp.label         !popup_fader{x} . h>_{0} + master.tcp.label [0 0 master.tcp.volume{w} 0] .
  set master.tcp.volume        !popup_fader{x} . h>_{0} [master.tcp.fxparm master.tcp.fxparm master.tcp.fxparm master.tcp.volume{h}] .
  set master.tcp.fxparm        !popup_fader{x} . h>_{0} - + master.tcp.fxparm [0 master.tcp.volume{h}] [0 0 0 master.tcp.volume{h}] .  
endmacro  


; ---------------------------

; Global stuff : here are some often-used lines, set as definitions

def gl_pan_color               trackpanmode<=5 [51 51 51] [84 63 63]
def gl_width_color             trackpanmode=5 [255 255 255] [63 84 63]
def val_color                  [95 95 95]  
def gl_fader_swap              trackpanmode==6 [0] [1]  
def gl_tcp_volume_label        ?show_vals{x} [n_border 0 50 16] [0]
def gl_tcp_width_label         ?show_vals{x} trackpanmode=3 [0] + [w] [-70 0 32 16] [0]  
def gl_tcp_pan_label           ?show_vals{x} + [w] - [-82 0 40 16] [tcp.width.label{w}] [0]

; ---------------------------

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

clear tcp.*  

; ---------------------------- USER : mess with these:----------------------------

; 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

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]

; The 'variance' settings below work as follows: - all elements take on the base element size unless varied here
;   - the first number is the variance in width (can be much bigger, no problem)
;   - the second number is the variance in height (don't go nuts)
;   - the third number is the variance in padding (so make it the negative of the pad number if you want the gap gone)
;   - the fourth number is to set whether the element should glue to the previous element for row switching (1=yes, 0=no)
;   - the fifth number is the required stretch factor (0=no stretching, and progressively to 1=full horizontal stretching)

;            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         

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

; ----------------------------- OK, stop messing here ----------------------------
 draw_tcp  
; the end  
; ----------------------------------------------------------------------------------------------------------------------------------------------------  


Layout "aa - Standard"

set tcp.label  .
  
EndLayout  
  
Layout "ab --- Standard + value readouts"

; ---------------------------- USER : mess with these:----------------------------

; 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

set min_width          [196]
set f_align            [2]
set show_vals          [1]
set use_area           [0]                    
set popup_fader        [0]

set pad              [4 4]
set n_border         [8 8]
set e_size           [0 0 19 19]

;            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         

set min_width          [196]
set f_align            [2]
set show_vals          [1]
set use_area           [0]
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------
draw_tcp 
EndLayout  

Layout "ac --- Standard Media"

; ---------------------------- USER : mess with these:----------------------------

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

set pad              [4 4]
set n_border         [8 8]
set e_size           [0 0 19 19]

;            element          w   h  pad glu  sf  
variance     order_recarm     0   0   0   0   0      
variance     order_label      80  0   -4  0   0         
variance     order_volume     50  0   -4  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   70  0   -4  1   0         

set min_width          [166]
set f_align            [2]
set show_vals          [0]
set use_area           [0] 
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------
draw_tcp 
EndLayout  

Layout "ae --- Standard expanding"

; ---------------------------- USER : mess with these:----------------------------

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

set pad              [4 4]              
set n_border         [8 8]            
set e_size           [0 0 19 19]
           
;            element          w   h  pad glu  sf 
variance     order_recarm     0   0   0   0   0      
variance     order_label      60  0   -4  0   0.1         
variance     order_volume     40  0   -4  0   0.1          
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   50  0   -4  1   0.1
         
set min_width          [166]            
set f_align            [2]              
set show_vals          [0]
set use_area           [1]                    
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------
draw_tcp
EndLayout

Layout "af --- Standard expanding, popup fader"

; ---------------------------- USER : mess with these:----------------------------

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

set pad              [4 4]              
set n_border         [8 8]            
set e_size           [0 0 19 19]
           
;            element          w   h  pad glu  sf 
variance     order_recarm     0   0   0   0   0      
variance     order_label      60  0   -4  0   0.1         
variance     order_volume     40  0   -4  0   0.1          
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   50  0   -4  1   0.1
         
set min_width          [166]            
set f_align            [2]              
set show_vals          [0]
set use_area           [1]                    
set popup_fader        [1]
draw_tcp
EndLayout

Layout "ag --- Standard Compact"

; ---------------------------- USER : mess with these:----------------------------

; 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

set pad              [4 4]
set n_border         [8 8]
set e_size           [0 0 19 19]

;            element          w   h  pad glu  sf  
variance     order_recarm     0   0   0   0   0      
variance     order_label      60  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   60  0   -4  1   0         

set min_width          [186]
set f_align            [2]
set show_vals          [0]
set use_area           [0]                    
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------
draw_tcp
EndLayout

Layout "ah --- Standard Compact + value readouts"

; ---------------------------- USER : mess with these:----------------------------

; 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

set pad              [4 4]
set n_border         [8 8]
set e_size           [0 0 19 19]

;            element          w   h  pad glu  sf  
variance     order_recarm     0   0   0   0   0      
variance     order_label      80  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   70  0   -4  1   0         

set min_width          [186]
set f_align            [2]
set show_vals          [1]
set use_area           [0]                    
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------
draw_tcp
EndLayout

Layout "ai --- Standard Live Recording"

; ---------------------------- USER : mess with these:----------------------------

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

set pad              [4 4]
set n_border         [8 8]
set e_size           [0 0 19 19]

;            element          w   h  pad glu  sf  
variance     order_recarm     0   0   0   0   0      
variance     order_label      60  0   -4  0   0.1         
variance     order_volume     0   0   -3  0   0          
variance     order_io         5   0   -4  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   -5  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   105  0  -4  1   0.1         

set min_width          [190]
set f_align            [2]
set show_vals          [0]
set use_area           [1]                    
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------
draw_tcp 
EndLayout
  
Layout "ba - Small" "small"

; ---------------------------- USER : mess with these:----------------------------

; 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

set pad              [3 3]
set n_border         [6 6]
set e_size           [0 0 15 15]

;            element          w   h  pad glu  sf  
variance     order_recarm     0   0   0   0   0      
variance     order_label      80  0   -3  0   0.05         
variance     order_volume     0   0   -3  0   0.15          
variance     order_io         5   0   0   0   0            
variance     order_pan_width  18  0   0   0   0
variance     order_mute       0   0   0   0   0             
variance     order_solo       0   0   -4  1   0             
variance     order_fx         -1  0   0   0   0            
variance     order_fxbyp      -5  0   -3  1   0          
variance     order_phase      -1  0   0   0   0          
variance     order_env        22  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   70  0   -4  1   0.05         

set min_width          [172]
set f_align            [2]
set show_vals          [0]
set use_area           [1]
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------

draw_tcp
EndLayout  

Layout "bb --- Small + value readouts" "small"

; ---------------------------- USER : mess with these:----------------------------

; 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

set pad              [3 3]
set n_border         [6 6]
set e_size           [0 0 15 15]

;            element          w   h  pad glu  sf  
variance     order_recarm     0   0   0   0   0      
variance     order_label      80  0   -3  0   0.05         
variance     order_volume     0   0   -3  0   0.15          
variance     order_io         5   0   0   0   0            
variance     order_pan_width  18  0   0   0   0
variance     order_mute       0   0   0   0   0             
variance     order_solo       0   0   -4  1   0             
variance     order_fx         -1  0   0   0   0            
variance     order_fxbyp      -5  0   -3  1   0          
variance     order_phase      -1  0   0   0   0          
variance     order_env        22  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   70  0   -4  1   0.05         

set min_width          [172]
set f_align            [2]
set show_vals          [1]
set use_area           [1]
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------

draw_tcp 
EndLayout  
  
Layout "bc --- Small Media" "small"

; ---------------------------- USER : mess with these:----------------------------

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

set pad              [3 3]
set n_border         [6 6]
set e_size           [0 0 15 15]

;            element          w   h  pad glu  sf  
variance     order_recarm     0   0   0   0   0      
variance     order_label      80  0   -3  0   0         
variance     order_volume     50  0   -3  0   0          
variance     order_io         5   0   0   0   0            
variance     order_pan_width  18  0   0   0   0
variance     order_mute       0   0   0   0   0             
variance     order_solo       0   0   -4  1   0             
variance     order_fx         -1  0   0   0   0            
variance     order_fxbyp      -5  0   -3  1   0          
variance     order_phase      -1  0   0   0   0          
variance     order_env        22  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   70  0   -4  1   0         

set min_width          [166]
set f_align            [2]
set show_vals          [0]
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------

draw_tcp
EndLayout    

Layout "bd --- Small Full Meter" "small"

; ---------------------------- USER : mess with these:----------------------------

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

set pad              [3 3]                  ; the padding between elements [x y]
set n_border         [6 6]                  ; nominal border around all elements
set e_size           [0 0 15 15]            ; the base element size [0 0 height width]
set f_align          [0]                    ; line all the elements up, rather than staggering with the folder hierarchy ([0] no, [1] yes, [2] V4 style 2nd element stretch)

;            element          w   h  pad glu  sf  
variance     order_recarm     0   0   0   0   0      
variance     order_label      0   0   0   0   0      ; overridden below.     
variance     order_volume     0   0   -3  0   0          
variance     order_io         5   0   -3  0   0            
variance     order_pan_width  18  0   0   0   0
variance     order_mute       0   0   0   0   0             
variance     order_solo       0   0   -4  1   0             
variance     order_fx         -1  0   0   0   0            
variance     order_fxbyp      -5  0   -3  1   0          
variance     order_phase      -1  0   0   0   0          
variance     order_env        22  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   70  0   -4  0   0
         
set meter_ratio        [0.6]                  ; what proportion of the horizontal width do you want filled with meter?
set min_width          [273]                  ; layout will break if panel width is less than 2 element's width. Use this to stop before that happens...
set show_vals          [0]                    ; show value readouts for volume, pan and width
set popup_fader        [0]                    ; draw a big fader if size permits

; ----------------------------- OK, stop messing here ----------------------------

set real_w                                + - w [34] !f_align{x} [0] * folderdepth [13]
set remainder                             - [1] [meter_ratio{x}]
set meter_block                           + * real_w{x} [remainder{x} meter_ratio{x}] * folderdepth [-13]
set ef_w_var_on                           [1]                                                                           ; override the normal ef_w, meter is going to be there and be stretchy 
set ef_w_var                              + meter_block{x} !f_align{x} [0] * +:1:-1 maxfolderdepth folderdepth [13]     ; behold, the dirty hand of hackery
set ef_w_used                             !f_align{x} - meter_block{x} - + meter_block{x} * folderdepth [13] * maxfolderdepth [13]
draw_tcp
set tcp.volume.label                      h>row_1_min{y} gl_tcp_volume_label [0]
set tcp.width.label                       w<300 [0] h>row_1_min{y} ?show_vals{x} trackpanmode=3 [0] + [meter_block{x}] [-38 0 32 16] [0] [0]
set tcp.pan.label                         w<340 [0] h>row_1_min{y} ?show_vals{x} + [meter_block{x}] - [-50 0 40 16] [tcp.width.label{w}] [0] [0]   
set tcp.meter                             [meter_block{x} 2 meter_block{y} 95 0 0 0 1] 
  set tcp.meter.vu.div                    [1]
  set tcp.meter.readout.color             [100 100 100 255 255 183 171 255]
  set tcp.meter.scale.color.lit.bottom    [255 255 255 255 0 168 99 255]
  set tcp.meter.scale.color.lit.top       [255 255 255 255 0 168 99 255]
  set tcp.meter.scale.color.unlit.bottom  [100 100 100 255 38 38 38 255]
  set tcp.meter.scale.color.unlit.top     [100 100 100 255 38 38 38 255] 
set tcp.label                             [386 0 15 100 1 0 1 1]  ; overwrite the flow set label
  set tcp.label.margin                    [5 4 0 4 0.5]
set ef_w_var_on                           [0]                     ; reset that

EndLayout

Layout "bd --- Small Full Meter + value readouts" "small"

set count    [0]

; ---------------------------- USER : mess with these:----------------------------

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

set pad              [3 3]                  ; the padding between elements [x y]
set n_border         [6 6]                  ; nominal border around all elements
set e_size           [0 0 15 15]            ; the base element size [0 0 height width]
set f_align          [0]                    ; line all the elements up, rather than staggering with the folder hierarchy ([0] no, [1] yes, [2] V4 style 2nd element stretch)

;            element          w   h  pad glu  sf  
variance     order_recarm     0   0   0   0   0      
variance     order_label      0   0   0   0   0      ; overridden below.     
variance     order_volume     0   0   -3  0   0          
variance     order_io         5   0   -3  0   0            
variance     order_pan_width  18  0   0   0   0
variance     order_mute       0   0   0   0   0             
variance     order_solo       0   0   -4  1   0             
variance     order_fx         -1  0   0   0   0            
variance     order_fxbyp      -5  0   -3  1   0          
variance     order_phase      -1  0   0   0   0          
variance     order_env        22  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   70  0   -4  0   0

set meter_ratio        [0.6]                  ; what proportion of the horizontal width do you want filled with meter?
set min_width          [273]                  ; layout will break if panel width is less than 2 element's width. Use this to stop before that happens...
set show_vals          [1]                    ; show value readouts for volume, pan and width
set popup_fader        [0]                    ; draw a big fader if size permits

; ----------------------------- OK, stop messing here ----------------------------

set real_w                                + - w [34] !f_align{x} [0] * folderdepth [13]
set remainder                             - [1] [meter_ratio{x}]
set meter_block                           + * real_w{x} [remainder{x} meter_ratio{x}] * folderdepth [-13]
set ef_w_var_on                           [1]                                   ; override the normal ef_w, meter is going to be there and be stretchy 
set ef_w_var                              + meter_block{x} !f_align{x} [0] * +:1:-1 maxfolderdepth folderdepth [13] ; behold, the dirty hand of hackery
set ef_w_used                             !f_align{x} meter_block{x} - + meter_block{x} * folderdepth [13] * maxfolderdepth [13]
draw_tcp
set tcp.volume.label                      h>row_1_min{y} gl_tcp_volume_label [0]
set tcp.width.label                       w<300 [0] h>row_1_min{y} ?show_vals{x} trackpanmode=3 [0] + [meter_block{x}] [-38 0 32 16] [0] [0]
set tcp.pan.label                         w<340 [0] h>row_1_min{y} ?show_vals{x} + [meter_block{x}] - [-50 0 40 16] [tcp.width.label{w}] [0] [0]  
set tcp.meter                             [meter_block{x} 2 meter_block{y} 95 0 0 0 1] 
  set tcp.meter.vu.div                    [1]
  set tcp.meter.readout.color             [100 100 100 255 255 183 171 255]
  set tcp.meter.scale.color.lit.bottom    [255 255 255 255 0 168 99 255]
  set tcp.meter.scale.color.lit.top       [255 255 255 255 0 168 99 255]
  set tcp.meter.scale.color.unlit.bottom  [100 100 100 255 38 38 38 255]
  set tcp.meter.scale.color.unlit.top     [100 100 100 255 38 38 38 255]  
set tcp.label                             [386 0 15 100 1 0 1 1]  ; overwrite the flow set label
  set tcp.label.margin                    [5 4 0 4 0.5]
set ef_w_var_on                           [0]                     ; reset that

EndLayout

Layout "be --- Small expanding, popup fader" "small"

; ---------------------------- USER : mess with these:----------------------------

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

set pad              [3 3]
set n_border         [6 6]
set e_size           [0 0 15 15]

;            element          w   h  pad glu  sf  
variance     order_recarm     0   0   0   0   0       
variance     order_label      80  0   -3  0   0.1         
variance     order_volume     0   0   -4  0   0.1          
variance     order_io         5   0   0   0   0            
variance     order_pan_width  18  0   0   0   0
variance     order_mute       0   0   0   0   0             
variance     order_solo       0   0   -4  1   0             
variance     order_fx         -1  0   0   0   0            
variance     order_fxbyp      -5  0   -3  1   0          
variance     order_phase      -1  0   0   0   0          
variance     order_env        22  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   70  0   -4  1   0.1         

set min_width          [166]            
set f_align            [2]              
set show_vals          [0]
set use_area           [1]                    
set popup_fader        [1]

; ----------------------------- OK, stop messing here ----------------------------

draw_tcp
EndLayout
  
Layout "ca - Large" "Large"

; ---------------------------- USER : mess with these:----------------------------

; 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

set pad              [5 5]
set n_border         [10 10]
set e_size           [0 0 23 23]

;            element          w   h  pad glu  sf  
variance     order_recarm     0   0   0   0   0      
variance     order_label      80  0   -5  0   0.05         
variance     order_volume     100   0   -5  0   0         
variance     order_io         7   0   0   0   0            
variance     order_pan_width  28  0   0   0   0
variance     order_mute       0   0   0   0   0             
variance     order_solo       0   0   -6  1   0             
variance     order_fx         -5  0   0   0   0            
variance     order_fxbyp      -9  0   -5  1   0          
variance     order_phase      -6  0   0   0   0          
variance     order_env        28  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   70  0   -5  1   0.05         

set min_width          [206]            
set f_align            [2]              
set show_vals          [0]
set use_area           [1]                    
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------

draw_tcp
set tcp._debug1 [tcp.volume.fadermode]

EndLayout    
  
Layout "cb --- Large + value readouts" "Large"

; ---------------------------- USER : mess with these:----------------------------

; 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

set pad              [5 5]
set n_border         [10 10]
set e_size           [0 0 23 23]

;            element          w   h  pad glu  sf  
variance     order_recarm     0   0   0   0   0      
variance     order_label      80  0   -5  0   0.05         
variance     order_volume     0   0   -5  0   0.15         
variance     order_io         7   0   0   0   0            
variance     order_pan_width  28  0   0   0   0
variance     order_mute       0   0   0   0   0             
variance     order_solo       0   0   -6  1   0             
variance     order_fx         -5  0   0   0   0            
variance     order_fxbyp      -9  0   -5  1   0          
variance     order_phase      -6  0   0   0   0          
variance     order_env        28  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   70  0   -5  1   0.05         

set min_width          [226]            
set f_align            [2]              
set show_vals          [1]
set use_area           [1]                    
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------

draw_tcp

EndLayout      

Layout "cc --- Large Media" "Large"

; ---------------------------- USER : mess with these:----------------------------

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

set pad              [5 5]
set n_border         [10 10]
set e_size           [0 0 23 23]

;            element          w   h  pad glu  sf  
variance     order_recarm     0   0   0   0   0      
variance     order_label      80  0   -5  0   0         
variance     order_volume     0   0   -5  0   0          
variance     order_io         7   0   0   0   0            
variance     order_pan_width  28  0   0   0   0
variance     order_mute       0   0   0   0   0             
variance     order_solo       0   0   -6  1   0             
variance     order_fx         -5  0   0   0   0            
variance     order_fxbyp      -9  0   -5  1   0          
variance     order_phase      -6  0   0   0   0          
variance     order_env        28  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   70  0   -5  1   0         

set min_width          [210]
set f_align            [2]
set show_vals          [0]
set use_area           [0] 
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------

draw_tcp
EndLayout    
  
Layout "cd --- Large expanding, popup fader" "Large"

; ---------------------------- USER : mess with these:----------------------------

; 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

set pad              [5 5]
set n_border         [10 10]
set e_size           [0 0 23 23]

;            element          w   h  pad  glu sf  
variance     order_recarm     0   0   0   0   0      
variance     order_label      80  0   -5  0   0.1         
variance     order_volume     0   0   -5  0   0.1          
variance     order_io         7   0   0   0   0            
variance     order_pan_width  28  0   0   0   0
variance     order_mute       0   0   0   0   0             
variance     order_solo       0   0   -6  1   0             
variance     order_fx         -5  0   0   0   0            
variance     order_fxbyp      -9  0   -5  1   0          
variance     order_phase      -6  0   0   0   0          
variance     order_env        28  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   70  0   -5  1   0.1         

set min_width          [210]            
set f_align            [2]              
set show_vals          [0]
set use_area           [1]                    
set popup_fader        [1]

; ----------------------------- OK, stop messing here ----------------------------
draw_tcp
EndLayout

Layout "ce --- Large Live Recording" "Large"

; ---------------------------- USER : mess with these:----------------------------

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

set pad              [5 5]
set n_border         [10 10]
set e_size           [0 0 23 23]

;            element          w   h  pad glu  sf  
variance     order_recarm     0   0   0   0   0      
variance     order_label      60  0   -5  0   0.1         
variance     order_volume     0  0   -5  0    0          
variance     order_io         7   0   -5  0   0            
variance     order_pan_width  28  0   0   0   0
variance     order_mute       0   0   0   0   0             
variance     order_solo       0   0   -6  1   0             
variance     order_fx         -5  0   -6  0   0            
variance     order_fxbyp      -9  0   -5  1   0          
variance     order_phase      -6  0   0   0   0          
variance     order_env        28  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   105 0   -5  1   0.1         

set min_width          [216]            
set f_align            [2]              
set show_vals          [0]
set use_area           [1]                    
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------
draw_tcp
EndLayout  
#<
#>------------------------- MASTER TRACK CONTROL PANEL --------------------------------

; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-15)
def order_label      1
def order_volume     2
def order_io         3
def order_pan_width  4
def order_mono       5
def order_mute       6
def order_solo       7
def order_fx         8
def order_fxbyp      9
def order_env        10

set pad              [4 4]
set n_border         [8 8]
set e_size           [0 0 19 19]

;            element          w   h  pad glu  sf  
variance     order_label      34  0   0   0   0         
variance     order_volume     92  0   -4  0   0.3          
variance     order_io         5   0   0   0   0            
variance     order_pan_width  23  0   0   0   0
variance     order_mono       30  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_env        23  0   0   0   0            

set min_width          [217]
set f_align            [0]                    
set show_vals          [1]
set use_area           [0]
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------

draw_master_tcp
  front                                          master.tcp.width
  set master.tcp.volume.label.margin             [0 1 0 0 0]
  set master.tcp.volume.label.color              [110 110 110]
  set master.tcp.width.label.margin              [0 1 0 0 0]
  set master.tcp.width.label.color               trackpanmode<=5 [110 110 110] [90 130 90]  
  set master.tcp.pan.label.margin                [4 1 0 0 1]
  set master.tcp.pan.label.color                 trackpanmode<=5 [110 110 110] [130 90 90]  
  set master.tcp.label.margin                    [4 0 4 1 0]
  set master.tcp.label.color                     ?recarm [255 255 255] [184 184 184]
  set master.tcp.volume.fadermode                tcp.volume{y}>e_size{y} [0] [1] 
  set master.tcp.volume.color                    [0 0 0]
  set master.tcp.pan.fadermode                   gl_fader_swap   
  set master.tcp.pan.color                       gl_pan_color  
  set master.tcp.width.fadermode                 gl_fader_swap 
  set master.tcp.width.color                     gl_pan_color  
  set master.tcp.recinput.color                  ?recarm [255 255 255] [210 210 210]
  set master.tcp.recinput.margin                 [4 0 17 0]       
  set master.tcp.fxparm.font                     [2]
set master.tcp.meter                             [370 2 28 95 1 0 1 1]
  set master.tcp.meter.vu.div                    [1]
  set master.tcp.meter.vu.rmsdiv                 [1]
  set master.tcp.meter.rmsreadout.color          [100 100 100 255 255 183 171 255]
  set master.tcp.meter.readout.color             [100 100 100 255 255 183 171 255]
  set master.tcp.meter.scale.color.lit.bottom    [255 255 255 255 0 168 99 255]
  set master.tcp.meter.scale.color.lit.top       [255 255 255 255 0 168 99 255]
  set master.tcp.meter.scale.color.unlit.bottom  [51 51 51 0 51 51 51 0]
  set master.tcp.meter.scale.color.unlit.top     [51 51 51 0 51 51 51 0]
  
Layout "aa - Standard"

set master.tcp.label  .
  
EndLayout

Layout "ab --- Standard, popup fader"

; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-15)
def order_label      1
def order_volume     2
def order_io         3
def order_pan_width  4
def order_mono       5
def order_mute       6
def order_solo       7
def order_fx         8
def order_fxbyp      9
def order_env        10

set pad              [4 4]
set n_border         [8 8]
set e_size           [0 0 19 19]

;            element          w   h  pad glu  sf  
variance     order_label      34  0   0   0   0         
variance     order_volume     92 0   -4  0   0.3          
variance     order_io         5   0   0   0   0            
variance     order_pan_width  23  0   0   0   0
variance     order_mono       30  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_env        23  0   0   0   0            

set min_width          [217]
set f_align            [0]                    
set show_vals          [1]
set use_area           [0]
set popup_fader        [1]

; ----------------------------- OK, stop messing here ----------------------------
draw_master_tcp  
EndLayout    
  
  
Layout "ba - Large" "Large"

; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-15)
def order_label      1
def order_volume     2
def order_io         3
def order_pan_width  4
def order_mono       5
def order_mute       6
def order_solo       7
def order_fx         8
def order_fxbyp      9
def order_env        10

set pad              [5 5]
set n_border         [10 10]
set e_size           [0 0 23 23]

;            element          w   h  pad glu  sf  
variance     order_label      30  0   0   0   0         
variance     order_volume     104 0   -5  0   0.3          
variance     order_io         7   0   0   0   0            
variance     order_pan_width  28  0   0   0   0
variance     order_mono       30  0   0   0   0
variance     order_mute       0   0   0   0   0             
variance     order_solo       0   0   -6  1   0             
variance     order_fx         -5  0   0   0   0            
variance     order_fxbyp      -9  0   -5  1   0          
variance     order_env        28  0   0   0   0            

set min_width          [234]
set f_align            [0]                    
set show_vals          [1]
set use_area           [0]
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------
draw_master_tcp  
EndLayout    

Layout "bb - Large, popup fader" "Large"

; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-15)
def order_label      1
def order_volume     2
def order_io         3
def order_pan_width  4
def order_mono       5
def order_mute       6
def order_solo       7
def order_fx         8
def order_fxbyp      9
def order_env        10

set pad              [5 5]
set n_border         [10 10]
set e_size           [0 0 23 23]

;            element          w   h  pad glu  sf  
variance     order_label      30  0   0   0   0         
variance     order_volume     104 0   -5  0   0.3          
variance     order_io         7   0   0   0   0            
variance     order_pan_width  28  0   0   0   0
variance     order_mono       30  0   0   0   0
variance     order_mute       0   0   0   0   0             
variance     order_solo       0   0   -6  1   0             
variance     order_fx         -5  0   0   0   0            
variance     order_fxbyp      -9  0   -5  1   0          
variance     order_env        28  0   0   0   0            

set min_width          [234]
set f_align            [0]                    
set show_vals          [1]
set use_area           [0]
set popup_fader        [1]

; ----------------------------- OK, stop messing here ----------------------------
draw_master_tcp  
EndLayout    

Layout "ca - Small" "small"

; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-15)
def order_label      1
def order_volume     2
def order_io         3
def order_pan_width  4
def order_mono       5
def order_mute       6
def order_solo       7
def order_fx         8
def order_fxbyp      9
def order_env        10

set pad              [3 3]
set n_border         [6 6]
set e_size           [0 0 15 15]

;            element          w   h  pad glu  sf  
variance     order_label      40  0   0   0   0         
variance     order_volume     78  0   -3  0   0.3          
variance     order_io         5   0   0   0   0            
variance     order_pan_width  18  0   0   0   0
variance     order_mono       31  0   0   0   0
variance     order_mute       0   0   0   0   0             
variance     order_solo       0   0   -4  1   0             
variance     order_fx         -1  0   0   0   0            
variance     order_fxbyp      -5  0   -3  1   0          
variance     order_env        22  0   0   0   0            

set min_width          [172]
set f_align            [0]                    
set show_vals          [1]
set use_area           [0]
set popup_fader        [0]

; ----------------------------- OK, stop messing here ----------------------------

draw_master_tcp  
EndLayout

Layout "cb --- Small Full Meter" "small"

; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-15)
def order_label      10
def order_volume     2
def order_io         1
def order_pan_width  3
def order_mono       4
def order_mute       5
def order_solo       6
def order_fx         7
def order_fxbyp      8
def order_env        9

set pad              [3 3]                  ; the padding between elements [x y]
set n_border         [6 6]                  ; nominal border around all elements
set e_size           [0 0 15 15]            ; the base element size [0 0 height width]

;            element          w   h  pad glu  sf   
variance     order_label      0   0   0   0   0      ; overridden below.   
variance     order_volume     0   0   0   0   0          
variance     order_io         5   0   0   0   0            
variance     order_pan_width  18  0   0   0   0
variance     order_mono       31  0   0   0   0
variance     order_mute       0   0   0   0   0             
variance     order_solo       0   0   -4  1   0             
variance     order_fx         -1  0   0   0   0            
variance     order_fxbyp      -5  0   -3  1   0          
variance     order_env        22  0   0   0   0 
         
set meter_ratio        [0.6]                  ; what proportion of the horizontal width do you want filled with meter?
set min_width          [273]                  ; layout will break if panel width is less than 2 element's width. Use this to stop before that happens...
set show_vals          [1]                    ; show value readouts for volume, pan and width

; ----------------------------- OK, stop messing here ----------------------------

set real_w                                - w [34] !f_align{x} [0]
set remainder                             - [1] [meter_ratio{x}]
set meter_block                           + [18] * real_w{x} [remainder{x} meter_ratio{x}]
set ef_w_var_on                           [1]                                                                           ; override the normal ef_w, meter is going to be there and be stretchy 
set ef_w_var                              meter_block{x}
set ef_w_used                             meter_block{x}
draw_master_tcp
set master.tcp.volume.label                      h>row_1_min{y} gl_tcp_volume_label [0]
set master.tcp.width.label                       w<300 [0] h>row_1_min{y} ?show_vals{x} trackpanmode=3 [0] + [meter_block{x}] [-38 0 32 16] [0] [0]
set master.tcp.pan.label                         w<340 [0] h>row_1_min{y} ?show_vals{x} + [meter_block{x}] - [-50 0 40 16] [master.tcp.width.label{w}] [0] [0]   
set master.tcp.meter                             [meter_block{x} 2 meter_block{y} 95 0 0 0 1] 
  set master.tcp.meter.vu.div                    [1]
  set master.tcp.meter.readout.color             [100 100 100 255 255 183 171 255]
  set master.tcp.meter.scale.color.lit.bottom    [255 255 255 255 0 168 99 255]
  set master.tcp.meter.scale.color.lit.top       [255 255 255 255 0 168 99 255]
  set master.tcp.meter.scale.color.unlit.bottom  [100 100 100 255 38 38 38 255]
  set master.tcp.meter.scale.color.unlit.top     [100 100 100 255 38 38 38 255] 
set master.tcp.label                             [386 0 15 100 1 0 1 1]  ; overwrite the flow set label
  set master.tcp.label.margin                    [5 4 0 4 0.5]
set ef_w_var_on                           [0]                     ; reset that

; set master.tcp.volume [0 40 meter_block{x} 15]

EndLayout
#<
#> -------------------------- ENVELOPE CONTROL PANELS ---------------------------------

macro variance loc v2 v3 v4 v5 sf
  set e##loc##_variance              [loc 0 v2 v3 v4 v5 sf]
endmacro 

macro draw_envcp
set count                    [0]
set ef_w                     + + w * folderdepth [-26] * maxfolderdepth [13]          ; the effective width
set row_1_min                + [0] + * 2 [0 n_border] [0 e_size{h}]                   ; smallest y-size it can fit.                       
set row_1_var                + [0 -1] / - [0 h] + * 2 [0 n_border] [0 e_size{h}] 2    ; set up the y-axis squash
set border                   + h>row_1_min{y} [n_border n_border n_border{x} n_border{y}] + [n_border n_border] [0 row_1_var{y}]  \
                             !f_align{x} [0] * +:1:-1 maxfolderdepth folderdepth [13] ; Border is [l t r b]. If there's only room for one row, do y-axis squash. If f_align is wanted, do it.  
set space                  + [pad pad] [e_size{w} e_size{h}]                                                 ; the total size of a standard element 
set e0                       [. border]                                               ; imaginary zero element
set envcp.size               + [400 100 min_width{x} 0] !f_align{x} [0] * +:1:-1 maxfolderdepth folderdepth [0 0 13]         
  
  do_flow e0 e1 e2
  do_flow e1 e2 e3
  do_flow e2 e3 e4
  do_flow e3 e4 e5
  do_flow e4 e5 e6
  do_flow e5 e6 e7
  do_flow e6 e7 e8
  do_flow e7 e8   
  set envcp.arm              e##order_arm 
  set envcp.label            e##order_label  
  set envcp.fader            e##order_fader
  set envcp.value            e##order_value
  set envcp.mod              e##order_mod
  set envcp.learn            e##order_learn
  set envcp.bypass           e##order_bypass
  set envcp.hide             e##order_hide
  set envcp.label.font       [4]
  set envcp.label.color      [184 184 184]
  set envcp.label.margin     [2 0 2 0 0]
  set envcp.value.font       [4]
  set envcp.value.color      [184 184 184]
  set envcp.value.margin     [0 0 0 2]  
  set envcp.fader.fadermode  envcp.fader{w}>e_size{w} [0] [1] 
  set envcp.fader.color      [0 0 0]  
endmacro

clear envcp.*

; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-8)
def order_arm        1
def order_label      2
def order_fader      3
def order_value      4
def order_bypass     5
def order_hide       6
def order_mod        7
def order_learn      8

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]

;            element          w   h  pad glu  sf  
variance     order_arm        0   0   0   0   0
variance     order_label      70  0   -4  0   0.2
variance     order_fader      0   0   -3  0   0
variance     order_learn      0   0   0   0   0
variance     order_bypass     -6  0   0   0   0
variance     order_hide       16  0   0   0   0   
variance     order_value      20  0   0   0   0.2
variance     order_mod        0   0   0   0   0

set min_width          [186]                  ; layout will break if panel width is less than 2 element's width. Use this to stop before that happens...
set use_area           [1]                    ; multiply the stretch factor by the number of visible rows, to make use of the additional area
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)

; ----------------------------- OK, stop messing here ----------------------------
draw_envcp
   
Layout "aa - Standard"

set envcp.label  .
  
EndLayout    
   
Layout "ab --- verbose buttons"

; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-8)
def order_arm      1
def order_label    2
def order_fader    3
def order_learn    8
def order_bypass   5
def order_hide     6
def order_value    4
def order_mod      7

set pad            [4 4]
set n_border       [8 8]
set e_size         [0 0 19 19]

;            element          w   h  pad glu  sf  
variance     order_arm        0   0   0   0   0
variance     order_label      70  0   -4  0   0.2
variance     order_fader      0   0   -3  0   0
variance     order_learn      26  0   0   0   0
variance     order_bypass     -6  0   0   0   0
variance     order_hide       16  0   0   0   0   
variance     order_value      70  0   0   0   0.2
variance     order_mod        26  0   0   0   0

set min_width          [186]
set use_area           [1]
set f_align            [2]

; ----------------------------- OK, stop messing here ----------------------------
draw_envcp
EndLayout

Layout "ac --- Long Names"

; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-8)
def order_arm      1
def order_label    2
def order_fader    3
def order_learn    8
def order_bypass   5
def order_hide     6
def order_value    4
def order_mod      7

set pad            [4 4]
set n_border       [8 8]
set e_size         [0 0 19 19]

;            element          w   h  pad glu  sf  
variance     order_arm        0   0   0   0   0
variance     order_label      140 0   -4  0   0.2
variance     order_fader      0   0   -3  0   0
variance     order_learn      26  0   0   0   0
variance     order_bypass     -6  0   0   0   0
variance     order_hide       16  0   0   0   0   
variance     order_value      140 0   0   0   0.2
variance     order_mod        26  0   0   0   0

set min_width          [186]
set use_area           [1]
set f_align            [2]

; ----------------------------- OK, stop messing here ----------------------------
draw_envcp
EndLayout

Layout "ad --- Compact"

; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-8)
def order_arm      1
def order_label    2
def order_fader    3
def order_learn    8
def order_bypass   4
def order_hide     5
def order_value    6
def order_mod      7

set pad            [4 4]
set n_border       [8 8]
set e_size         [0 0 19 19]

;            element          w   h  pad glu  sf  
variance     order_arm        0   0   0   0   0
variance     order_label      40  0   -4  0   0.3
variance     order_fader      0   0   -3  0   0
variance     order_learn      0   0   0   0   0
variance     order_bypass     -6  0   0   0   0
variance     order_hide       16  0   0   0   0   
variance     order_value      20  0   0   0   0.3
variance     order_mod        0   0   0   0   0

set min_width          [186]
set use_area           [1]
set f_align            [2]

; ----------------------------- OK, stop messing here ----------------------------
draw_envcp
EndLayout

Layout "ca - Large" "large"

; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-8)
def order_arm        1
def order_label      2
def order_fader      3
def order_value      4
def order_bypass     5
def order_hide       6
def order_mod        7
def order_learn      8

set pad            [5 5]
set n_border       [10 10]
set e_size         [0 0 23 23]

;            element          w   h  pad glu  sf  
variance     order_arm        0   0   0   0   0
variance     order_label      70  0   -5  0   0.2
variance     order_fader      0   0   -4  0   0
variance     order_learn      0   0   0   0   0
variance     order_bypass     -7  0   0   0   0
variance     order_hide       19  0   0   0   0   
variance     order_value      20  0   0   0   0.2
variance     order_mod        0   0   0   0   0

set min_width          [186]
set use_area           [1]
set f_align            [2]

; ----------------------------- OK, stop messing here ----------------------------
draw_envcp
EndLayout

Layout "cb --- Large verbose buttons" "large"

; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-8)
def order_arm      1
def order_label    2
def order_fader    3
def order_learn    8
def order_bypass   5
def order_hide     6
def order_value    4
def order_mod      7

set pad            [5 5]
set n_border       [10 10]
set e_size         [0 0 23 23]

;            element          w   h  pad glu  sf  
variance     order_arm        0   0   0   0   0
variance     order_label      70  0   -5  0   0.2
variance     order_fader      0   0   -4  0   0
variance     order_learn      31  0   0   0   0
variance     order_bypass     -7  0   0   0   0
variance     order_hide       19  0   0   0   0   
variance     order_value      20  0   0   0   0.2
variance     order_mod        31  0   0   0   0

set min_width          [186]
set use_area           [1]
set f_align            [2]

; ----------------------------- OK, stop messing here ----------------------------
draw_envcp
EndLayout

Layout "cc --- Large Long Names" "large"

; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-8)
def order_arm        1
def order_label      2
def order_fader      3
def order_value      4
def order_bypass     5
def order_hide       6
def order_mod        7
def order_learn      8

set pad            [5 5]
set n_border       [10 10]
set e_size         [0 0 23 23]

;            element          w   h  pad glu  sf  
variance     order_arm        0   0   0   0   0
variance     order_label      140  0   -5  0   0.2
variance     order_fader      0   0   -4  0   0
variance     order_learn      0   0   0   0   0
variance     order_bypass     -7  0   0   0   0
variance     order_hide       19  0   0   0   0   
variance     order_value      140  0   0   0   0.2
variance     order_mod        0   0   0   0   0

set min_width          [206]
set use_area           [1]
set f_align            [2]

; ----------------------------- OK, stop messing here ----------------------------
draw_envcp
EndLayout
#<
#>---------------------------------- THE MIXER ----------------------------------------


  ; --------------- User adjustable values. Edit without fear. -----------------

  set hide_input               [350] ; height below which input dropdown is hidden.
  set hide_pan_labels          [326] ; height below which pan labels are hidden. 
  set hide_volume_label        [160] ; meter area height below which volume label is hidden.

  ; ------- End of user adjustable values. From here on may be dragons. ---------


clear mcp.*
front                                    mcp.recarm mcp.volume.label
set mcp.size                             [83 370 0 220]
set mcp.fxbyp                            ?recarm [0 7 24 13 0 0 0 0] [5 7 24 13 0 0 0 0]
set mcp.fx                               + [0 13] [mcp.fxbyp mcp.fxbyp 24 20 0 0 0 0]
set mcp.fxin                             ?recarm [24 7 17 33 0 0 0 0] [0]
set mcp.io                               ?recarm [41 7 41 33 0 0 0 0] [35 7 41 33 0 0 0 0]
set mcp.recinput                         h<hide_input{x} [0] [0 41 83 20 0 0 0 0]
  set mcp.recinput.color                 ?recarm [184 184 184] [100 100 100] 
  set mcp.recinput.margin                [9 0 24 0 0]
set mcp.label                            + [0 mcp.recinput{h}] [0 38 83 22 0 0 0 0]
  set mcp.label.margin                   [4 0 4 0 0.5]
  set mcp.label.color                    ?recarm [255 255 255] [184 184 184]
set mcp.pan                              + [0 mcp.recinput{h}] trackpanmode>=4 trackpanmode==6 h<hide_pan_labels{x} [7 69 67 9 0 0 0 0] [7 75 67 9 0 0 0 0] [13 68 21 21 0 0 0 0] [30 68 21 21 0 0 0 0]
  set mcp.pan.fadermode                  gl_fader_swap
  set mcp.pan.color                      gl_pan_color
  set mcp.pan.label                      h<hide_pan_labels{x} [0] + [0 mcp.pan] trackpanmode>=4 trackpanmode==6 [23 -11 35 9 0 0 0 0] [6 24 35 10 0 0 0 0] [23 24 35 10 0 0 0 0]
  set mcp.pan.label.color                trackpanmode<=5 [80 80 80] [84 63 63]
  set mcp.pan.label.margin               [0 0 0 0 0.5]
set mcp.width                            trackpanmode>=4 trackpanmode==6 + [0 mcp.pan] [7 11 67 9 0 0 0 0] + [0 mcp.recinput{h}] [48 68 21 21 0 0 0 0] [0]
  set mcp.width.fadermode                gl_fader_swap
  set mcp.width.color                    gl_width_color
  set mcp.width.label                    h<hide_pan_labels{x} [0] + [0 mcp.width] trackpanmode>=4 trackpanmode==6 [23 11 35 9 0 0 0 0] [41 24 35 10 0 0 0 0] [0]
  set mcp.width.label.color              trackpanmode=5 [80 80 80] [63 84 63]
  set mcp.width.label.margin             [0 0 0 0 0.5]
set l_sec                                + mcp.pan.label{h}>0 [0 13] [0 0 0 13] \
                                         + +:-1:1 [0 0 0 137] [0 97 0 h] \
                                         +:-1:1 [0 0 0 mcp.recinput{h}] [0 mcp.recinput{h}]
set mcp.mute                             [58 l_sec 20 20 0 0 0 0]
set mcp.solo                             + [0 l_sec] [58 26 20 20 0 0 0 0]
set mcp.env                              l_sec{h}<140 [0] + [0 l_sec] [58 52 20 25 0 0 0 0]
set mcp.phase                            l_sec{h}<186 [0] + [0 l_sec] [60 82 16 18 0 0 0 0]
set mcp.volume.label                     l_sec{h}<hide_volume_label{x} [0 l_sec 54 2 0 0 0 0] [0 l_sec 54 17 0 0 0 0]
  set mcp.volume                         + [0 mcp.volume.label{h}] +:-1:1 [0 0 0 mcp.volume.label{h}] [29 l_sec 21 l_sec 0 0 0 0]
  set mcp.volume.label.color             mcp.volume.label{h}>2 [100 100 100] [38 38 38]
  set mcp.volume.label.margin            [0 4 0 0 0.5]
set mcp.recarm                           [50 322 22 26 0 1 0 1]
set mcp.recmon                           l_sec{h}<162 [0] [60 259 17 23 0 1 0 1]
set mcp.recmode                          l_sec{h}<110 [0] [60 282 17 37 0 1 0 1]
set mcp.meter                            + [0 mcp.volume.label{h} 0 l_sec] +:-1:1 [0 0 0 mcp.volume.label{h}] [3 l_sec 22 -2 0 0 0 0]
  set mcp.meter.vu.div                   [1 1]
  set mcp.meter.readout.color            [100 100 100 255 255 183 171 255]
  set mcp.meter.scale.color.lit.bottom   [255 255 255 255 0 168 99 255]
  set mcp.meter.scale.color.lit.top      [255 255 255 255 0 168 99 255]
  set mcp.meter.scale.color.unlit.bottom [100 100 100 255 38 38 38 255]
  set mcp.meter.scale.color.unlit.top    [100 100 100 255 38 38 38 255]
set mcp.extmixer.mode                    [0]
    set mcp.fxlist.font                  [2 16]
    set mcp.fxlist.margin                [4 0 4 0 0.5]
    set mcp.sendlist.font                [2 16] 
    set mcp.sendlist.margin              [4 0 4 0 0]
    set mcp.fxparm.font                  [2 28]
    set mcp.fxparm.margin                [2 0 4 0 0]
set mcp.trackidx                         [31 352 20 18 0 1 0 1]
  set mcp.trackidx.margin                [0 0 0 0 0.5]
  colorsmart                             mcp.trackidx.color 230 230 230 0
  set mcp.trackidx.font                  [1]
set mcp.folder                           folderstate<0 [75 352 7 18 0 1 0 1] [0 352 18 18 0 1 0 1] 

Layout "aa - Standard"

set mcp.label  .
  
EndLayout

Layout "ab --- Standard Sidebar" "sidebar"

make_sidebar 80 7 7 7 7

EndLayout

Layout "ba - Small" "small"


; --------------- User adjustable values. Edit without fear. -----------------

  set hide_input               [310] ; height below which input dropdown is hidden.
  set hide_pan_labels          [270] ; height below which pan labels are hidden. 
  set hide_volume_label        [160] ; meter area height below which volume label is hidden.

  ; ------- End of user adjustable values. From here on may be dragons. ---------


clear mcp.*
front                                    mcp.recarm mcp.volume.label mcp.width mcp.recinput
set mcp.size                             [69 288 0 100]
set mcp.fxbyp                            ?recarm [0 7 17 13 0 0 0 0] [5 7 19 13 0 0 0 0]
set mcp.fx                               + [0 13] [mcp.fxbyp mcp.fxbyp mcp.fxbyp 20 0 0 0 0]
set mcp.fxin                             ?recarm [17 7 17 33 0 0 0 0] [0]
set mcp.io                               ?recarm [34 7 34 33 0 0 0 0] [29 7 34 33 0 0 0 0]
set mcp.recinput                         h<hide_input{x} [0] [0 41 69 20 0 0 0 0]
  set mcp.recinput.color                 ?recarm [184 184 184] [100 100 100] 
  set mcp.recinput.margin                [5 0 20 0 0]
set mcp.label                            + [0 mcp.recinput{h}] [0 38 69 22 0 0 0 0]
  set mcp.label.margin                   [2 0 3 0 0.5]
  set mcp.label.color                    ?recarm [255 255 255] [184 184 184]
set mcp.pan                              + [0 mcp.recinput{h}] trackpanmode>=4 trackpanmode==6 h<hide_pan_labels{x} [7 67 53 7 0 0 0 0] [7 73 53 7 0 0 0 0] [11 66 17 17 0 0 0 0] [25 66 17 17 0 0 0 0]
  set mcp.pan.fadermode                  gl_fader_swap
  set mcp.pan.color                      gl_pan_color
  set mcp.pan.label                      h<hide_pan_labels{x} [0] + [0 mcp.pan] trackpanmode>=4 trackpanmode==6 [16 -10 35 9 0 0 0 0] [2 20 31 10 0 0 0 0] [18 20 31 10 0 0 0 0]
  set mcp.pan.label.color                trackpanmode<=5 [80 80 80] [84 63 63]
  set mcp.pan.label.margin               [0 0 0 0 0.5]
set mcp.width                            trackpanmode>=4 trackpanmode==6 + [0 mcp.pan] [7 8 53 7 0 0 0 0] + [0 mcp.recinput{h}] [40 66 17 17 0 0 0 0] [0]
  set mcp.width.fadermode                gl_fader_swap
  set mcp.width.color                    gl_width_color
  set mcp.width.label                    h<hide_pan_labels{x} [0] + [0 mcp.width] trackpanmode>=4 trackpanmode==6 [16 9 35 9 0 0 0 0] [33 20 31 10 0 0 0 0] [0]
  set mcp.width.label.color              trackpanmode=5 [80 80 80] [63 84 63]
  set mcp.width.label.margin             [0 0 0 0 0.5]
set l_sec                                + mcp.pan.label{h}>0 [0 13] [0 0 0 13] \
                                         + +:-1:1 [0 0 0 129] [0 89 0 h] \
                                         +:-1:1 [0 0 0 mcp.recinput{h}] [0 mcp.recinput{h}]                      
set mcp.mute                             [47 l_sec 16 18 0 0 0 0]
set mcp.solo                             + [0 l_sec] [47 20 16 18 0 0 0 0]
set mcp.env                              l_sec{h}<100 [0] + [0 l_sec] [47 41 16 22 0 0 0 0]
set mcp.phase                            l_sec{h}<159 [0] + [0 l_sec] [48 65 14 16 0 0 0 0]
set mcp.volume.label                     l_sec{h}<hide_volume_label{x} [0 l_sec 42 2 0 0 0 0] [0 l_sec 42 17 0 0 0 0]
  set mcp.volume                         + [0 mcp.volume.label{h}] +:-1:1 [0 0 0 mcp.volume.label{h}] [21 l_sec 17 l_sec 0 0 0 0]
  set mcp.volume.label.color             mcp.volume.label{h}>2 [100 100 100] [38 38 38]
  set mcp.volume.label.margin            [0 4 0 0 0.5]
set mcp.recarm                           [38 244 18 22 0 1 0 1]
set mcp.recmon                           l_sec{h}<140 [0] [47 186 16 21 0 1 0 1]
set mcp.recmode                          l_sec{h}<119 [0] [47 207 16 35 0 1 0 1]
set mcp.meter                            + [0 mcp.volume.label{h} 0 l_sec] +:-1:1 [0 0 0 mcp.volume.label{h}] [2 l_sec 17 -2 0 0 0 0]
  set mcp.meter.vu.div                   [1 1]
  set mcp.meter.readout.color            [100 100 100 255 255 183 171 255]
  set mcp.meter.scale.color.lit.bottom   [255 255 255 255 0 168 99 255]
  set mcp.meter.scale.color.lit.top      [255 255 255 255 0 168 99 255]
  set mcp.meter.scale.color.unlit.bottom [100 100 100 255 38 38 38 255]
  set mcp.meter.scale.color.unlit.top    [100 100 100 255 38 38 38 255]
set mcp.extmixer.mode                    [0]
    set mcp.fxlist.font                  [2 16]
    set mcp.fxlist.margin                [4 0 4 0 0.5]
    set mcp.sendlist.font                [2 16] 
    set mcp.sendlist.margin              [4 0 4 0 0]
    set mcp.fxparm.font                  [2 28]
    set mcp.fxparm.margin                [2 0 4 0 0]  
set mcp.trackidx                         [24 270 20 18 0 1 0 1]
  colorsmart                             mcp.trackidx.color 230 230 230 0
set mcp.folder                           folderstate<0 [62 270 7 18 0 1 0 1] [0 270 18 18 0 1 0 1] 


Layout "bb --- Small Sidebar" "small/sidebar"

set mcp.mute .
make_sidebar 66 7 7 7 7

EndLayout
EndLayout

Layout "bc --- Small Full Meter" "small_meter"

; --------------- User adjustable values. Edit without fear. -----------------

  set hide_input            [310] ; height below which input dropdown is hidden.
  set hide_pan_labels       [270] ; height below which pan labels are hidden. 

  ; ------- End of user adjustable values. From here on may be dragons. ---------


clear mcp.*
front                                    mcp.recarm mcp.volume.label mcp.width mcp.recinput
set mcp.size                             [69 288 0 100]
set mcp.fxbyp                            + - ?recarm [0 91 17 13 0 1 0 1] [5 91 19 13 0 1 0 1] h<hide_input{x} [0 0] [0 20] h<hide_pan_labels{x} [0 12] [0 0]
set mcp.fx                               + [0 13] [mcp.fxbyp mcp.fxbyp mcp.fxbyp 20 0 1 0 1]
set mcp.fxin                             ?recarm [17 mcp.fxbyp 17 33 0 1 0 1] [0]
set mcp.io                               ?recarm [34 mcp.fxbyp 34 33 0 1 0 1] [29 mcp.fxbyp 34 33 0 1 0 1]
set mcp.recinput                         h<hide_input{x} [0] [0 107 69 20 0 1 0 1]
  set mcp.recinput.color                 ?recarm [184 184 184] [100 100 100] 
  set mcp.recinput.margin                [5 0 20 0 0]
set mcp.label                            + + [0 mcp.fxbyp] [0 31 69 22 0 1 0 1] h<hide_input{x} [0 0] [0 20]
  set mcp.label.margin                   [2 0 3 0 0.5]
  set mcp.label.color                    ?recarm [255 255 255] [184 184 184]
set mcp.pan                              + [0 mcp.label] + + [0 mcp.recinput{h}] trackpanmode>=4 trackpanmode==6 h<hide_pan_labels{x} [7 9 53 7 0 1 0 1] [7 15 53 7 0 1 0 1] [11 8 17 17 0 1 0 1] [25 8 17 17 0 1 0 1] h<hide_input{x} [0 20] [0 0]
  set mcp.pan.fadermode                  gl_fader_swap
  set mcp.pan.color                      gl_pan_color
  set mcp.pan.label                      h<hide_pan_labels{x} [0] + [0 mcp.pan] trackpanmode>=4 trackpanmode==6 [16 -10 35 9 0 1 0 1] [2 20 31 10 0 1 0 1] [18 20 31 10 0 1 0 1]
  set mcp.pan.label.color                trackpanmode<=5 [80 80 80] [84 63 63]
  set mcp.pan.label.margin               [0 0 0 0 0.5]
set mcp.width                            trackpanmode>=4 trackpanmode==6 + [0 mcp.pan] [7 8 53 7 0 1 0 1] [40 mcp.pan 17 17 0 1 0 1] [0] 
  set mcp.width.fadermode                gl_fader_swap
  set mcp.width.color                    gl_width_color
  set mcp.width.label                    h<hide_pan_labels{x} [0] + [0 mcp.width] trackpanmode>=4 trackpanmode==6 [16 9 35 9 0 1 0 1] [33 20 31 10 0 1 0 1] [0]
  set mcp.width.label.color              trackpanmode=5 [80 80 80] [63 84 63]
  set mcp.width.label.margin             [0 0 0 0 0.5]
set l_sec                                [0 186]                                            
set mcp.mute                             [5 l_sec 16 18 0 1 0 1]
set mcp.solo                             + [0 l_sec] [5 20 16 18 0 1 0 1]
set mcp.env                              + [0 l_sec] [26 0 16 22 0 1 0 1]
set mcp.phase                            + [0 l_sec] [27 24 14 16 0 1 0 1]
set mcp.volume                           [10 244 18 18 0 1 0 1]
  set mcp.volume.label                   [1 228 43 11 0 1 0 1]
  set mcp.volume.label.color             [80 80 80]
  set mcp.volume.label.margin            [0 0 0 0 0.5]
set mcp.recarm                           [38 244 18 22 0 1 0 1]
set mcp.recmon                           [47 186 16 21 0 1 0 1]
set mcp.recmode                          [47 207 16 35 0 1 0 1]
set mcp.meter                            + - [2 0 64 85 0 0 0 1] [0 0 0 mcp.recinput] h<hide_pan_labels{x} [0 0 0 12] [0]
  set mcp.meter.vu.div                   [1 1]
  set mcp.meter.readout.color            [100 100 100 255 255 183 171 255]
  set mcp.meter.scale.color.lit.bottom   [255 255 255 255 0 168 99 255]
  set mcp.meter.scale.color.lit.top      [255 255 255 255 0 168 99 255]
  set mcp.meter.scale.color.unlit.bottom [100 100 100 255 38 38 38 255]
  set mcp.meter.scale.color.unlit.top    [100 100 100 255 38 38 38 255]
set mcp.trackidx                         [24 270 20 18 0 1 0 1]
  colorsmart                             mcp.trackidx.color 230 230 230 0
set mcp.folder                           folderstate<0 [62 270 7 18 0 1 0 1] [0 270 18 18 0 1 0 1] 
set mcp.extmixer.mode                    [1]
  mcp.extmixer.position                  [0]

EndLayout

Layout "ca - Large" "large"


; --------------- User adjustable values. Edit without fear. -----------------

  set hide_input            [350] ; height below which input dropdown is hidden.
  set hide_pan_labels       [326] ; height below which pan labels are hidden. 
  set hide_volume_label     [160] ; meter area height below which volume label is hidden.

  ; ------- End of user adjustable values. From here on may be dragons. ---------

clear mcp.*
front                                    mcp.recarm mcp.volume.label mcp.recinput
set mcp.size                             [95 390 0 100]
set mcp.fxbyp                            ?recarm [7 9 24 13] [8 9 29 13]
set mcp.fx                               + [0 mcp.fxbyp{h}] [mcp.fxbyp mcp.fxbyp mcp.fxbyp 20]
set mcp.fxin                             ?recarm [30 9 17 33] [0]
set mcp.io                               ?recarm [46 9 41 33] [45 9 41 33]
set mcp.recinput                         h<hide_input{x} [0] [0 44 95 16] 
  set mcp.recinput.color                 ?recarm [184 184 184] [100 100 100] 
  set mcp.recinput.margin                [10 0 25 0 0]
set mcp.label                            h<hide_input{x} [0 38 95 22] [0 58 95 22]
  set mcp.label.margin                   [2 0 3 0 0.5]
  set mcp.label.color                    ?recarm [255 255 255] [184 184 184]
set pan_sec                              + + [0 mcp.label] [0 mcp.label{h} mcp.size{x}]] h<hide_pan_labels{x} [0 0 0 42] [0 0 0 55]  
set mcp.pan                              + [pan_sec pan_sec] trackpanmode>=4 trackpanmode==6 pan_sec{h}{x}<55 [6 10 82 9] [6 17 82 9] [16 9 23 23] [35 9 23 23]
  set mcp.pan.fadermode                  gl_fader_swap
  set mcp.pan.label                      pan_sec{h}{x}<55 [0] + [mcp.pan mcp.pan] trackpanmode==6 [23 -13 36 10] [-6 28 35 10]
  set mcp.pan.label.margin               [0 0 0 0 0.5]
  set mcp.pan.color                      gl_pan_color
  set mcp.pan.label.color                trackpanmode<=5 [80 80 80] [84 63 63]
set mcp.width                            + [pan_sec pan_sec] trackpanmode>=4 trackpanmode==6 pan_sec{h}{x}<55 [6 23 82 9] [6 28 82 9] [55 9 23 23] [0]  
  set mcp.width.fadermode                gl_fader_swap
  set mcp.width.label                    pan_sec{h}{x}<55 [0] trackpanmode>=4 + [mcp.width mcp.width] trackpanmode==6 [23 11 36 10] [-6 28 35 10] [0]
  set mcp.width.label.margin             [0 0 0 0 0.5]
  set mcp.width.color                    gl_width_color
  set mcp.width.label.color              trackpanmode=5 [80 80 80] [63 84 63]
set l_sec                                + [0 pan_sec 0 -27] - [0 pan_sec{h} 89 h] + [0 0 0 pan_sec{h}] [0 0 0 pan_sec{y}]  ; + [0 pan_sec] - [0 pan_sec{h} 89 h] [0 0 0 129]  
set mcp.mute                             [65 l_sec 23 23 0 0 0 0]
set mcp.solo                             + [0 l_sec] [65 29 23 23 0 0 0 0]
set mcp.env                              l_sec{h}<190 [0] + [0 l_sec] [65 58 23 27 0 0 0 0]
set mcp.phase                            l_sec{h}<216 [0] + [0 l_sec] [68 91 17 19 0 0 0 0]
set mcp.volume.label                     l_sec{h}<hide_volume_label{x} [0 l_sec 59 2 0 0 0 0] [0 l_sec 59 17 0 0 0 0]
  set mcp.volume                         + [0 mcp.volume.label{h}] +:-1:1 [0 0 0 mcp.volume.label{h}] [32 l_sec 21 l_sec 0 0 0 0]
  set mcp.volume.label.color             mcp.volume.label{h}>2 [100 100 100] [38 38 38]z
  set mcp.volume.label.margin            [0 4 0 0 0.5]
set mcp.recarm                           [56 341 23 27 0 1 0 1]
set mcp.recmon                           l_sec{h}<158 [0] [65 262 23 31 0 1 0 1]
set mcp.recmode                          l_sec{h}<126 [0] [65 293 23 45 0 1 0 1]
set mcp.meter                            + [0 mcp.volume.label{h} 0 l_sec] +:-1:1 [0 0 0 mcp.volume.label{h}] [3 l_sec 25 -2 0 0 0 0]
  set mcp.meter.vu.div                   [2 1]
  set mcp.meter.readout.color            [100 100 100 255 255 183 171 255]
  set mcp.meter.scale.color.lit.bottom   [255 255 255 255 0 168 99 255]
  set mcp.meter.scale.color.lit.top      [255 255 255 255 0 168 99 255]
  set mcp.meter.scale.color.unlit.bottom [100 100 100 255 38 38 38 255]
  set mcp.meter.scale.color.unlit.top    [100 100 100 255 38 38 38 255]
set mcp.extmixer.mode                    [0]
    set mcp.fxlist.font                  [6 18]
    set mcp.fxlist.margin                [4 0 4 0 0.5]
    set mcp.sendlist.font                [6 18] 
    set mcp.sendlist.margin              [4 0 4 0 0]
    set mcp.fxparm.font                  [6 31]
    set mcp.fxparm.margin                [2 0 4 0 0]  
set mcp.trackidx                         [36 372 20 18 0 1 0 1]
  colorsmart                             mcp.trackidx.color 230 230 230 0
set mcp.folder                           folderstate<0 [88 372 7 18 0 1 0 1] [0 372 18 18 0 1 0 1] 


Layout "cb --- Large Sidebar" "large/sidebar"

set mcp.mute .
make_sidebar 90 7 7 7 7

EndLayout
EndLayout

Layout "da - Session Mixer" "session"


; --------------- User adjustable values. Edit without fear. -----------------

  set no_room            [420] ; height below which it stops making sense and all bets are off...

; ------- End of user adjustable values. From here on may be dragons. ---------


clear mcp.*
front                                    mcp.solo mcp.mute mcp.phase mcp.width
set mcp.size                             [87 501 0 340]
set mcp.fxbyp                            [7 7 24 13 0 0 0 0]
set mcp.fx                               + [0 13] [mcp.fxbyp mcp.fxbyp mcp.fxbyp 20 0 0 0 0]
set mcp.fxin                             [22 149 43 17]
set mcp.io                               [38 7 41 33]
set mcp.env                              [0 45 86 22]
set mcp.pan                              trackpanmode>=4 trackpanmode==6 [4 80 78 16] [10 79 25 25] [31 79 25 25]
  set mcp.pan.fadermode                  gl_fader_swap
  set mcp.pan.color                      gl_pan_color
  set mcp.pan.label                      + [mcp.pan mcp.pan] trackpanmode==6 [24 -13 31 10] [-4 31 31 10]
  set mcp.pan.label.color                trackpanmode<=5 [80 80 80] [84 63 63]
  set mcp.pan.label.margin               [0 0 0 0 0.5]
set mcp.width                            trackpanmode>=4 trackpanmode==6 + mcp.pan [0 14 0 0] [51 79 25 25] [0]
  set mcp.width.fadermode                gl_fader_swap
  set mcp.width.color                    gl_width_color
  set mcp.width.label                    + [mcp.width mcp.width] trackpanmode>=4 trackpanmode==6 [24 18 31 10] [-4 31 31 10] [0]
  set mcp.width.label.color              trackpanmode=5 [80 80 80] [63 84 63]
  set mcp.width.label.margin             [0 0 0 0 0.5]
set mcp.recinput                         [0 127 86 17]
  set mcp.recinput.color                 ?recarm [184 184 184] [150 150 150] 
  set mcp.recinput.margin                [5 0 20 0 0]
set mcp.recarm                           [52 196 30 27]
set mcp.recmon                           [4 171 78 24]
set mcp.recmode                          [4 193 53 17]  
set mcp.label                            h<no_room{x} [0 218 86 18] [0 218 86 32]
  set mcp.label.margin                   [2 0 3 0 0.5 0]
  set mcp.label.color                    ?recarm [255 255 255] [184 184 184]
set mcp.mute                             + + [0 mcp.label{y}] [0 mcp.label{h}] [10 3 26 26]
set mcp.solo                             + + [0 mcp.label{y}] [0 mcp.label{h}] [10 37 26 26]
set mcp.phase                            + + [0 mcp.label{y}] [0 mcp.label{h}] [53 2 16 18]
set mcp.volume                           h<no_room{x} + + [0 mcp.label{y}] [0 mcp.label{h}] [49 37 25 25] [49 284 25 188 0 0 0 1]
  set mcp.volume.label                   + + [0 mcp.label{y}] [0 mcp.label{h}] [40 22 43 10]
  set mcp.volume.label.color             mcp.volume.label{h}>2 [100 100 100] [38 38 38]
  set mcp.volume.label.margin            [0 0 0 0 0.5]
set mcp.meter                            h<no_room{x} + + [0 mcp.label{y}] [0 mcp.label{h}] [4 71 78 172 0 0 0 1] [10 321 26 151 0 0 0 1]
  set mcp.meter.vu.div                   [1 1]
  set mcp.meter.readout.color            [100 100 100 255 255 183 171 255]
  set mcp.meter.scale.color.lit.bottom   [255 255 255 255 0 168 99 255]
  set mcp.meter.scale.color.lit.top      [255 255 255 255 0 168 99 255]
  set mcp.meter.scale.color.unlit.bottom [100 100 100 255 38 38 38 255]
  set mcp.meter.scale.color.unlit.top    [100 100 100 255 38 38 38 255]
set mcp.extmixer.mode                    [0]
  set mcp.fxlist.font                    [2 16]
  set mcp.fxlist.margin                  [4 0 4 0 0.5]
  set mcp.sendlist.font                  [2 16] 
  set mcp.sendlist.margin                [4 0 4 0 0]
  set mcp.fxparm.font                    [2 28]
  set mcp.fxparm.margin                  [2 0 4 0 0]  
set mcp.trackidx                         [33 483 20 18 0 1 0 1]
  colorsmart                             mcp.trackidx.color 230 230 230 0
set mcp.folder                           folderstate<0 [79 483 7 18 0 1 0 1] [0 483 18 18 0 1 0 1] 

Layout "db --- Session Mixer Black Fader" "session/black"
set mcp.volume .
  set mcp.volume.color                   [255 255 255]
EndLayout

Layout "dc --- Session Mixer Red Fader" "session/red"
set mcp.volume .
EndLayout

Layout "dd --- Session Mixer Blue Fader" "session/blue"
set mcp.volume .
EndLayout
EndLayout

Layout "ea - Strip" "strip"

macro variance loc v1 v2 v3
  set e##loc##_variance        [loc v1 v2 v3]
endmacro

macro strip_flow eA eB eC 
  set eB                        + [0 0 e_size{w} e_size{h}] [0 0 eB##_variance{1} eB##_variance{2}]                          ; add the variance onto the base element size
  set eB                        - + - [11 eA] / [eB{w}] 2 [0 0 eB eB] + + [0 eB{h}] [0 pad{x}] [0 eB##_variance{3}]          ; put eB above eA, with pad and pad variance, and center it.
  set eB                        eB{y}<n_border{0} [0] .                                                                      ; no room due to meter? die. Maybe add pad.
endmacro

macro draw_strip
set mcp.size                    [24 288]
set e0                          - [0 h] [0 18]                                                                       ; start at the bottom, less the folder area
set e##order_width##_variance        trackpanmode<4 * [1 -1 -1 -1] [order_width e_size{w} e_size{h} pad{0}] .        ; kill the width knob
set alle_h                                 + + + + + + + + + + + + + + + + + * 16 [e_size{h}] * 16 [pad] \
                                           + e1_variance{2} e1_variance{3} \
										   + e2_variance{2} e2_variance{3} \
										   + e3_variance{2} e3_variance{3} \
										   + e4_variance{2} e4_variance{3} \
										   + e5_variance{2} e5_variance{3} \
										   + e6_variance{2} e6_variance{3} \
										   + e7_variance{2} e7_variance{3} \
										   + e8_variance{2} e8_variance{3} \
										   + e9_variance{2} e9_variance{3} \
										   + e10_variance{2} e10_variance{3} \
										   + e11_variance{2} e11_variance{3} \
										   + e12_variance{2} e12_variance{3} \
										   + e13_variance{2} e13_variance{3} \
										   + e14_variance{2} e14_variance{3} \
										   + e15_variance{2} e15_variance{3} \
										   + e16_variance{2} e16_variance{3} \                                      ; the height needed to fit all the elements	                                        									   
set h_meter                                - - h alle_h{0} 18                                                      
set mcp.meter                              + [0 0 mcp.size{0}] [0 0 0 h_meter{0}]
  strip_flow e0 e1 e2
  strip_flow e1 e2 e3
  strip_flow e2 e3 e4
  strip_flow e3 e4 e5
  strip_flow e4 e5 e6
  strip_flow e5 e6 e7
  strip_flow e6 e7 e8
  strip_flow e7 e8 e9
  strip_flow e8 e9 e10
  strip_flow e9 e10 e11
  strip_flow e10 e11 e12
  strip_flow e11 e12 e13
  strip_flow e12 e13 e14
  strip_flow e13 e14 e15  
  strip_flow e14 e15 e16
  strip_flow e15 e16  
  set mcp.recarm                         e##order_recarm
  set mcp.label                          e##order_label
  set mcp.volume                         e##order_volume
  set mcp.io                             e##order_io        
  set mcp.pan                            e##order_pan
  set mcp.width                          e##order_width
  set mcp.mute                           e##order_mute
  set mcp.solo                           e##order_solo
  set mcp.fx                             e##order_fx
  set mcp.fxbyp                          e##order_fxbyp
  set mcp.phase                          e##order_phase
  set mcp.env                            e##order_env
  set mcp.recmode                        e##order_recmode
  set mcp.recmon                         e##order_recmon
  set mcp.fxin                           e##order_fxin
  set mcp.recinput                       e##order_recinput 
front                                    mcp.trackidx
set mcp.label.margin                     [0 4 0 4 0.5]
set mcp.recinput.color                   ?recarm [255 255 255] [210 210 210]
  set mcp.recinput.margin                [0 20 0 4 0.5 0.5]
set mcp.pan.label                        [0]
  set mcp.pan.fadermode                  [1]
set mcp.width.label                      [0]
  set mcp.width.fadermode                [1]
set mcp.volume.label                     [0]
set mcp.extmixer.mode                    [1]
  mcp.extmixer.position                  [0]
set mcp.trackidx                         folderstate<0 [0 270 19 18 0 1 0 1] [0 270 23 18 0 1 0 1]
  colorsmart                             mcp.trackidx.color 230 230 230 0
  set mcp.trackidx.margin                [0 0 0 0 0.5]
set mcp.folder                           folderstate<0 [19 270 7 18 0 1 0 1] [0 270 18 18 0 1 0 1] 
endmacro
  
; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-16) starting at the bottom
def order_recarm     2
def order_label      7
def order_volume     1
def order_io         8
def order_pan        14
def order_width      15
def order_mute       4
def order_solo       3
def order_fx         5
def order_fxbyp      6
def order_phase      16
def order_env        9
def order_recmode    10
def order_recmon     11
def order_fxin       12
def order_recinput   13

set pad              [4]                    ; the padding between elements
set n_border         [8]                    ; nominal border top and bottom
set e_size           [0 0 19 19]            ; the base element size [0 0 height width]

; The 'variance' settings below work as follows: - all elements take on the base element size unless varied here
;   - the first number is the variance in width 
;   - the second number is the variance in height 
;   - the third number is the variance in padding (so make it the negative of the pad number if you want the gap gone)

;            element          w   h  pad  
variance     order_recarm     0   0   0        
variance     order_label      6   100 -2          
variance     order_volume     0   160 -1           
variance     order_io         0   -19 -4            
variance     order_pan        0   -19 -4 
variance     order_width      0   -19 -4 
variance     order_mute       0   0   0               
variance     order_solo       0   0   0             
variance     order_fx         0   1   -2              
variance     order_fxbyp      0   -7  -4         
variance     order_phase      0   -19 -4          
variance     order_env        0   -19 -4           
variance     order_recmode    0   -19 -4         
variance     order_recmon     0   -19 -4          
variance     order_fxin       0   -19 -4            
variance     order_recinput   0   -19 -4         

; ----------------------------- OK, stop messing here ----------------------------

draw_strip  
EndLayout

Layout "eb --- Strip Full Controls" "strip"
  
; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-16) starting at the bottom
def order_recarm     1
def order_label      16
def order_volume     14
def order_io         15
def order_pan        5
def order_width      4
def order_mute       7
def order_solo       6
def order_fx         8
def order_fxbyp      9
def order_phase      10
def order_env        11
def order_recmode    2
def order_recmon     3
def order_fxin       12
def order_recinput   13

set pad              [4]                    ; the padding between elements
set n_border         [8]                    ; nominal border top and bottom
set e_size           [0 0 19 19]            ; the base element size [0 0 height width]

; The 'variance' settings below work as follows: - all elements take on the base element size unless varied here
;   - the first number is the variance in width 
;   - the second number is the variance in height 
;   - the third number is the variance in padding (so make it the negative of the pad number if you want the gap gone)

;            element          w   h  pad  
variance     order_recarm     0   0   0        
variance     order_label      6   100 -4          
variance     order_volume     0   0   0           
variance     order_io         4   2   -4            
variance     order_pan        0   0   0 
variance     order_width      0   0   0 
variance     order_mute       0   0   0               
variance     order_solo       0   0   0             
variance     order_fx         0   1   -2              
variance     order_fxbyp      0   -7  -4         
variance     order_phase      -4  0   -2          
variance     order_env        0   6   -4           
variance     order_recmode    0   16  -4         
variance     order_recmon     0   4   -4          
variance     order_fxin       0   8   -2            
variance     order_recinput   0   50   -4         

; ----------------------------- OK, stop messing here ----------------------------

draw_strip  
EndLayout

Layout "ec --- Strip Live Recording" "strip"
  
; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-16) starting at the bottom
def order_recarm     1
def order_label      9
def order_volume     7
def order_io         8
def order_pan        13
def order_width      12
def order_mute       14
def order_solo       6
def order_fx         15
def order_fxbyp      16
def order_phase      10
def order_env        11
def order_recmode    2
def order_recmon     3
def order_fxin       4
def order_recinput   5

set pad              [4]                    ; the padding between elements
set n_border         [8]                    ; nominal border top and bottom
set e_size           [0 0 19 19]            ; the base element size [0 0 height width]

; The 'variance' settings below work as follows: - all elements take on the base element size unless varied here
;   - the first number is the variance in width 
;   - the second number is the variance in height 
;   - the third number is the variance in padding (so make it the negative of the pad number if you want the gap gone)

;            element          w   h  pad  
variance     order_recarm     0   0   0        
variance     order_label      6   100 -4          
variance     order_volume     0   0   0           
variance     order_io         4   2   -4            
variance     order_pan        -19 -19 -4  
variance     order_width      -19 -19 -4  
variance     order_mute       -19 -19 -4               
variance     order_solo       0   0   0             
variance     order_fx         -19 -19 -4               
variance     order_fxbyp      -19 -19 -4          
variance     order_phase      -19 -19 -4          
variance     order_env        -19 -19 -4            
variance     order_recmode    0   16  -4         
variance     order_recmon     0   4   -4          
variance     order_fxin       0   8   -2            
variance     order_recinput   0   80   -4         

; ----------------------------- OK, stop messing here ----------------------------

draw_strip
set mcp.size                    [. . . 440]  
EndLayout

Layout "ed --- Strip Meter Bridge" "strip"
  
; ---------------------------- USER : mess with these:----------------------------

; order of controls (1-16) starting at the bottom
def order_recarm     1
def order_label      3
def order_volume     2
def order_io         8
def order_pan        14
def order_width      15
def order_mute       4
def order_solo       7
def order_fx         5
def order_fxbyp      6
def order_phase      16
def order_env        9
def order_recmode    10
def order_recmon     11
def order_fxin       12
def order_recinput   13

set pad              [4]                    ; the padding between elements
set n_border         [8]                    ; nominal border top and bottom
set e_size           [0 0 19 19]            ; the base element size [0 0 height width]

; The 'variance' settings below work as follows: - all elements take on the base element size unless varied here
;   - the first number is the variance in width 
;   - the second number is the variance in height 
;   - the third number is the variance in padding (so make it the negative of the pad number if you want the gap gone)

;            element          w   h  pad  
variance     order_recarm     0   0   0        
variance     order_label      6   100 -4          
variance     order_volume     0   0   0           
variance     order_io         0   -19 -4            
variance     order_pan        0   -19 -4 
variance     order_width      0   -19 -4 
variance     order_mute       0   -19 -4               
variance     order_solo       0   -19 -4             
variance     order_fx         0   -19 -4              
variance     order_fxbyp      0   -19 -4        
variance     order_phase      0   -19 -4          
variance     order_env        0   -19 -4           
variance     order_recmode    0   -19 -4         
variance     order_recmon     0   -19 -4          
variance     order_fxin       0   -19 -4            
variance     order_recinput   0   -19 -4         

; ----------------------------- OK, stop messing here ----------------------------

draw_strip  
EndLayout

Layout "ee --- Strip Just the track name" "strip"
  
; ---------------------------- USER : mess with these:----------------------------
; -------------------- WARNING : this layout contains a hack ---------------------

; order of controls (1-16) starting at the bottom
def order_recarm     3
def order_label      1
def order_volume     2
def order_io         8
def order_pan        14
def order_width      15
def order_mute       4
def order_solo       7
def order_fx         5
def order_fxbyp      6
def order_phase      16
def order_env        9
def order_recmode    10
def order_recmon     11
def order_fxin       12
def order_recinput   13

set pad              [4]                    ; the padding between elements
set n_border         [8]                    ; nominal border top and bottom
set e_size           [0 0 19 19]            ; the base element size [0 0 height width]

; The 'variance' settings below work as follows: - all elements take on the base element size unless varied here
;   - the first number is the variance in width 
;   - the second number is the variance in height 
;   - the third number is the variance in padding (so make it the negative of the pad number if you want the gap gone)

;            element          w   h  pad  
variance     order_recarm     0   -19 -4        
variance     order_label      6   200 3          
variance     order_volume     0   -19 -4           
variance     order_io         0   -19 -4            
variance     order_pan        0   -19 -4 
variance     order_width      0   -19 -4 
variance     order_mute       0   -19 -4               
variance     order_solo       0   -19 -4             
variance     order_fx         0   -19 -4              
variance     order_fxbyp      0   -19 -4        
variance     order_phase      0   -19 -4          
variance     order_env        0   -19 -4           
variance     order_recmode    0   -19 -4         
variance     order_recmon     0   -19 -4          
variance     order_fxin       0   -19 -4            
variance     order_recinput   0   -19 -4         

; ----------------------------- OK, stop messing here ----------------------------

draw_strip 
; ---------------------------- HACK : remove the meter ---------------------------
set mcp.meter [0]
; --------------------------------- HACK : done ----------------------------------
 
EndLayout

#<
#>--------------------------------- MASTER MIXER --------------------------------------

clear master.mcp.*

  ; --------------- User adjustable values. Edit without fear. -----------------

  set hide_input               [350] ; height below which input dropdown is hidden.
  set hide_pan_labels          [326] ; height below which pan labels are hidden. 
  set hide_volume_label        [160] ; meter area height below which volume label is hidden.

  ; ------- End of user adjustable values. From here on may be dragons. ---------

front                master.mcp.menubutton
set master.mcp.size         [125 370 0 240]

set master.mcp.pan                              + [0 mcp.recinput{h}] trackpanmode>=4 trackpanmode==6 h<hide_pan_labels{x} [7 69 110 9 0 0 0 0] [7 75 110 9 0 0 0 0] [34 68 21 21 0 0 0 0] [52 68 21 21 0 0 0 0]
  set master.mcp.pan.fadermode                  gl_fader_swap
  set master.mcp.pan.color                      gl_pan_color
  set master.mcp.pan.label                      h<hide_pan_labels{x} [0] + [0 master.mcp.pan] trackpanmode>=4 trackpanmode==6 [7 -11 110 9 0 0 0 0] [27 24 35 10 0 0 0 0] [45 24 35 10 0 0 0 0]
  set master.mcp.pan.label.color                trackpanmode<=5 [80 80 80] [84 63 63]
  set master.mcp.pan.label.margin               [0 0 0 0 0.5]
set master.mcp.width                            trackpanmode>=4 trackpanmode==6 + [0 master.mcp.pan] [7 11 110 9 0 0 0 0] + [0 mcp.recinput{h}] [69 68 21 21 0 0 0 0] [0]
  set master.mcp.width.fadermode                gl_fader_swap
  set master.mcp.width.color                    gl_width_color
  set master.mcp.width.label                    h<hide_pan_labels{x} [0] + [0 master.mcp.width] trackpanmode>=4 trackpanmode==6 [7 11 110 9 0 0 0 0] [62 24 35 10 0 0 0 0] [0]
  set master.mcp.width.label.color              trackpanmode=5 [80 80 80] [63 84 63]
  set master.mcp.width.label.margin             [0 0 0 0 0.5]   
set l_sec                                       + mcp.pan.label{h}>0 [0 13] [0 0 0 13] \
                                                  + +:-1:1 [0 0 0 137] [0 97 0 h] \
                                                    +:-1:1 [0 0 0 mcp.recinput{h}] [0 mcp.recinput{h}]                
set master.mcp.volume.label                     l_sec{h}<hide_volume_label{x} [6 l_sec 90 2 0 0 0 0] [6 l_sec 90 17 0 0 0 0]
  set master.mcp.volume                         + [0 master.mcp.volume.label{h}] +:-1:1 [0 0 0 master.mcp.volume.label{h}] [71 l_sec 21 l_sec 0 0 0 0]
  set master.mcp.volume.label.color             master.mcp.volume.label{h}>2 [100 100 100] [38 38 38]
  set master.mcp.volume.label.margin            [0 4 0 0 0.5]    
set master.mcp.meter                            + [0 master.mcp.volume.label{h} 0 l_sec] +:-1:1 [0 0 0 master.mcp.volume.label{h}] [10 l_sec 59 -2 0 0 0 0] ; [3 153 66 187 0 0 0 1]
  set master.mcp.meter.vu.div                   [6]
  set master.mcp.meter.vu.rmsdiv                [6]
  set master.mcp.meter.readout.color            [100 100 100 255 255 183 171 255]
  set master.mcp.meter.rmsreadout.color         [100 100 100 255 255 183 171 255]
  set master.mcp.meter.scale.color.lit.bottom   [255 255 255 255 0 168 99 255]
  set master.mcp.meter.scale.color.lit.top      [255 255 255 255 0 168 99 255]
  set master.mcp.meter.scale.color.unlit.bottom [100 100 100 255 38 38 38 255]
  set master.mcp.meter.scale.color.unlit.top    [100 100 100 255 38 38 38 255]
set master.mcp.label                            !master_lineup{x} [0 38 125 22 0 0 0 0] + [0 0 0 mcp.recinput{h}] [0 38 125 22 0 0 0 0]    
  set master.mcp.label.color                    [184 184 184] 
set master.mcp.io                               mcp.io
set master.mcp.mono                             + [mcp.io mcp.io] [47 0 37 31]  
set master.mcp.fx                               mcp.fx 
set master.mcp.fxbyp                            mcp.fxbyp
set master.mcp.mute                             [100 l_sec 20 20 0 0 0 0]
set master.mcp.solo                             + [0 l_sec] [100 26 20 20 0 0 0 0]
set master.mcp.env                              l_sec{h}<140 [0] + [0 l_sec] [100 52 20 25 0 0 0 0]
set master.mcp.menubutton                       [92 322 22 26 0 1 0 1]
set master.mcp.extmixer.mode                    [0]
  set master.mcp.fxlist.font                    [2 16]
  set master.mcp.fxlist.margin                  [4 0 4 0 0.5]
  set master.mcp.sendlist.font                  [2 16]
  set master.mcp.sendlist.margin                [4 0 4 0 0]
  set master.mcp.fxparm.font                    [2 28]
  set master.mcp.fxparm.margin                  [2 0 4 0 0]

Layout "aa - Standard"

set master.mcp.label  .  
  
EndLayout  
  
Layout "ba - Small" "small"


; --------------- User adjustable values. Edit without fear. -----------------

  set hide_input               [310] ; height below which input dropdown is hidden.
  set hide_pan_labels          [270] ; height below which pan labels are hidden. 
  set hide_volume_label        [160] ; meter area height below which volume label is hidden.

  ; ------- End of user adjustable values. From here on may be dragons. ---------


clear master.mcp.*
front                                           master.mcp.menubutton
set master.mcp.size                             [89 288 0 100]
set master.mcp.fxbyp                            [3 7 18 13 0 0 0 0]
set master.mcp.fx                               + [0 13] [master.mcp.fxbyp master.mcp.fxbyp master.mcp.fxbyp 20 0 0 0 0]
set master.mcp.io                               [24 7 34 33 0 0 0 0]
set master.mcp.mono                             + [mcp.io mcp.io] [32 0 24 31]  
set master.mcp.label                            [0 38 89 22 0 0 0 0]
  set master.mcp.label.color                    [184 184 184]
set master.mcp.pan                              trackpanmode>=4 trackpanmode==6 h<hide_pan_labels{x} [7 67 73 7 0 0 0 0] [7 73 73 7 0 0 0 0] [16 66 17 17 0 0 0 0] [35 66 17 17 0 0 0 0]
  set master.mcp.pan.fadermode                  gl_fader_swap
  set master.mcp.pan.color                      gl_pan_color
  set master.mcp.pan.label                      h<hide_pan_labels{x} [0] + [0 master.mcp.pan] trackpanmode>=4 trackpanmode==6 [26 -10 35 9 0 0 0 0] [7 20 31 10 0 0 0 0] [28 20 31 10 0 0 0 0]
  set master.mcp.pan.label.color                trackpanmode<=5 [80 80 80] [84 63 63]
  set master.mcp.pan.label.margin               [0 0 0 0 0.5]
set master.mcp.width                            trackpanmode>=4 trackpanmode==6 + [0 master.mcp.pan] [7 8 master.mcp.pan 7 0 0 0 0] [55 66 17 17 0 0 0 0] [0]
  set master.mcp.width.fadermode                gl_fader_swap
  set master.mcp.width.color                    gl_width_color
  set master.mcp.width.label                    h<hide_pan_labels{x} [0] + [0 master.mcp.width] trackpanmode>=4 trackpanmode==6 [26 9 35 9 0 0 0 0] [48 20 31 10 0 0 0 0] [0]
  set master.mcp.width.label.color              trackpanmode=5 [80 80 80] [63 84 63]
  set master.mcp.width.label.margin             [0 0 0 0 0.5]
set l_sec                                       + master.mcp.pan.label{h}>0 [0 13] [0 0 0 13] \
                                                  + +:-1:1 [0 0 0 129] [0 89 0 h] \
                                                    +:-1:1 [0 0 0 master.mcp.recinput{h}] [0 master.mcp.recinput{h}]                      
set master.mcp.mute                             [67 l_sec 16 18 0 0 0 0]
set master.mcp.solo                             + [0 l_sec] [67 20 16 18 0 0 0 0]
set master.mcp.env                              l_sec{h}<100 [0] + [0 l_sec] [67 41 16 22 0 0 0 0]
set master.mcp.volume.label                     l_sec{h}<hide_volume_label{x} [6 l_sec 56 2 0 0 0 0] [6 l_sec 56 17 0 0 0 0]
  set master.mcp.volume                         + [0 master.mcp.volume.label{h}] +:-1:1 [0 0 0 master.mcp.volume.label{h}] [41 l_sec 17 l_sec 0 0 0 0]
  set master.mcp.volume.label.color             master.mcp.volume.label{h}>2 [100 100 100] [38 38 38]
  set master.mcp.volume.label.margin            [0 4 0 0 0.5]
set master.mcp.menubutton                       [58 244 18 22 0 1 0 1]
set master.mcp.meter                            + [8 master.mcp.volume.label{h} 0 l_sec] +:-1:1 [0 0 0 master.mcp.volume.label{h}] [2 l_sec 28 -2 0 0 0 0]
  set master.mcp.meter.vu.div                   [1 1]
  set master.mcp.meter.readout.color            [100 100 100 255 255 183 171 255]
  set master.mcp.meter.scale.color.lit.bottom   [255 255 255 255 0 168 99 255]
  set master.mcp.meter.scale.color.lit.top      [255 255 255 255 0 168 99 255]
  set master.mcp.meter.scale.color.unlit.bottom [100 100 100 255 38 38 38 255]
  set master.mcp.meter.scale.color.unlit.top    [100 100 100 255 38 38 38 255]
set master.mcp.extmixer.mode                    [0]
    set master.mcp.fxlist.font                  [2 16]
    set master.mcp.fxlist.margin                [4 0 4 0 0.5]
    set master.mcp.sendlist.font                [2 16] 
    set master.mcp.sendlist.margin              [4 0 4 0 0]
    set master.mcp.fxparm.font                  [2 28]
    set master.mcp.fxparm.margin                [2 0 4 0 0]  
EndLayout  
  
Layout "ca - Large" "large"


; --------------- User adjustable values. Edit without fear. -----------------

  set hide_input               [350] ; height below which input dropdown is hidden.
  set hide_pan_labels          [326] ; height below which pan labels are hidden. 
  set hide_volume_label        [160] ; meter area height below which volume label is hidden.

  ; ------- End of user adjustable values. From here on may be dragons. ---------

clear master.mcp.*
front                                           master.mcp.menubutton
set master.mcp.size                             [150 390 0 100]
set master.mcp.fxbyp                            [10 9 31 13]
set master.mcp.fx                               + [0 master.mcp.fxbyp{h}] [master.mcp.fxbyp master.mcp.fxbyp master.mcp.fxbyp 20]
set master.mcp.io                               [51 9 41 33]
set master.mcp.mono                             + [master.mcp.io master.mcp.io] [51 0 37 31]
set master.mcp.menubutton                       [111 341 23 27 0 1 0 1]
set master.mcp.label                            h<hide_input{x} [0 38 150 22] [0 58 150 22]
  set master.mcp.label.margin                   [2 0 3 0 0.5]
  set master.mcp.label.color                    [184 184 184]
set pan_sec                                     + + [0 master.mcp.label] [0 master.mcp.label{h} master.mcp.size{x}]] h<hide_pan_labels{x} [0 0 0 42] [0 0 0 55]  
set master.mcp.pan                              + [pan_sec pan_sec] trackpanmode>=4 trackpanmode==6 pan_sec{h}{x}<55 [8 10 133 9] [8 17 133 9] [36 9 23 23] [62 9 23 23]
  set master.mcp.pan.fadermode                  gl_fader_swap
  set master.mcp.pan.label                      pan_sec{h}{x}<55 [0] + [master.mcp.pan master.mcp.pan] trackpanmode==6 [50 -13 36 10] [-6 28 35 10]
  set master.mcp.pan.label.margin               [0 0 0 0 0.5]
  set master.mcp.pan.color                      gl_pan_color
  set master.mcp.pan.label.color                trackpanmode<=5 [80 80 80] [84 63 63]
set master.mcp.width                            + [pan_sec pan_sec] trackpanmode>=4 trackpanmode==6 pan_sec{h}{x}<55 [8 23 133 9] [8 28 133 9] [89 9 23 23] [0]  
  set master.mcp.width.fadermode                gl_fader_swap
  set master.mcp.width.label                    pan_sec{h}{x}<55 [0] trackpanmode>=4 + [master.mcp.width master.mcp.width] trackpanmode==6 [50 11 36 10] [-6 28 35 10] [0]
  set master.mcp.width.label.margin             [0 0 0 0 0.5]
  set master.mcp.width.color                    gl_width_color
  set master.mcp.width.label.color              trackpanmode=5 [80 80 80] [63 84 63]
set l_sec                                       + [0 pan_sec 0 -27] - [0 pan_sec{h} 89 h] + [0 0 0 pan_sec{h}] [0 0 0 pan_sec{y}]  
set master.mcp.mute                             [120 l_sec 23 23 0 0 0 0]
set master.mcp.solo                             + [0 l_sec] [120 29 23 23 0 0 0 0]
set master.mcp.env                              l_sec{h}<190 [0] + [0 l_sec] [120 58 23 27 0 0 0 0]
set master.mcp.volume.label                     l_sec{h}<hide_volume_label{x} [6 l_sec 108 2 0 0 0 0] [6 l_sec 108 17 0 0 0 0]
  set master.mcp.volume                         + [0 master.mcp.volume.label{h}] +:-1:1 [0 0 0 master.mcp.volume.label{h}] [87 l_sec 21 l_sec 0 0 0 0]
  set master.mcp.volume.label.color             master.mcp.volume.label{h}>2 [100 100 100] [38 38 38]
  set master.mcp.volume.label.margin            [0 4 0 0 0.5]
set master.mcp.meter                            + [0 master.mcp.volume.label{h} 0 l_sec] +:-1:1 [0 0 0 master.mcp.volume.label{h}] [10 l_sec 73 -2 0 0 0 0]
  set master.mcp.meter.vu.div                   [2 1]
  set master.mcp.meter.readout.color            [100 100 100 255 255 183 171 255]
  set master.mcp.meter.scale.color.lit.bottom   [255 255 255 255 0 168 99 255]
  set master.mcp.meter.scale.color.lit.top      [255 255 255 255 0 168 99 255]
  set master.mcp.meter.scale.color.unlit.bottom [100 100 100 255 38 38 38 255]
  set master.mcp.meter.scale.color.unlit.top    [100 100 100 255 38 38 38 255]
set master.mcp.extmixer.mode                    [0]
    set master.mcp.fxlist.font                  [6 18]
    set master.mcp.fxlist.margin                [4 0 4 0 0.5]
    set master.mcp.sendlist.font                [6 18] 
    set master.mcp.sendlist.margin              [4 0 4 0 0]
    set master.mcp.fxparm.font                  [6 31]
    set master.mcp.fxparm.margin                [2 0 4 0 0]  
EndLayout  
  
Layout "da - Session Mixer" "session"


; --------------- User adjustable values. Edit without fear. -----------------

  set no_room            [349] ; height below which it stops making sense and all bets are off...

; ------- End of user adjustable values. From here on may be dragons. ---------


clear master.mcp.*
front                                           master.mcp.solo master.mcp.mute master.mcp.phase master.mcp.width
set master.mcp.size                             [87 501 0 240]
set master.mcp.fxbyp                            [7 7 24 13 0 0 0 0]
set master.mcp.fx                               + [0 13] [master.mcp.fxbyp master.mcp.fxbyp master.mcp.fxbyp 20 0 0 0 0]
set master.mcp.io                               [38 7 41 33]
set master.mcp.env                              [0 45 86 22]
set master.mcp.pan                              trackpanmode>=4 trackpanmode==6 [4 80 78 16] [10 79 25 25] [31 79 25 25]
  set master.mcp.pan.fadermode                  gl_fader_swap
  set master.mcp.pan.color                      gl_pan_color
  set master.mcp.pan.label                      + [master.mcp.pan master.mcp.pan] trackpanmode==6 [24 -13 31 10] [-4 31 31 10]
  set master.mcp.pan.label.color                trackpanmode<=5 [80 80 80] [84 63 63]
  set master.mcp.pan.label.margin               [0 0 0 0 0.5]
set master.mcp.width                            trackpanmode>=4 trackpanmode==6 + master.mcp.pan [0 14 0 0] [51 79 25 25] [0]
  set master.mcp.width.fadermode                gl_fader_swap
  set master.mcp.width.color                    gl_width_color
  set master.mcp.width.label                    + [master.mcp.width master.mcp.width] trackpanmode>=4 trackpanmode==6 [24 18 31 10] [-4 31 31 10] [0]
  set master.mcp.width.label.color              trackpanmode=5 [80 80 80] [63 84 63]
  set master.mcp.width.label.margin             [0 0 0 0 0.5]
set master.mcp.mono                             [4 127 51 15]  
set master.mcp.menubutton                       [52 126 30 27]  
set master.mcp.label                            [0 483 87 18 0 1 0 1]
  set master.mcp.label.margin                   [2 0 3 0 0.5 0]
  colorsmart                                    master.mcp.label.color 230 230 230 0
set master.mcp.mute                             [10 156 26 26]
set master.mcp.solo                             [10 190 26 26]
set master.mcp.volume                           h<no_room{x} + [0 168] [49 7 25 25] [57 167 25 306 0 0 0 1]
  set master.mcp.volume.label                   + [0 153] [40 1 43 10]
  set master.mcp.volume.label.color             master.mcp.volume.label{h}>2 [100 100 100] [38 38 38]
  set master.mcp.volume.label.margin            [0 0 0 0 0.5]
set master.mcp.meter                            h<no_room{x} + [0 153] [4 71 78 255 0 0 0 1] [4 224 49 248 0 0 0 1]
  set master.mcp.meter.vu.div                   [1 1]
  set master.mcp.meter.readout.color            [100 100 100 255 255 183 171 255]
  set master.mcp.meter.scale.color.lit.bottom   [255 255 255 255 0 168 99 255]
  set master.mcp.meter.scale.color.lit.top      [255 255 255 255 0 168 99 255]
  set master.mcp.meter.scale.color.unlit.bottom [100 100 100 255 38 38 38 255]
  set master.mcp.meter.scale.color.unlit.top    [100 100 100 255 38 38 38 255]
set master.mcp.trackidx                         [33 483 20 18 0 1 0 1]

EndLayout  
  
#<
#>---------------------------------- TRANSPORT ----------------------------------------

clear trans.*
set trans.size             [1000 100]

macro size element   px  py  w  h
  set size_##element + [px py w h px] [0 0 0 0 w]
endmacro

; ---------------------------- USER : mess with these:----------------------------

; Set the size of the elements early, so we can calculate stuff. These are absolute, not variations. For ...er... reasons.

;     element   px  py  w   h
size  rew       4   5   28  28
size  fwd       0   5   29  28
size  stop      4   2   31  35
size  play      0   2   38  35
size  pause     0   2   30  35
size  rec       4   2   31  35  
size  repeat    4   5   25  28
size  automode  8   3   51  31
size  status    0   0   360 36
size  bpm       1   0   50  36
size  timesig   0   0   40  36
size  rate      0   0   140 36
size  selection 4   8   360 20

set row_height      [36]

; ----------------------------- OK, stop messing here ----------------------------

macro draw_transport
set size_rate                !trans_flags&2 [0 0 0 0 0] .
set size_timesig             !trans_flags&4 [0 0 0 0 0] .

set section1_width           + + + + + + + + size_rew{4} size_fwd{4} size_stop{4} size_play{4} size_pause{4} size_rec{4} size_repeat{4} size_automode{4} size_automode{0}
set section1                 [0 0 section1_width{w}]  
set section3_width           + size_selection{4} size_selection{0}                                                    ; adding additional x-pad on, as right hand padding
set section3                 - [w 0 section3_width size_selection{3}] [section3_width]  
set section2_width           + + + size_status{4} size_bpm{4} size_timesig{4} size_rate{4}
set section2_center          + [section1_width] * [0.5] - w + [section1_width] [section3_width]
set section2                 - [section2_center{x} 0 section2_width{x}] * [0.5] [section2_width{x}] 

; the center transflag nonsense
set section1_center          + [section2_width] * [0.5] - w + [section2_width] [section3_width]                       ; for use if centred
set section1                 ?trans_flags&1 - [section1_center{x} 0 section1_width{x}] * [0.5] [section1_width{x}] 
set section2                 ?trans_flags&1 [0 0 section2_width{w}]

; jumping rows when panel is narrow
set row_height_x2            * 2 row_height
set row_height_x3            * 3 row_height
set all_width                + + section1_width section2_width section3_width
set section13_width          + section1_width section3_width
set section1                 w<all_width{x} [0 0 . .]
set section2                 w<all_width{x} h<row_height_x2{x} [0 row_height_x2{x}] [0 row_height{x} . .]
set section3                 w<section13_width{x} h<row_height_x3{x} [0 row_height_x3{x}] [0 row_height_x2{x} . .]
set trans.size.dockedheight  w<all_width{x} w<section13_width{x} + * 2 [row_height] [size_selection{3}] * 2 [row_height] [row_height]

; draw content in section1
set trans.rew                + [section1 section1] [size_rew size_rew size_rew size_rew]
set trans.fwd                + + [trans.rew section1] [size_rew{w}] [size_fwd size_fwd size_fwd size_fwd]
set trans.stop               + + [trans.fwd section1] [size_fwd{w}] [size_stop size_stop size_stop size_stop]
set trans.play               + + [trans.stop section1] [size_stop{w}] [size_play size_play size_play size_play]
set trans.pause              + + [trans.play section1] [size_play{w}] [size_pause size_pause size_pause size_pause]
set trans.rec                + + [trans.pause section1] [size_pause{w}] [size_rec size_rec size_rec size_rec]
set trans.repeat             + + [trans.rec section1] [size_rec{w}] [size_repeat size_repeat size_repeat size_repeat]
set trans.automode           + + [trans.repeat section1] [size_repeat{w}] [size_automode size_automode size_automode size_automode]

; draw content in section2
set trans.status             + [section2 section2] [size_status size_status size_status size_status]
set trans_bpm                + + [trans.status section2] [size_status{w}] [size_bpm size_bpm size_bpm size_bpm]
  set trans.bpm.tap          * [1 1 1 0.5] trans_bpm
  set trans.bpm.edit         + trans.bpm.tap [0 trans.bpm.tap{h}]
set trans.curtimesig         + + [trans_bpm section2] [size_bpm{w}] [size_timesig size_timesig size_timesig size_timesig]
  set trans.curtimesig.color [. . . . 43 43 43 255]
set trans_rate               + + [trans.curtimesig section2] [size_timesig{w}] [size_rate size_rate size_rate size_rate]
  set trans.rate             size_rate{h}<30 + trans_rate [22 0 -22] * [1 1 1 0.5] trans_rate
  set trans.rate.fader       size_rate{h}<30 + [trans.rate trans.rate] !trans_flags&2 [0 0 0 0] [-18 5 18 18]  + trans.rate [0 trans.rate{h}]
  
  ; draw content in section3  
set trans.sel                + [section3 section3] [size_selection size_selection size_selection size_selection]

set trans.size.minmax        * [section1{w} row_height{x} all_width{x} row_height{x}] [1 1 1 3]

  set text_color             [150 150 150]
  set trans.curtimesig.font  [1]
  set trans.curtimesig.color + text_color [0 0 0 0 43 43 43 255]
  set trans.status.margin    [8 0 8 0 0]
  set trans.bpm.tap.margin   [0 0 0 0 0.5]
  set trans.bpm.edit.margin  [0 0 0 0 0.5]
  set trans.bpm.edit.margin  [0 0 0 0 0.5]
  set trans.bpm.edit.color   text_color
  set trans.bpm.tap.color    text_color  
  set trans.rate.fader.color [255 255 255 100]
  set trans.rate.font        [5]
  set trans.rate.margin      [4 0 0 0 0 0]  
  set trans.rate.color       [130 130 130 255 0 0 0]
  set trans.sel.font         [3]
  set trans.sel.color        text_color
  set trans.sel.margin       [4 0 4 0 1]  
endmacro

draw_transport

Layout "Standard"

set trans.rew     .  
  
EndLayout

Layout "Large" "large"

; ---------------------------- USER : mess with these:----------------------------

;     element   px  py  w   h
size  rew       4   9   40  38
size  fwd       0   9   41  38
size  stop      4   3   47  51
size  play      0   3   57  51
size  pause     0   3   47  51
size  rec       4   3   47  51  
size  repeat    4   9   35  38
size  automode  8   11  51  31
size  status    0   0   500 55
size  bpm       1   0   50  55
size  timesig   0   0   50  55
size  rate      0   0   140 55
size  selection 4   17  360 20

set row_height      [55]

; ----------------------------- OK, stop messing here ----------------------------

draw_transport
EndLayout 
  
  
Layout "Small" "small"

; ---------------------------- USER : mess with these:----------------------------

;     element   px  py  w   h
size  rew       2   2   28  28
size  fwd       0   2   29  28
size  stop      2   2   31  28
size  play      0   2   38  28
size  pause     0   2   30  28
size  rec       2   2   25  28  
size  repeat    2   2   25  28
size  automode  4   6   102 19
size  status    0   0   300 28
size  bpm       1   0   50  28
size  timesig   0   0   40  28
size  rate      0   0   100 28
size  selection 2   4   260 20

set row_height        [29]

; ----------------------------- OK, stop messing here ----------------------------

draw_transport
set trans.sel.font    [0]
EndLayout   
#<
