; to do:
; small pan knobs don't center, doh
; project master mixer
; strip layout solo defeat
; several solo defeat images
; tracking deck tidy_routing 

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

version 5
tinttcp 298
peaksedges 0
use_pngs 1
tcp_showborders 0
mcp_showborders 0
tcp_vupeakwidth 2
mcp_vupeakheight 2
mcp_mastervupeakheight 2
mcp_altmeterpos 0
use_overlays 1
transport_showborders 0
tcp_vol_zeroline 85000000
tcp_pan_zeroline 67000000 
mcp_vol_zeroline 00000000
mcp_pan_zeroline 00000000 
trans_speed_zeroline 66666601
mcp_min_height 0
mcp_voltext_flags 12 6
mcp_master_voltext_flags 8 
tcp_voltext_flags 8
vertfont_topdown 1
tcp_folderindent 18
tcp_heights 4 22 72 72



; ----------------- WALTER -------------------
; font #1 - Track Numbers
; font #2 - fx list
; font #3 - MCP Track Numbers
; font #4 - MCP Track Label
; font #5 - MCP Track Numbers (project & strip layouts)
; -------------------------------------------

set custom_col								[trackcolor_r trackcolor_g trackcolor_b]

macro reset_counts
	; (so that each layout starts its counts afresh)
	set mcp.recinput_cnt					0
	set mcp.recinput.margin_cnt				0
	set mcp.label_cnt 						0
	set mcp.label.margin_cnt 				0
	set mcp.trackidx_cnt					0
	set mcp.trackidx.margin_cnt				0
	set mcp.volume.label_cnt				0
	set mcp.volume.label.margin_cnt			0
endmacro

macro colorsmart element r g b lr lg lb dr dg db rec_red      ; element name, desired rgb, desired light colour rgb, desired dark colour rgb, go red on recarm? ('1' yes, '0' no)
	set element                  ?trackcolor_valid luma{x}>140 [lr lg lb] [dr dg db] [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] [200 30 30] . .
endmacro
	
#<
#>----------------------------- TRACK CONTROL PANEL -----------------------------------

; Oh dear little Flo
; I love you so
; Especially in your nightie...

def gl_fader_swap              trackpanmode==6 [0] [1]  

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

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]

;            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
	
; ------------------------------------------------------------------------------------------------------------

 	Layout 'a2 ------ Default (medium track name)'
	
	set tcp.size 					+:maxfolderdepth:1 [0 0 18] [544 72 157]

	set less_than_max		+:-1:1 tcp.size{0} eff_w{0}	

	set tcp.label 						+ cm eff_w{0}>460 [0 1 270 21 0 0 1 0] + * maxfolderdepth [0 0 18] +:0.3:1 [0 0 less_than_max{0}] [0 1 210 21 0 0 0 0]
	
	set label_rhs 		+ tcp.label{2} * +:-1:1 [tcp.size{0}] w tcp.label{6}
	set remaining_gap 	+:-1:1 label_rhs w
	set pan_space		+ remaining_gap trackpanmode<5 [25] [0]	

	set tcp.recarm 						+ cm + [label_rhs] [0 0 22 23 0 0 0 0] 
	set tcp.pan 						+ cm remaining_gap{0}<91 [0] + [label_rhs] [26 0 22 22 0 0 0 0]
	set tcp.width 						trackpanmode<5 [0] + cm remaining_gap{0}<113 [0] + [label_rhs] [50 0 22 22 0 0 0 0]
	set tcp.recmon 						pan_space{0}<266 [0] + cm [357 5 14 14 1 0 1 0]
	set tcp.phase 						pan_space{0}<244 [0] + cm [379 5 14 14 1 0 1 0]
	set tcp.env 						trackpanmode<5 pan_space{0}<240 [0] + cm [401 5 14 14 1 0 1 0] pan_space{0}<222 [0] + cm [401 5 14 14 1 0 1 0]
	set tcp.io 							pan_space{0}<200 [0]  + cm [423 5 14 14 1 0 1 0]
	set tcp.fx 							pan_space{0}<176 [0]  + cm [445 5 14 14 1 0 1 0]
	set tcp.fxbyp 						tcp.fx{0}==0 [0] + tcp.fx [16]
	set tcp.mute 						pan_space{0}<140 [0] + cm [483 5 14 14 1 0 1 0]
	set tcp.volume.label 				tcp.volume{w}==0 [0] + cm + * maxfolderdepth [18] [7 27 45 9 0 0 0 0]
	set tcp.pan.label 					tcp.pan{x}==0 [0] + cm + [tcp.pan] [-10 27 31 9 0 0 0 0]
	set tcp.width.label 				trackpanmode<5 [0] tcp.width{x}==0 [0] + cm + [tcp.width] [0 27 31 9 0 0 0 0]
	set tcp.recinput 					+ maxfolderdepth==0 [6 0 -6] [0] h<47 [0] + [20 0 label_rhs{0}] * + [0 0 tcp.trackidx{0}] [1 1 20 1 1 1 1 1] [tcp.trackidx 46 -1 18 0 0 0 0]
	set tcp.fxin 						tcp.recinput{w}<=0 [0] + [tcp.recinput tcp.recinput] [-20 2 14 14 0 0 0 0]
	set tcp.recmode 					tcp.recinput{w}<=0 [0] [tcp.recarm tcp.recinput 22 21 0 0 0 0] 
	
	EndLayout ;
	

; ------------------------------------------------------------------------------------------------------------
 
 	Layout 'a3 ------ Default (short track name)'
	
	set tcp.size +:maxfolderdepth:1 [0 0 18] [544 72 114]

	set less_than_max		+:-1:1 tcp.size{0} eff_w{0}	

	set tcp.label 						+ cm eff_w{0}>416 [0 1 270 21 0 0 1 0] + * maxfolderdepth [0 0 18] +:0.3:1 [0 0 less_than_max{0}] [0 1 180 21 0 0 0 0]
	
	set label_rhs 		+ tcp.label{2} * +:-1:1 [tcp.size{0}] w tcp.label{6}
	set remaining_gap 	+:-1:1 label_rhs w
	set pan_space		+ remaining_gap trackpanmode<5 [25] [0]	

	set tcp.recarm 						+ cm + [label_rhs] [0 0 22 23 0 0 0 0] 
	set tcp.pan 						+ cm remaining_gap{0}<91 [0] + [label_rhs] [26 0 22 22 0 0 0 0]
	set tcp.width 						trackpanmode<5 [0] + cm remaining_gap{0}<113 [0] + [label_rhs] [50 0 22 22 0 0 0 0]
	set tcp.phase 						pan_space{0}<244 [0] + cm [379 5 14 14 1 0 1 0]
	set tcp.recmon 						pan_space{0}<266 [0] + cm [357 5 14 14 1 0 1 0]
	set tcp.env 						trackpanmode<5 pan_space{0}<240 [0] + cm [401 5 14 14 1 0 1 0] pan_space{0}<222 [0] + cm [401 5 14 14 1 0 1 0]
	set tcp.io 							pan_space{0}<200 [0]  + cm [423 5 14 14 1 0 1 0]
	set tcp.fx 							pan_space{0}<176 [0]  + cm [445 5 14 14 1 0 1 0]
	set tcp.fxbyp 						tcp.fx{0}==0 [0] + tcp.fx [16]
	set tcp.mute 						pan_space{0}<140 [0] + cm [483 5 14 14 1 0 1 0]
	set tcp.volume.label 				tcp.volume{w}==0 [0] + cm + * maxfolderdepth [18] [7 27 45 9 0 0 0 0]
	set tcp.pan.label 					tcp.pan{x}==0 [0] + cm + [tcp.pan] [-10 27 31 9 0 0 0 0]
	set tcp.width.label 				trackpanmode<5 [0] tcp.width{x}==0 [0] + cm + [tcp.width] [0 27 31 9 0 0 0 0]
	set tcp.recinput 					+ maxfolderdepth==0 [6 0 -6] [0] h<47 [0] + [20 0 label_rhs{0}] * + [0 0 tcp.trackidx{0}] [1 1 20 1 1 1 1 1] [tcp.trackidx 46 -1 18 0 0 0 0]
			set tcp.recinput.margin 	tcp.recinput{w}<50 [-15 0 20 0 0] [9 0 20 0 0]
	set tcp.fxin 						tcp.recinput{w}<=0 [0] tcp.recinput{w}<50 [0] + [tcp.recinput tcp.recinput] [-20 2 14 14 0 0 0 0]
	set tcp.recmode 					tcp.recinput{w}<=0 [0] [tcp.recarm tcp.recinput 22 21 0 0 0 0] 
	
	EndLayout ;
	

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

 	Layout 'b1 -- 1 Button Folders'
	
	clear tcp.*
	set tcp.size 						[544 72 225]

	set cm  			h>28 [0 4 0 0 0 0 0 0] [0 24 0 0 0 0.5 0 0.5] 
	set eff_w			w	
	set less_than_max	+:-1:1 544 w	

	front 								tcp.trackidx tcp.foldercomp tcp.folder tcp.recarm tcp.fxin
	set tcp.margin 						+:folderdepth:1 [-18]
	set tcp.foldercomp 					+ cm [4 5 14 14 0 0 0 0]
	set tcp.folder 						+ cm folderstate>=0 [0] [4 5 14 14 0 0 0 0] 
	set tcp.trackidx 					+ cm [18 5 20 14 0 0 0 0]
		set tcp.trackidx.margin 		[0 -1 0 1 0.5]
		set tcp.trackidx.font			[1]
		set tcp.trackidx.color 			[0 0 0]
	set tcp.volume 						+ cm w<229 [18] [36 0 22 22 0 0 0 0]
		set tcp.volume.fadermode 		[1]
		set tcp.volume.color 			[50 50 50 255]
	set tcp.label 						+ cm w>498 [0 1 270 21 0 0 1 0] + * [0 0 0.3] [0 0 less_than_max{0}] [0 1 258 21 0 0 0 0]
		set tcp.label.margin 			w<229 [38 0 4 0 0] [60 0 4 0 0]
		set tcp.label.color 			[174 186 191]
		
	set label_rhs 		+ tcp.label{2} * +:-1:1 [tcp.size{0}] w tcp.label{6} 		; locate the resulting right edge of the label
	set remaining_gap 	+:-1:1 label_rhs w											; space for all the stuff
	set pan_space		+ remaining_gap trackpanmode<5 [25] [0]						; for using the space if the width knob isn't there

	set tcp.recarm 						+ cm + [label_rhs] [0 0 22 23 0 0 0 0] 
	set tcp.pan 						+ cm remaining_gap{0}<91 [0] + [label_rhs] [26 0 22 22 0 0 0 0]
		set tcp.pan.color 				trackpanmode==6 [255 160 160] [200 200 200]
		set tcp.pan.fadermode 			[1]
	set tcp.width 						trackpanmode<5 [0] + cm remaining_gap{0}<113 [0] + [label_rhs] [50 0 22 22 0 0 0 0]
		set tcp.width.color 			trackpanmode<5 [99 123 135] trackpanmode==6 [128 255 170] [200 200 200]
		set tcp.width.fadermode 		[1]
	set tcp.recmon 						pan_space{0}<266 [0] + cm [357 5 14 14 1 0 1 0]
	set tcp.phase 						pan_space{0}<244 [0] + cm [379 5 14 14 1 0 1 0]
	set tcp.env 						trackpanmode<5 pan_space{0}<240 [0] + cm [401 5 14 14 1 0 1 0] pan_space{0}<222 [0] + cm [401 5 14 14 1 0 1 0]
	set tcp.io 							pan_space{0}<200 [0] + cm [423 5 14 14 1 0 1 0]
	set tcp.fx 							pan_space{0}<176 [0] + cm [445 5 14 14 1 0 1 0]
	set tcp.fxbyp 						tcp.fx{0}==0 [0] + tcp.fx [16]
	set tcp.mute 						pan_space{0}<140 [0] + cm [483 5 14 14 1 0 1 0]
	set tcp.solo 						+ cm [505 0 22 23 1 0 1 0]
	set tcp.volume.label 				tcp.volume{w}==0 [0] + cm [25 27 45 9 0 0 0 0]
		set tcp.volume.label.margin 	[0 0 0 0 0.5]
		set tcp.volume.label.color 		[146 156 160] 
	set tcp.pan.label 					tcp.pan{x}==0 [0] + cm + [tcp.pan] [-10 27 31 9 0 0 0 0]
		set tcp.pan.label.color 		trackpanmode==6 [220 100 100] [146 156 160] 
		set tcp.pan.label.margin 		[0 0 0 0 1]
	set tcp.width.label 				trackpanmode<5 [0] tcp.width{x}==0 [0] + cm + [tcp.width] [0 27 31 9 0 0 0 0]
		set tcp.width.label.color 		trackpanmode==6 [100 200 100] [0 0 0]
		set tcp.width.label.margin 		[0 0 0 0 0]
	set tcp.recinput 					h<47 [0] + [20 0 label_rhs{0}] * + [0 0 tcp.trackidx{0}] [1 1 20 1 1 1 1 1] [tcp.trackidx 46 -1 18 0 0 0 0]
			set tcp.recinput.color 		?recarm [255 100 100] [146 156 160]
			set tcp.recinput.margin 	[9 0 20 0 0]
	set tcp.fxin 						tcp.recinput{w}<=0 [0] + [tcp.recinput tcp.recinput] [-20 2 14 14 0 0 0 0]
	set tcp.recmode 					tcp.recinput{w}<=0 [0] [tcp.recarm tcp.recinput 22 21 0 0 0 0] 
	set tcp.fxparm						+ [0 0 w{0}] [18 74 -38 -11 0 0 0 1]  
	set tcp.meter 						!0 [532 0 12 71 1 0 1 1]  

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

		Layout 'b2 ------ 1 Button Folders (medium track name)'
		
		set tcp.size 					[544 72 157]

		set less_than_max		+:-1:1 tcp.size{0} w	

		set tcp.label 						+ cm w>460 [0 1 270 21 0 0 1 0] +:0.3:1 [0 0 less_than_max{0}] [0 1 210 21 0 0 0 0]
		
		set label_rhs 		+ tcp.label{2} * +:-1:1 [tcp.size{0}] w tcp.label{6}
		set remaining_gap 	+:-1:1 label_rhs w
		set pan_space		+ remaining_gap trackpanmode<5 [25] [0]	

		set tcp.recarm 						+ cm + [label_rhs] [0 0 22 23 0 0 0 0] 
		set tcp.pan 						+ cm remaining_gap{0}<91 [0] + [label_rhs] [26 0 22 22 0 0 0 0]
		set tcp.width 						trackpanmode<5 [0] + cm remaining_gap{0}<113 [0] + [label_rhs] [50 0 22 22 0 0 0 0]
		set tcp.recmon 						pan_space{0}<266 [0] + cm [357 5 14 14 1 0 1 0]
		set tcp.phase 						pan_space{0}<244 [0] + cm [379 5 14 14 1 0 1 0]
		set tcp.env 						trackpanmode<5 pan_space{0}<240 [0] + cm [401 5 14 14 1 0 1 0] pan_space{0}<222 [0] + cm [401 5 14 14 1 0 1 0]
		set tcp.io 							pan_space{0}<200 [0]  + cm [423 5 14 14 1 0 1 0]
		set tcp.fx 							pan_space{0}<176 [0]  + cm [445 5 14 14 1 0 1 0]
		set tcp.fxbyp 						tcp.fx{0}==0 [0] + tcp.fx [16]
		set tcp.mute 						pan_space{0}<140 [0] + cm [483 5 14 14 1 0 1 0]
		set tcp.volume.label 				tcp.volume{w}==0 [0] + cm + [18] [7 27 45 9 0 0 0 0]
		set tcp.pan.label 					tcp.pan{x}==0 [0] + cm + [tcp.pan] [-10 27 31 9 0 0 0 0]
		set tcp.width.label 				trackpanmode<5 [0] tcp.width{x}==0 [0] + cm + [tcp.width] [0 27 31 9 0 0 0 0]
		set tcp.recinput 					h<47 [0] + [20 0 label_rhs{0}] * + [0 0 tcp.trackidx{0}] [1 1 20 1 1 1 1 1] [tcp.trackidx 46 -1 18 0 0 0 0]
		set tcp.fxin 						tcp.recinput{w}<=0 [0] + [tcp.recinput tcp.recinput] [-20 2 14 14 0 0 0 0]
		set tcp.recmode 					tcp.recinput{w}<=0 [0] [tcp.recarm tcp.recinput 22 21 0 0 0 0] 
	
		EndLayout ;
	
	EndLayout ;
	
 ; ------------------------------------------------------------------------------------------------------------
 
 	Layout 'c1 -- Swipers Delight'
	
	set eff_w			+:-1:1 * maxfolderdepth [18] w								; effective width after folder stuff
	set less_than_max	+:-1:1 tcp.size{0} eff_w{0}									; how much is the effective width reduced from its maximum?
	
	set tcp.label 						+ cm eff_w{0}>498 [0 1 270 21 0 0 1 0] + * maxfolderdepth [0 0 18] +:0.3:1 [0 0 less_than_max{0}] [0 1 240 21 0 0 0 0]
	
	set label_rhs 		+ tcp.label{2} * +:-1:1 [tcp.size{0}] w tcp.label{6}
	set remaining_gap 	+:-1:1 label_rhs w										
	set pan_space		+ remaining_gap trackpanmode<5 [25] [0]					

	set tcp.recarm 						+ cm + [label_rhs] [0 0 22 23 0 0 0 0] 
	set tcp.pan 						+ cm remaining_gap{0}<91 [0] + [label_rhs] [26 0 22 22 0 0 0 0]
	set tcp.width 						trackpanmode<5 [0] + cm remaining_gap{0}<113 [0] + [label_rhs] [50 0 22 22 0 0 0 0]
	set tcp.recmon 						!recarm pan_space{0}<244 [0] + cm [379 5 14 14 1 0 1 0] pan_space{0}<266 [0] + cm [357 5 14 14 1 0 1 0]
	set tcp.phase 						!recarm pan_space{0}<222 [0] + cm [401 5 14 14 1 0 1 0] pan_space{0}<244 [0] + cm [379 5 14 14 1 0 1 0] 
	set tcp.env							!recarm [0] trackpanmode<5 pan_space{0}<240 [0] + cm [401 5 14 14 1 0 1 0] pan_space{0}<222 [0] + cm [401 5 14 14 1 0 1 0] 
	set tcp.io 							pan_space{0}<200 [0] + cm [423 5 14 14 1 0 1 0]
	set tcp.fx 							pan_space{0}<176 [0] + cm [445 5 14 14 1 0 1 0]
	set tcp.fxbyp 						tcp.fx{0}==0 [0] + tcp.fx [16]
	set tcp.mute 						pan_space{0}<140 [0] + cm [483 5 14 14 1 0 1 0]
	set tcp.solo 						+ cm [505 0 22 23 1 0 1 0]
	set tcp.volume.label 				tcp.volume{w}==0 [0] + cm + * maxfolderdepth [18] [7 27 45 9 0 0 0 0]
	set tcp.pan.label 					tcp.pan{x}==0 [0] + cm + [tcp.pan] [-10 27 31 9 0 0 0 0]
	set tcp.width.label 				trackpanmode<5 [0] tcp.width{x}==0 [0] + cm + [tcp.width] [0 27 31 9 0 0 0 0]
	set tcp.meter 						!0 [532 0 12 71 1 0 1 1]
	set tcp.recinput 					!recarm [0] + maxfolderdepth==0 [6 0 -6] [0] h<47 [0] + [20 0 label_rhs{0}] * + [0 0 tcp.trackidx{0}] [1 1 20 1 1 1 1 1] [tcp.trackidx 46 -1 18 0 0 0 0]
		set tcp.recinput.color	 		[146 156 160]
	set tcp.fxin 						!recarm [0] tcp.recinput{w}<=0 [0] + [tcp.recinput tcp.recinput] [-20 2 14 14 0 0 0 0]
	set tcp.recmode 					!recarm [0] tcp.recinput{w}<=0 [0] [tcp.recarm tcp.recinput 22 21 0 0 0 0]
	set tcp.fxparm						[0]
	
	EndLayout ;
	
; ------------------------------------------------------------------------------------------------------------

 	Layout 'c2 ------ Swipers Delight (medium track name)'
	
	set tcp.size +:maxfolderdepth:1 [0 0 18] [544 72 157]

	set less_than_max		+:-1:1 tcp.size{0} eff_w{0}	

	set tcp.label 						+ cm eff_w{0}>460 [0 1 270 21 0 0 1 0] + * maxfolderdepth [0 0 18] +:0.3:1 [0 0 less_than_max{0}] [0 1 210 21 0 0 0 0]
	
	set label_rhs 		+ tcp.label{2} * +:-1:1 [tcp.size{0}] w tcp.label{6}
	set remaining_gap 	+:-1:1 label_rhs w										
	set pan_space		+ remaining_gap trackpanmode<5 [25] [0]					

	set tcp.recarm 						+ cm + [label_rhs] [0 0 22 23 0 0 0 0] 
	set tcp.pan 						+ cm remaining_gap{0}<91 [0] + [label_rhs] [26 0 22 22 0 0 0 0]
	set tcp.width 						trackpanmode<5 [0] + cm remaining_gap{0}<113 [0] + [label_rhs] [50 0 22 22 0 0 0 0]
	set tcp.recmon 						!recarm pan_space{0}<244 [0] + cm [379 5 14 14 1 0 1 0] pan_space{0}<266 [0] + cm [357 5 14 14 1 0 1 0]
	set tcp.phase 						!recarm pan_space{0}<222 [0] + cm [401 5 14 14 1 0 1 0] pan_space{0}<244 [0] + cm [379 5 14 14 1 0 1 0] 
	set tcp.env							!recarm [0] trackpanmode<5 pan_space{0}<240 [0] + cm [401 5 14 14 1 0 1 0] pan_space{0}<222 [0] + cm [401 5 14 14 1 0 1 0] 
	set tcp.io 							pan_space{0}<200 [0] + cm [423 5 14 14 1 0 1 0]
	set tcp.fx 							pan_space{0}<176 [0] + cm [445 5 14 14 1 0 1 0]
	set tcp.fxbyp 						tcp.fx{0}==0 [0] + tcp.fx [16]
	set tcp.mute 						pan_space{0}<140 [0] + cm [483 5 14 14 1 0 1 0]
	set tcp.solo 						+ cm [505 0 22 23 1 0 1 0]
	set tcp.volume.label 				tcp.volume{w}==0 [0] + cm + * maxfolderdepth [18] [7 27 45 9 0 0 0 0]
	set tcp.pan.label 					tcp.pan{x}==0 [0] + cm + [tcp.pan] [-10 27 31 9 0 0 0 0]
	set tcp.width.label 				trackpanmode<5 [0] tcp.width{x}==0 [0] + cm + [tcp.width] [0 27 31 9 0 0 0 0]
	set tcp.meter 						!0 [532 0 12 71 1 0 1 1]
	set tcp.recinput 					!recarm [0] + maxfolderdepth==0 [6 0 -6] [0] h<47 [0] + [20 0 label_rhs{0}] * + [0 0 tcp.trackidx{0}] [1 1 20 1 1 1 1 1] [tcp.trackidx 46 -1 18 0 0 0 0]
		set tcp.recinput.color 			[146 156 160]
	set tcp.fxin 						!recarm [0] tcp.recinput{w}<=0 [0] + [tcp.recinput tcp.recinput] [-20 2 14 14 0 0 0 0]
	set tcp.recmode 					!recarm [0] tcp.recinput{w}<=0 [0] [tcp.recarm tcp.recinput 22 21 0 0 0 0]  

	EndLayout ;
	
; ------------------------------------------------------------------------------------------------------------

 	Layout 'c3 ------ Swipers Delight (short track name)'
	
	set tcp.size +:maxfolderdepth:1 [0 0 18] [544 72 114]

	set less_than_max		+:-1:1 tcp.size{0} eff_w{0}	

	set tcp.label 						+ cm eff_w{0}>416 [0 1 270 21 0 0 1 0] + * maxfolderdepth [0 0 18] +:0.3:1 [0 0 less_than_max{0}] [0 1 180 21 0 0 0 0]
	
	set label_rhs 		+ tcp.label{2} * +:-1:1 [tcp.size{0}] w tcp.label{6}
	set remaining_gap 	+:-1:1 label_rhs w										
	set pan_space		+ remaining_gap trackpanmode<5 [25] [0]					

	set tcp.recarm 						+ cm + [label_rhs] [0 0 22 23 0 0 0 0] 
	set tcp.pan 						+ cm remaining_gap{0}<91 [0] + [label_rhs] [26 0 22 22 0 0 0 0]
	set tcp.width 						trackpanmode<5 [0] + cm remaining_gap{0}<113 [0] + [label_rhs] [50 0 22 22 0 0 0 0]
	set tcp.recmon 						!recarm pan_space{0}<244 [0] + cm [379 5 14 14 1 0 1 0] pan_space{0}<266 [0] + cm [357 5 14 14 1 0 1 0]
	set tcp.phase 						!recarm pan_space{0}<222 [0] + cm [401 5 14 14 1 0 1 0] pan_space{0}<244 [0] + cm [379 5 14 14 1 0 1 0] 
	set tcp.env							!recarm [0] trackpanmode<5 pan_space{0}<240 [0] + cm [401 5 14 14 1 0 1 0] pan_space{0}<222 [0] + cm [401 5 14 14 1 0 1 0] 
	set tcp.io 							pan_space{0}<200 [0] + cm [423 5 14 14 1 0 1 0]
	set tcp.fx 							pan_space{0}<176 [0] + cm [445 5 14 14 1 0 1 0]
	set tcp.fxbyp 						tcp.fx{0}==0 [0] + tcp.fx [16]
	set tcp.mute 						pan_space{0}<140 [0] + cm [483 5 14 14 1 0 1 0]
	set tcp.solo 						+ cm [505 0 22 23 1 0 1 0]
	set tcp.volume.label 				tcp.volume{w}==0 [0] + cm + * maxfolderdepth [18] [7 27 45 9 0 0 0 0]
	set tcp.pan.label 					tcp.pan{x}==0 [0] + cm + [tcp.pan] [-10 27 31 9 0 0 0 0]
	set tcp.width.label 				trackpanmode<5 [0] tcp.width{x}==0 [0] + cm + [tcp.width] [0 27 31 9 0 0 0 0]
	set tcp.meter 						!0 [532 0 12 71 1 0 1 1]
	set tcp.recinput 					!recarm [0] + maxfolderdepth==0 [6 0 -6] [0] h<47 [0] + [20 0 label_rhs{0}] * + [0 0 tcp.trackidx{0}] [1 1 20 1 1 1 1 1] [tcp.trackidx 46 -1 18 0 0 0 0]
		set tcp.recinput.margin 		tcp.recinput{w}<50 [-15 0 20 0 0] [9 0 20 0 0]	
		set tcp.recinput.color 			[146 156 160]
	set tcp.fxin 						!recarm [0] tcp.recinput{w}<=0 [0] tcp.recinput{w}<50 [0] + [tcp.recinput tcp.recinput] [-20 2 14 14 0 0 0 0]
	set tcp.recmode 					!recarm [0] tcp.recinput{w}<=0 [0] [tcp.recarm tcp.recinput 22 21 0 0 0 0] 
 

	EndLayout ;
	
; ------------------------------------------------------------------------------------------------------------		
	
	
Layout 'd1 -- Fader'

set less_than_max		+:-1:1 tcp.size{0} eff_w{0}	

set tcp.label 						+ cm + * maxfolderdepth [0 0 18] +:0.3:1 [0 0 less_than_max{0}] [0 1 210 21 0 0 0 0]
	set tcp.label.margin 			+:maxfolderdepth:1 [18] [20 0 4 0 0]

set label_rhs 		+ tcp.label{2} * +:-1:1 [tcp.size{0}] w tcp.label{6}
set remaining_gap 	+:-1:1 label_rhs w
set pan_space		+ remaining_gap trackpanmode<5 [25] [0]	

set tcp.recarm 						+ cm + [label_rhs] [0 0 22 23 0 0 0 0] 

set tcp.size 					+:maxfolderdepth:1 [0 0 18] [544 72 157]	
set tcp.volume 						remaining_gap{0}<94 [0] + cm + [label_rhs] + [0 0 -70] [26 0 remaining_gap{0} 23 0 0 0 0]
	set tcp.volume.fadermode 		remaining_gap{0}<150 [1] [0]
	; set tcp.volume.label 			tcp.volume{w}==0 [0] + cm [tcp.volume{0} 28 tcp.volume{w} 9 0 0 0 0]
	; set tcp.volume.label.margin		[0 0 0 0 0.5]

set tcp.pan 						+ cm remaining_gap{0}<91 [0] + [label_rhs] [55 28 22 22 0 0 0 0]
	set tcp.pan.label 				tcp.pan{x}==0 [0] + cm + [tcp.pan] [-10 55 31 9 0 0 0 0]
set tcp.width 						trackpanmode<5 [0] + cm remaining_gap{0}<113 [0] + [label_rhs] [79 28 22 22 0 0 0 0]
	set tcp.width.label 			trackpanmode<5 [0] tcp.width{x}==0 [0] + cm + [tcp.width] [0 55 31 9 0 0 0 0]
set tcp.recmon 						pan_space{0}<266 [0] + cm [386 30 14 14 1 0 1 0]
set tcp.phase 						pan_space{0}<244 [0] + cm [408 30 14 14 1 0 1 0]
set tcp.env 						trackpanmode<5 pan_space{0}<240 [0] + cm [430 30 14 14 1 0 1 0] pan_space{0}<222 [0] + cm [430 30 14 14 1 0 1 0]
set tcp.io 							pan_space{0}<200 [0]  + cm [452 30 14 14 1 0 1 0]
set tcp.fx 							pan_space{0}<176 [0]  + cm [474 30 14 14 1 0 1 0]
set tcp.fxbyp 						tcp.fx{0}==0 [0] + tcp.fx [16]
set tcp.mute 						pan_space{0}<140 [0] + cm [512 30 14 14 1 0 1 0]
set tcp.recinput 					+ maxfolderdepth==0 [6 0 -6] [0] h<47 [0] + [20 0 label_rhs{0}] * + [0 0 tcp.trackidx{0}] [1 1 20 1 1 1 1 1] [tcp.trackidx 46 -1 18 0 0 0 0]
set tcp.fxin 						tcp.recinput{w}<=0 [0] + [tcp.recinput tcp.recinput] [-20 2 14 14 0 0 0 0]
set tcp.recmode 					tcp.recinput{w}<=0 [0] [tcp.recarm tcp.recinput 22 21 0 0 0 0] 
set tcp.fxparm						+ maxfolderdepth==0 [8 0 -8] [0] +:maxfolderdepth:1 [18 0 -18] + [0 0 w{0}] [0 96 -20 -33 0 0 0 1] 

	; ------------------------------------------------------------------------------------------------------------
		
		Layout 'd2 ------ Blue Fader' 'blue_fader'
		set tcp.volume .
		EndLayout ;

	; ------------------------------------------------------------------------------------------------------------
		
		Layout 'd3 ------ Red Fader' 'red_fader'
		set tcp.volume .
		EndLayout ;

	; ------------------------------------------------------------------------------------------------------------	
		
		Layout 'd4 ------ Green Fader' 'green_fader'
		set tcp.volume .
		EndLayout ;	
		
	; ------------------------------------------------------------------------------------------------------------		

EndLayout ;
	
; ------------------------------------------------------------------------------------------------------------		
	
	
 Layout 'e1 -- Meter - Full' 'tracking'
	
clear tcp.*

front								tcp.trackidx  tcp.foldercomp tcp.folder 
set tcp.margin 						+:folderdepth:1 [-18]
set tcp.size 						[544 72 216]
set tcp.meter 						h>36 [11 11 523 48 0 0 1 1] [11 28 523 14 0 0.5 1 0.5] 
	
; -     -     -     -     -     -     -     -     -     -     -     -     -     -     -     -     -     -     -

 	Layout 'e2 ------ Meter - name and number' 
	
	set tcp.label 						h>54 [1 2 541 19 0 0 1 0] + cm + +:0.2:1 [0 0 w{0}] [0 2 40 19 0 0 0 0]
		set tcp.label.margin 			[20 0 4 0 0]
		set tcp.label.color 			[174 186 191]
	set tcp.trackidx 					h>54 [0 5 20 14 0 0 0 0] + cm [0 5 20 14 0 0 0 0]
		set tcp.trackidx.margin 		[0 -1 0 1 0.5]
		set tcp.trackidx.color 			[0 0 0]	
		
	set label_rhs 		+ tcp.label{2} * +:-1:1 [tcp.size{0}] w tcp.label{6} 
		
	set tcp.meter 						h>54 [11 26 523 33 0 0 1 1] + +:-1:1 [0 0 label_rhs{0}] [label_rhs 0 w{0}] [8 28 -18 14 0 0.5 0 0.5]
	EndLayout ;

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


 	Layout 'e3 ------ Meter - name, number and core buttons'
	
	set cm  			h>66 [0 4 0 0 0 0 0 0] [0 24 0 0 0 0.5 0 0.5]
	
	set tcp.foldercomp 					h<67 [0] + cm [4 7 14 14 0 0 0 0]
	set tcp.folder 						folderstate==0 [0] h<67 [0] + cm [4 7 14 14 0 0 0 0]
	set tcp.label 						+ cm +:0.2:1 [0 0 w{0}] h<67 [0 2 40 19 0 0 0 0] [0 4 120 19 0 0 0 0]
		set tcp.label.margin 			h<67 [20 0 4 0 0] [38 0 4 0 0] 
		set tcp.label.color 			[174 186 191]
	set tcp.trackidx 					h>66 [18 11 20 14 0 0 0 0] + cm [0 5 20 14 0 0 0 0]
		set tcp.trackidx.margin 		[0 -1 0 1 0.5]
		set tcp.trackidx.color 			[0 0 0]	
		
	set label_rhs 		+ tcp.label{2} * +:-1:1 [tcp.size{0}] w tcp.label{6} 
	
	set remaining_gap 	+:-1:1 label_rhs w											; space for all the stuff

	set tcp.recarm 						h<67 [0] + cm + [label_rhs] [0 2 22 23 0 0 0 0] 
	set tcp.pan 						[0]
	set tcp.width 						[0]
	set tcp.recmon 						h<67 [0] remaining_gap{0}<182 [0] + cm [389 0 14 14 1 0 1 0]
	set tcp.phase 						h<67 [0] remaining_gap{0}<160 [0] + cm [411 0 14 14 1 0 1 0]
	set tcp.env 						[0]
	set tcp.io 							h<67 [0] remaining_gap{0}<138 [0] + cm [433 0 14 14 1 0 1 0]
	set tcp.fx 							h<67 [0] remaining_gap{0}<114 [0] + cm [455 0 14 14 1 0 1 0]
	set tcp.fxbyp 						h<67 [0] tcp.fx{0}==0 [0] + tcp.fx [16]
	set tcp.mute 						h<67 [0] remaining_gap{0}<78 [0] + cm [493 0 14 14 1 0 1 0]
	set tcp.solo 						h<67 [0] + cm [515 2 22 23 1 0 1 0]
	set tcp.volume.label 				tcp.volume{w}==0 [0] + cm + * maxfolderdepth [18] [7 27 45 9 0 0 0 0]
		set tcp.volume.label.margin 	[0 0 0 0 0.5]
		set tcp.volume.label.color 		[146 156 160] 
	set tcp.pan.label 					tcp.pan{x}==0 [0] + cm + [tcp.pan] [-10 27 31 9 0 0 0 0]
		set tcp.pan.label.color 		trackpanmode==6 [220 100 100] [146 156 160] 
		set tcp.pan.label.margin 		[0 0 0 0 1]
	set tcp.width.label 				trackpanmode<5 [0] tcp.width{x}==0 [0] + cm + [tcp.width] [0 27 31 9 0 0 0 0]
		set tcp.width.label.color 		trackpanmode==6 [100 200 100] [0 0 0]
		set tcp.width.label.margin 		[0 0 0 0 0]
	set tcp.recinput 					[0]
	set tcp.fxin 						[0]
	set tcp.recmode 					[0] 
	set tcp.fxparm						[0]  	
	set tcp.meter 						h>66 [11 40 523 19 0 0 1 1] + +:-1:1 [0 0 label_rhs{0}] [label_rhs 0 w{0}] [8 28 -18 14 0 0.5 0 0.5]
	EndLayout ;

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

EndLayout ;

Layout 'f1 -- Automator'
set cm  			h>28 [0 4 0 0 0 0 0 0] [0 24 0 0 0 0.5 0 0.5] 				; low height y-axis compression slickness
set eff_w			+:-1:1 * maxfolderdepth [18] w								; effective width after folder stuff
set less_than_max	+:-1:1 tcp.size{0} eff_w{0}									; how much is the effective width reduced from its maximum?

set tcp.foldercomp 					+ cm + * folderdepth [18] [4 5 14 14 0 0 0 0]
set tcp.folder 						+ cm folderstate==0 [0] + * folderdepth [18] [-14 5 14 14 0 0 0 0] 
set tcp.trackidx 					+ cm +:maxfolderdepth:1 [18] [0 5 20 14 0 0 0 0]
set tcp.volume 						+ cm + * maxfolderdepth [18] eff_w{0}<229 [0] [18 0 22 22 0 0 0 0]
set tcp.label 						+ cm eff_w{0}>498 [0 1 270 21 0 0 1 0] + * maxfolderdepth [0 0 18] + * [0 0 0.3] [0 0 less_than_max{0}] eff_w{0}>208 [0 1 240 21 0 0 0 0] [0 1 260 21 0 0 0 0]
	
set label_rhs 		+ tcp.label{2} * +:-1:1 [tcp.size{0}] w tcp.label{6} 		; locate the resulting right edge of the label
set remaining_gap 	+:-1:1 label_rhs w											; space for all the stuff

set tcp.recarm 						remaining_gap{0}<240 [0] + cm + [label_rhs] [0 0 22 23 0 0 0 0] 
set tcp.pan 						+ cm remaining_gap{0}<70 [0] + [label_rhs] + [26 0 22 22 0 0 0 0] remaining_gap{0}<240 [-22] [0]
set tcp.width 						trackpanmode<5 [0] + cm remaining_gap{0}<91 [0] + [label_rhs] + [50 0 22 22 0 0 0 0] remaining_gap{0}<240 [-22] [0]

set pan_space		+ remaining_gap + remaining_gap{0}<240 [26] [4] trackpanmode<5 [25] [0]						; for using the space if the width knob isn't there

set tcp.recmon 						pan_space{0}<266 [0] + cm [357 5 14 14 1 0 1 0]
set tcp.phase 						pan_space{0}<244 [0] + cm [379 5 14 14 1 0 1 0]
set tcp.io 							pan_space{0}<222 [0] + cm [423 5 14 14 1 0 1 0]
set tcp.env 						pan_space{0}<200 [0] + cm  pan_space{0}<222 [423 5 14 14 1 0 1 0] [401 5 14 14 1 0 1 0]
set tcp.fx 							pan_space{0}<176 [0] + cm [445 5 14 14 1 0 1 0]
set tcp.fxbyp 						tcp.fx{0}==0 [0] + tcp.fx [16]
set tcp.mute 						pan_space{0}<144 [0] + cm [483 5 14 14 1 0 1 0]
set tcp.solo 						+ cm [505 0 22 23 1 0 1 0]
set tcp.volume.label 				tcp.volume{w}==0 [0] + cm + * maxfolderdepth [18] [7 27 45 9 0 0 0 0]
set tcp.pan.label 					tcp.pan{x}==0 [0] + cm + [tcp.pan] [-10 27 31 9 0 0 0 0]
set tcp.width.label 				trackpanmode<5 [0] tcp.width{x}==0 [0] + cm + [tcp.width] [0 27 31 9 0 0 0 0]
set tcp.recinput 					tcp.recarm{w}<=0 [0] + maxfolderdepth==0 [6 0 -6] [0] h<47 [0] + [20 0 label_rhs{0}] * + [0 0 tcp.trackidx{0}] [1 1 20 1 1 1 1 1] [tcp.trackidx 46 -1 18 0 0 0 0]
set tcp.fxin 						tcp.recinput{w}<=0 [0] + [tcp.recinput tcp.recinput] [-20 2 14 14 0 0 0 0]
set tcp.recmode 					tcp.recinput{w}<=0 [0] [tcp.recarm tcp.recinput 22 21 0 0 0 0] 
set tcp.fxparm						+ maxfolderdepth==0 [8 0 -8] [0] +:maxfolderdepth:1 [18 0 -18] + [0 0 w{0}] [0 74 -20 -11 0 0 0 1]  
set tcp.meter 						!0 [532 0 12 71 1 0 1 1] 


 	Layout 'f2 ------ Automator (medium track name)'
	
	set tcp.size 						+:maxfolderdepth:1 [0 0 18] [544 72 157]	

	set tcp.volume 						+ cm + * maxfolderdepth [18] eff_w{0}<189 [0] [18 0 22 22 0 0 0 0]
	set tcp.label 						+ cm eff_w{0}>460 [0 1 270 21 0 0 1 0] + * maxfolderdepth [0 0 18] + * [0 0 0.3] [0 0 less_than_max{0}] eff_w{0}>178 [0 1 210 21 0 0 0 0] [0 1 230 21 0 0 0 0]
		set tcp.label.margin 			+:maxfolderdepth:1 [18] eff_w{0}<189 [20 0 4 0 0] [42 0 4 0 0]
			
	set label_rhs 		+ tcp.label{2} * +:-1:1 [tcp.size{0}] w tcp.label{6}
	set remaining_gap 	+:-1:1 label_rhs w

	set tcp.recarm 						remaining_gap{0}<240 [0] + cm + [label_rhs] [0 0 22 23 0 0 0 0] 
	set tcp.pan 						+ cm remaining_gap{0}<70 [0] + [label_rhs] + [26 0 22 22 0 0 0 0] remaining_gap{0}<240 [-22] [0]
	set tcp.width 						trackpanmode<5 [0] + cm remaining_gap{0}<91 [0] + [label_rhs] + [50 0 22 22 0 0 0 0] remaining_gap{0}<240 [-22] [0]

	set pan_space		+ remaining_gap + remaining_gap{0}<240 [26] [4] trackpanmode<5 [25] [0]						; for using the space if the width knob isn't there

	set tcp.recmon 						pan_space{0}<266 [0] + cm [357 5 14 14 1 0 1 0]
	set tcp.phase 						pan_space{0}<244 [0] + cm [379 5 14 14 1 0 1 0]
	set tcp.io 							pan_space{0}<222 [0] + cm [423 5 14 14 1 0 1 0]
	set tcp.env 						pan_space{0}<200 [0] + cm  pan_space{0}<222 [423 5 14 14 1 0 1 0] [401 5 14 14 1 0 1 0]
	set tcp.fx 							pan_space{0}<176 [0] + cm [445 5 14 14 1 0 1 0]
	set tcp.fxbyp 						tcp.fx{0}==0 [0] + tcp.fx [16]
	set tcp.mute 						pan_space{0}<144 [0] + cm [483 5 14 14 1 0 1 0]
	set tcp.solo 						+ cm [505 0 22 23 1 0 1 0]
	set tcp.volume.label 				tcp.volume{w}==0 [0] + cm + * maxfolderdepth [18] [7 27 45 9 0 0 0 0]
	set tcp.pan.label 					tcp.pan{x}==0 [0] + cm + [tcp.pan] [-10 27 31 9 0 0 0 0]
	set tcp.width.label 				trackpanmode<5 [0] tcp.width{x}==0 [0] + cm + [tcp.width] [0 27 31 9 0 0 0 0]
	set tcp.recinput 					tcp.recarm{w}<=0 [0] + maxfolderdepth==0 [6 0 -6] [0] h<47 [0] + [20 0 label_rhs{0}] * + [0 0 tcp.trackidx{0}] [1 1 20 1 1 1 1 1] [tcp.trackidx 46 -1 18 0 0 0 0]
	set tcp.fxin 						tcp.recinput{w}<=0 [0] + [tcp.recinput tcp.recinput] [-20 2 14 14 0 0 0 0]
	set tcp.recmode 					tcp.recinput{w}<=0 [0] [tcp.recarm tcp.recinput 22 21 0 0 0 0] 
	set tcp.fxparm						+ maxfolderdepth==0 [8 0 -8] [0] +:maxfolderdepth:1 [18 0 -18] + [0 0 w{0}] [0 74 -20 -11 0 0 0 1]  

	EndLayout ;

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


 	Layout 'f3 ------ Automator (short track name)'
	
	set tcp.size 						+:maxfolderdepth:1 [0 0 18] [544 72 108]	

	set tcp.volume 						+ cm + * maxfolderdepth [18] eff_w{0}<159 [0] [18 0 22 22 0 0 0 0]
	set tcp.label 						+ cm eff_w{0}>416 [0 1 270 21 0 0 1 0] + * maxfolderdepth [0 0 18] + * [0 0 0.3] [0 0 less_than_max{0}] eff_w{0}>148 [0 1 180 21 0 0 0 0] [0 1 200 21 0 0 0 0]
		set tcp.label.margin 			+:maxfolderdepth:1 [18] eff_w{0}<159 [20 0 4 0 0] [42 0 4 0 0]
			
	set label_rhs 		+ tcp.label{2} * +:-1:1 [tcp.size{0}] w tcp.label{6}
	set remaining_gap 	+:-1:1 label_rhs w

	set tcp.recarm 						remaining_gap{0}<240 [0] + cm + [label_rhs] [0 0 22 23 0 0 0 0] 
	set tcp.pan 						+ cm remaining_gap{0}<70 [0] + [label_rhs] + [26 0 22 22 0 0 0 0] remaining_gap{0}<240 [-22] [0]
	set tcp.width 						trackpanmode<5 [0] + cm remaining_gap{0}<91 [0] + [label_rhs] + [50 0 22 22 0 0 0 0] remaining_gap{0}<240 [-22] [0]

	set pan_space		+ remaining_gap + remaining_gap{0}<240 [26] [4] trackpanmode<5 [25] [0]						; for using the space if the width knob isn't there

	set tcp.recmon 						pan_space{0}<266 [0] + cm [357 5 14 14 1 0 1 0]
	set tcp.phase 						pan_space{0}<244 [0] + cm [379 5 14 14 1 0 1 0]
	set tcp.io 							pan_space{0}<222 [0] + cm [423 5 14 14 1 0 1 0]
	set tcp.env 						pan_space{0}<200 [0] + cm  pan_space{0}<222 [423 5 14 14 1 0 1 0] [401 5 14 14 1 0 1 0]
	set tcp.fx 							pan_space{0}<176 [0] + cm [445 5 14 14 1 0 1 0]
	set tcp.fxbyp 						tcp.fx{0}==0 [0] + tcp.fx [16]
	set tcp.mute 						pan_space{0}<144 [0] + cm [483 5 14 14 1 0 1 0]
	set tcp.solo 						+ cm [505 0 22 23 1 0 1 0]
	set tcp.volume.label 				tcp.volume{w}==0 [0] + cm + * maxfolderdepth [18] [7 27 45 9 0 0 0 0]
	set tcp.pan.label 					tcp.pan{x}==0 [0] + cm + [tcp.pan] [-10 27 31 9 0 0 0 0]
	set tcp.width.label 				trackpanmode<5 [0] tcp.width{x}==0 [0] + cm + [tcp.width] [0 27 31 9 0 0 0 0]
	set tcp.recinput 					tcp.recarm{w}<=0 [0] + maxfolderdepth==0 [6 0 -6] [0] h<47 [0] + [20 0 label_rhs{0}] * + [0 0 tcp.trackidx{0}] [1 1 20 1 1 1 1 1] [tcp.trackidx 46 -1 18 0 0 0 0]
	set tcp.fxin 						tcp.recinput{w}<=0 [0] + [tcp.recinput tcp.recinput] [-20 2 14 14 0 0 0 0]
	set tcp.recmode 					tcp.recinput{w}<=0 [0] [tcp.recarm tcp.recinput 22 21 0 0 0 0] 
	set tcp.fxparm						+ maxfolderdepth==0 [8 0 -8] [0] +:maxfolderdepth:1 [18 0 -18] + [0 0 w{0}] [0 74 -20 -11 0 0 0 1] 
	EndLayout ;

; -     -     -     -     -     -     -     -     -     -     -     -     -     -     -     -     -     -     -	
	
EndLayout ;	


Layout 'g1 -- Legacy'
clear tcp.*
set tcp.size 						+:maxfolderdepth:1 [0 0 18] [544 72 200]

set cm  			h>28 [0 4 0 0 0 0 0 0] [0 24 0 0 0 0.5 0 0.5] 				; low height y-axis compression slickness
set eff_w			+:-1:1 * maxfolderdepth [18] w								; effective width after folder stuff
set less_than_max	+:-1:1 tcp.size{0} eff_w{0}									; how much is the effective width reduced from its maximum?

front 								tcp.trackidx tcp.foldercomp tcp.folder tcp.recarm tcp.fxin
set tcp.margin 						+:folderdepth:1 [-18]
set tcp.foldercomp 					+ cm + * folderdepth [18] [4 5 14 14 0 0 0 0]
set tcp.folder 						+ cm folderstate==0 [0] + * folderdepth [18] [-14 5 14 14 0 0 0 0] 
set tcp.trackidx 					+ cm +:maxfolderdepth:1 [18] [0 5 20 14 0 0 0 0]
	set tcp.trackidx.margin 		[0 -1 0 1 0.5]
	set tcp.trackidx.font			[1]
	set tcp.trackidx.color 			[0 0 0]
set tcp.volume 						+ cm + * maxfolderdepth [18] eff_w{0}<229 [0] [18 0 22 22 0 0 0 0]
	set tcp.volume.fadermode 		[1]
	set tcp.volume.color 			[0 0 0 220]
set tcp.label 						+ cm eff_w{0}>498 [0 1 270 21 0 0 1 0] + * maxfolderdepth [0 0 18] + * [0 0 0.3] [0 0 less_than_max{0}] [0 1 240 21 0 0 0 0]
	set tcp.label.margin 			+:maxfolderdepth:1 [18] eff_w{0}<229 [20 0 4 0 0] [42 0 4 0 0]
	set tcp.label.color 			[174 186 191]
	
set label_rhs 		+ tcp.label{2} * +:-1:1 [tcp.size{0}] w tcp.label{6} 		; locate the resulting right edge of the label
set remaining_gap 	+:-1:1 label_rhs w											; space for all the stuff
set pan_space		+ remaining_gap trackpanmode<5 [25] [0]						; for using the space if the width knob isn't there

set tcp.recarm 						+ cm + [label_rhs] [0 0 22 23 0 0 0 0] 
set tcp.pan 						+ cm remaining_gap{0}<91 [0] + [label_rhs] [26 0 22 22 0 0 0 0]
	set tcp.pan.color 				trackpanmode==6 [255 160 160] [200 200 200]
	set tcp.pan.fadermode 			[1]
set tcp.width 						trackpanmode<5 [0] + cm remaining_gap{0}<113 [0] + [label_rhs] [50 0 22 22 0 0 0 0]
	set tcp.width.color 			trackpanmode<5 [99 123 135] trackpanmode==6 [128 255 170] [200 200 200]
	set tcp.width.fadermode 		[1]
set tcp.recmon 						pan_space{0}<266 [0] + cm [357 5 14 14 1 0 1 0]
set tcp.phase 						pan_space{0}<244 [0] + cm [379 5 14 14 1 0 1 0]
set tcp.env 						trackpanmode<5 pan_space{0}<240 [0] + cm [401 5 14 14 1 0 1 0] pan_space{0}<222 [0] + cm [401 5 14 14 1 0 1 0]
set tcp.io 							pan_space{0}<200 [0] + cm [423 5 14 14 1 0 1 0]
set tcp.fx 							pan_space{0}<176 [0] + cm [445 5 14 14 1 0 1 0]
set tcp.fxbyp 						tcp.fx{0}==0 [0] + tcp.fx [16]
set tcp.mute 						pan_space{0}<140 [0] + cm [483 5 14 14 1 0 1 0]
set tcp.solo 						+ cm [505 0 22 23 1 0 1 0]
set tcp.volume.label 				tcp.volume{w}==0 [0] + cm + * maxfolderdepth [18] [7 27 45 9 0 0 0 0]
	set tcp.volume.label.margin 	[0 0 0 0 0.5]
	set tcp.volume.label.color 		[146 156 160] 
set tcp.pan.label 					tcp.pan{x}==0 [0] + cm + [tcp.pan] [-10 27 31 9 0 0 0 0]
	set tcp.pan.label.color 		trackpanmode==6 [220 100 100] [146 156 160] 
	set tcp.pan.label.margin 		[0 0 0 0 1]
set tcp.width.label 				trackpanmode<5 [0] tcp.width{x}==0 [0] + cm + [tcp.width] [0 27 31 9 0 0 0 0]
	set tcp.width.label.color 		trackpanmode==6 [100 200 100] [0 0 0]
	set tcp.width.label.margin 		[0 0 0 0 0]
set tcp.recinput 					+ maxfolderdepth==0 [6 0 -6] [0] h<47 [0] + [20 0 label_rhs{0}] * + [0 0 tcp.trackidx{0}] [1 1 20 1 1 1 1 1] [tcp.trackidx 46 -1 18 0 0 0 0]
 		set tcp.recinput.color 		?recarm [255 100 100] [146 156 160]
		set tcp.recinput.margin 	[9 0 20 0 0]
set tcp.fxin 						tcp.recinput{w}<=0 [0] + [tcp.recinput tcp.recinput] [-20 2 14 14 0 0 0 0]
set tcp.recmode 					tcp.recinput{w}<=0 [0] [tcp.recarm tcp.recinput 22 21 0 0 0 0] 
set tcp.fxparm						+ maxfolderdepth==0 [8 0 -8] [0] +:maxfolderdepth:1 [18 0 -18] + [0 0 w{0}] [0 74 -20 -11 0 0 0 1]  
set tcp.meter 						!0 [532 0 12 71 1 0 1 1]
EndLayout

 	Layout 'a1 -- Default'
	
	set master.tcp.meter					. 

	EndLayout ;
	
	
	
	Layout 'd1 -- Meter - Full' 'tracking'
		
	clear master.tcp.*

	set master.tcp.margin 						+:folderdepth:1 [-18]
	set master.tcp.size 						[544 72 216]
	set master.tcp.meter 						[11 11 523 48 0 0 1 1] 
	
	EndLayout ;
	
#<


#>------------------------- MASTER TRACK CONTROL PANEL --------------------------------


clear master.tcp.*
set master.tcp.size 						[544 72 200]
set master.tcp.meter 						h<110 [532 0 12 71 1 0 1 1] [5 75 526 -5 0 0 1 1]
set master.tcp.volume 						w<252 [5 5 495 20 0 0 1 0] +:0.5:1 [0 0 less_than_max{0}] [5 5 360 20 0 0 0 0]
	set master.tcp.volume.fadermode 			[0]
	set master.tcp.volume.color 				[. . . . 255 255 255 75]
set master.tcp.label 						master.tcp.volume 
	set master.tcp.label.margin 				[-10000 -10000]	
		
set label_rhs 		+ 10 + master.tcp.label{2} * +:-1:1 [master.tcp.size{0}] w master.tcp.label{6} 	; locate the resulting right edge of the label, plus mono button space bump
set remaining_gap 	+:-1:1 label_rhs w																; space for all the stuff
set pan_space		+ remaining_gap [25]															; for using the space if the width knob isn't there	
		
set master.tcp.pan 							+ cm remaining_gap{0}<91 [0] + [label_rhs] [26 0 22 22 0 0 0 0]
	set master.tcp.pan.color 					[200 200 200]
	set master.tcp.pan.fadermode 				[1]	
set master.tcp.mono 						master.tcp.pan{w}==0 [0] + [label_rhs] [0 4 22 23 0 0 0 0] 	
	
set master.tcp.env 							trackpanmode<5 pan_space{0}<240 [0] + cm [401 5 14 14 1 0 1 0] pan_space{0}<222 [0] + cm [401 5 14 14 1 0 1 0]
set master.tcp.io 							pan_space{0}<200 [0] + cm [423 5 14 14 1 0 1 0]
set master.tcp.fx 							pan_space{0}<176 [0] + cm [445 5 14 14 1 0 1 0]
set master.tcp.fxbyp 						master.tcp.fx{0}==0 [0] + master.tcp.fx [16]
set master.tcp.mute 						pan_space{0}<140 [0] + cm [483 5 14 14 1 0 1 0]
set master.tcp.solo 						[505 4 22 23 1 0 1 0]

set master.tcp.volume.label 				[14 36 60 9 0 0 0 0]
	set master.tcp.volume.label.margin 		[0 0 0 0 0]
	set master.tcp.volume.label.color 		[146 156 160] 
set master.tcp.pan.label 					master.tcp.pan{w}==0 [0] + cm + [master.tcp.pan] [-10 46 31 9 0 0 0 0]
	set master.tcp.pan.label.color 			[146 156 160] 
	set master.tcp.pan.label.margin 		[0 0 0 0 0.5]

#<
#>---------------------------- MIXER CONTROL PANELS -----------------------------------

; ---------------------------------------------------------------------------------------------------------
; imageshift : a macro for choosing which frame of an imagestrip to show based on a yes/no variables like 'recarm'.
; The imagestrip should be set up with each frame having a width that is the same as the panel width set in mcp.size.
; The unwanted frames are therefore pushed off the edges of the panel.
; 		element 	= the element we're going to imageshift.
; 		variable 	= a variable we're going to use to pick a different frame.
; 		frame		= the frame that will be shown when the variable is true.
; 		totalframes	= total number of frames in the imagestrip
; ---------------------------------------------------------------------------------------------------------

; macro imageshift element variable frame totalframes
; def count 			element##_cnt
; set total_w 		+ element{w} * mcp.size{0} - totalframes 1
; set base_element 	count{0}>0 . [element element total_w element element element element element]
; set frameshift		* mcp.size{0} - frame 1
; set element 		?variable{0} - base_element [frameshift] count{0}>0 . base_element
; set count 			+ count [1]
; endmacro

macro imageshift element variable frame totalframes
def count                       element##_cnt
def base_element element##_base
set total_w             + element{w} * mcp.size{0} - totalframes 1
set base_element        count{0}>0 . [element element total_w element element element element element]
set frameshift          * mcp.size{0} - frame 1
set element             ?variable{0} - base_element [frameshift] count{0}>0 . base_element
set count                       + count [1]
endmacro

; ---------------------------------------------------------------------------------------------------------
; marginshift is the corresponding margin tweaker for the text of elements that have had imageshift used on them.
; ---------------------------------------------------------------------------------------------------------
; macro marginshift element variable frame totalframes
; def count 			element##_cnt
; set base_element 	count{0}>0 . + [element element element element element] * [0 0 mcp.size{0}] - totalframes 1
; set frameshift		* mcp.size{0} - frame 1
; set element 		?variable{0} + base_element * [1 0 -1] frameshift count{0}>0 . base_element
; set count 			+ count [1]
; endmacro

macro marginshift element variable frame totalframes
def count                       element##_cnt
def base_element element##_base
set base_element        count{0}>0 . + [element element element element element] * [0 0 mcp.size{0}] - totalframes 1
set frameshift          * mcp.size{0} - frame 1
set element             ?variable{0} + base_element * [1 0 -1] frameshift count{0}>0 . base_element
set count                       + count [1]
endmacro

macro draw_extmixer
set need_extmix_h							+ 4 mcp_wantextmix<=2 38 mcp_wantextmix==3 68 mcp_wantextmix==4 40 mcp_wantextmix==5 61 mcp_wantextmix==6 73 mcp_wantextmix==7 87 
set have_extmix_h							- - - - - - - h 400 block_top{h} block_auto{h} block_fx{h} block_recmode{h} block_monitor{h} block_pan{h}
set lost_extmixer							have_extmix_h{0}<need_extmix_h{0} 1 0
set block_extmixer							+ + [0 block_top{h}] [0 block_auto{h}] [0 block_fx{h}] ; find the starting point
set block_extmixer							- - - - - [0 block_extmixer 74 h] [0 0 0 400] [0 0 0 block_extmixer{1}] [0 0 0 block_recmode{h}] [0 0 0 block_monitor{h}] [0 0 0 block_pan{h}] ; then find the height
endmacro


macro draw_mcp
clear mcp.*
reset_counts
set luma                     				+ + * 0.299 [trackcolor_r] * 0.587 [trackcolor_g] * 0.114 [trackcolor_b]
set mcp.size 								[94 874 0 397]
set h_delta									- h mcp.size{y} 
set block_top								[0 0 0 172]
set block_auto								h<dividers_hide{0} [0 0 0 22] [0 0 0 29]
set block_fx								[0 0 0 45]
set block_monitor							[0 0 0 71]
set block_recmode							h<dividers_hide{0} [0 0 0 26] [0 0 0 38]
set block_pan								[0 0 0 93]
draw_extmixer
set block_auto								?lost_extmixer{0} [0] [0 block_top{h} 94 block_auto{h}]
draw_extmixer
set block_fx								?lost_extmixer{0} [0] + [0 block_auto{h} 94 block_fx] [0 block_top{h}]
draw_extmixer
set block_recmode							?lost_extmixer{0} [0] + - - [0 h] [0 400] [0 block_pan{h}] * [0 -1 0 1] block_recmode{h}  
draw_extmixer	
set block_monitor							?lost_extmixer{0} [0] + - - - [0 h] [0 400] [0 block_recmode{h}] [0 block_pan{h}] * [0 -1 0 1] block_monitor{h}
draw_extmixer
set block_top								?lost_extmixer{0} [0] [0 0 94 block_top]
draw_extmixer
set block_pan								?lost_extmixer{0} [0] + - [0 h] [0 400] * [0 -1 0 1] block_pan{h} 
draw_extmixer
front 										mcp.volume.label mcp.fxbyp
set mcp.volume.label	 					block_top{h}<1 [0] [52 22 37 7]
	set mcp.volume.label.margin 			[0 0 0 0 0.5]
	set mcp.volume.label.color 				[30 150 168] 
set mcp.meter 							    block_top{h}<1 [0] [6 6 38 88]
	set mcp.meter.vu.div 					tracknch<3 [4 0] [1 -1]
	set mcp.meter.readout.color 			[168 103 80 150 224 110 79 255]
	set mcp.meter.scale.color.unlit.top 	?recarm [255 0 0 255 0 0 0 255] [64 22 0 0]
	set mcp.meter.scale.color.unlit.bottom 	?recarm [255 0 89 255 0 0 0 255] [33 0 10 0]
	set mcp.meter.scale.color.lit.top 		?recarm [255 0 0 255 0 0 0 255] [255 89 0 255 0 0 0 150]
	set mcp.meter.scale.color.lit.bottom 	?recarm [255 0 89 255 0 0 0 255] [128 0 38 255 0 0 0 150]
set mcp.recinput 							block_top{h}<1 [0] [4 100 85 11]
	imageshift 								mcp.recinput  recarm 2 2
	set mcp.recinput.margin 				[0 0 0 0 0.5]
	marginshift 							mcp.recinput.margin recarm 2 2
	set mcp.recinput.color 					?recarm [255 60 60] [66 113 127]
set mcp.io 									block_top{h}<1 [0] [18 138 16 16]
set mcp.fxin 								block_top{h}<1 [0] [61 135 21 21]
set mcp.env 								block_auto{h}<1 [0] + [0 block_auto] block_auto{h}<27 [9 0 76 23] [9 0 76 30]
set mcp.fx 									block_fx{h}<1 [0] + [0 block_fx] block_auto{h}<27 [10 0 73 32] [10 0 73 38]
    set mcp.fxbyp 							block_fx{h}<1 [0] + [0 block_fx] block_auto{h}<27 [66 3 16 16] [66 9 16 16]
set mcp.extmixer.mode 						[1]
	set mcp.extmixer.position				+ block_extmixer [10 2 0 -2]
set mcp.recmon 								block_monitor{h}<1 [0] + [0 block_monitor] [16 55 21 21]
set mcp.recarm 								block_monitor{h}<1 [0] + [0 block_monitor] [50 21 34 22]
set mcp.recmode 							block_recmode{h}<1 [0] + [0 block_recmode] block_recmode{h}<38 [8 0 77 33] [8 4 77 35]
set mcp.pan 								block_pan{h}<1 [0] + [0 block_pan] trackpanmode<4 [26 25 42 42] trackpanmode==6 [12 35 28 28] [9 23 75 19]
	set mcp.pan.fadermode 					trackpanmode==5 [0] [1] 
	set mcp.pan.color 						[204 204 204 255]
	set mcp.pan.label 						block_pan{h}<1 [0] + [0 block_pan] trackpanmode<4 [31 74 32 10] trackpanmode==6 [11 72 30 10] [51 7 31 10]
	set mcp.pan.label.color 				[30 150 168]
	set mcp.pan.label.margin 				[0 0 0 0 0.5] 
set mcp.width 								block_pan{h}<1 [0] + [0 block_pan] trackpanmode==5 [9 65 75 19] trackpanmode==6 [53 35 28 28] [0]
	set mcp.width.fadermode 				trackpanmode==6 [1] [0]
	set mcp.width.color 					[204 204 204 255]
	set mcp.width.label 					block_pan{h}<1 [0] + [0 block_pan] trackpanmode==5 [51 49 32 10] trackpanmode==6 [51 72 32 10] [0]
	set mcp.width.label.color 				[30 150 168]
	set mcp.width.label.margin 				[0 0 0 0 0.5]
set mcp.label 								[0 476 94 18 0 1 0 1]
  	imageshift 								mcp.label trackcolor_valid 3 3		
	imageshift 								mcp.label recarm 2 3	
set mcp.label.margin 						[5 1 5 1 0.5]	
	marginshift 							mcp.label.margin trackcolor_valid 3 3
	marginshift 							mcp.label.margin recarm 2 3
	set mcp.label.color 					?recarm [255 180 180] ?trackcolor_valid + [trackcolor_r trackcolor_g trackcolor_b] [100 100 100] [128 251 255]
	set mcp.label.font                  	[4]
set mcp.volume 								[22 556 30 306 0 1 0 1]
set mcp.phase 								[71 572 14 14 0 1 0 1]
set mcp.mute 								[71 608 14 14 0 1 0 1]
set mcp.solo 								[47 507 35 35 0 1 0 1]
set mcp.folder 								+ + folderstate<0 [0 18] [0] * folderdepth [0 -18] [65 770 26 32 0 1 0 1]
set mcp.trackidx 							[56	851	29 17 0 1 0 1]
	set mcp.trackidx.margin 				[0 0 0 0 1]
	set mcp.trackidx.color 					?recarm [200 30 30] [204 204 204]
	set mcp.trackidx.font                  	[3]
endmacro

macro fader_layout prefix colour path	
	Layout 'prefix## colour## Fader' 'path##_fader'
	set mcp.volume .
	EndLayout ;
endmacro

macro make_fader_layouts prefix path
	fader_layout prefix Black path##black	
	fader_layout prefix Blue path##blue
	fader_layout prefix Green path##green
	fader_layout prefix Red path##red
	fader_layout prefix Yellow path##yellow
endmacro

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

; This mixer is designed to be used full screen. No resizing WALTER should ever be needed.
; You are going to use it full screen, right? What, no? Oh come on. *Sigh* OK, lets fix that...

set dividers_hide									960 ; height below which to hide the dividers

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

draw_mcp	

Layout 'a1-- Default'
	draw_mcp	
	make_fader_layouts a1------ /
	EndLayout ;
	
Layout 'a3-- Black Lower' 'black'
	set mcp.volume 				.
	set mcp.trackidx 			.
	set mcp.trackidx.color 		?recarm [200 30 30] [80 80 80]
	
	; make_fader_layouts "a3------"black/
EndLayout ;
	

Layout 'a4-- All Colour' 'all_colour'
	
draw_mcp
set mcp.trackidx 							[0 851 88 17 0 1 0 1]
	set luma_low							luma{x}>140 1 0
	imageshift 								mcp.trackidx  luma_low 2 2
	set mcp.trackidx.margin 				[0 0 4 0 1]
	marginshift 							mcp.trackidx.margin luma_low 2 2
	colorsmart                 				 mcp.trackidx.color 130 130 130 trackcolor_r trackcolor_g trackcolor_b trackcolor_r trackcolor_g trackcolor_b 1
	
	; make_fader_layouts "a4------"all_colour/
EndLayout ;
	
	
Layout 'a5-- None_More_Black' 'none_more_black'
draw_mcp
set mcp.trackidx 							[0	851	88	17 0 1 0 1]
	imageshift 								mcp.trackidx  trackcolor_valid 2 4
	set mcp.trackidx.margin 				[0 0 4 0 1]
	marginshift 							mcp.trackidx.margin trackcolor_valid 2 4
	set mcp.trackidx.color 					?recarm [200 30 30] ?trackcolor_valid [trackcolor_r trackcolor_g trackcolor_b] [80 80 80]
		
	make_fader_layouts "a5------"none_more_black/
EndLayout ;	

Layout 'a5------ Vulgarian' 'none_more_black/vulgarian'
draw_mcp
set mcp.trackidx 							[0	851	88	17 0 1 0 1]
	imageshift 								mcp.trackidx  trackcolor_valid 3 4
	set mcp.trackidx.margin 				[0 0 4 0 1]
	marginshift 							mcp.trackidx.margin trackcolor_valid 3 4
	set mcp.trackidx.color 					?recarm [200 30 30] ?trackcolor_valid [trackcolor_r trackcolor_g trackcolor_b] [80 80 80]

EndLayout ;	
	
Layout 'e1-- Stockholm' 'stockholm'

draw_mcp
front mcp.pan.label mcp.trackidx mcp.width mcp.width.label
set mcp.io 									block_top{h}<1 [0] [15 123 21 19]
set mcp.fxin 								block_top{h}<1 [0] [48 116         38 42]
set mcp.env 								block_auto{h}<1 [0] + [0 block_auto] block_auto{h}<27 [0 0 93 23] [0 0 93 29]
set mcp.fx 									block_insert{h}<1 [0] h<fx_h{x} [0] + [0 block_insert] block_auto{h}<27 [0 0 93 40] [0 0 93 45]
	set mcp.fxbyp 							block_insert{h}<1 [0] h<fx_h{x} [0] + [0 block_insert] block_auto{h}<27 [38 7 42 26] [38 13 42 26]
set mcp.extmixer.position 					block_insert{h}<1 [0] + [0 block_insert 0 block_insert] h<fx_h{x} [6 2 81 -6] mcp.fx{h}<44 [6 41 81 -40] [6 47 81 -51]
	set mcp.sendlist.margin					[4 0 3 0 0]
	set mcp.fxparm.margin					[0 0 3 0 1]
set mcp.recmon 								block_monitor{h}<1 [0] + [0 block_monitor] block_recmode{h}<38 [0 0 93 80] [0 0 93 84]
set mcp.recarm 								block_monitor{h}<1 [0] + [0 block_monitor] [55 12 25 27]
set mcp.recmode 							block_recmode{h}<1 [0] + [0 block_recmode] block_recmode{h}<38 [0 9 93 24] [0 13 93 25]
set mcp.pan 								block_pan{h}<1 [0] + [0 block_pan] trackpanmode<4 [32 25 49 49] trackpanmode==6 [21 48 20 20] [7 21 78 15]
	set mcp.pan.label 						block_pan{h}<1 [0] + [0 block_pan] trackpanmode<4 [40 75 32 10] trackpanmode==6 [11 75 30 10] [51 6 31 10]
	set mcp.pan.label.color 				[102 102 102]
	set mcp.pan.label.margin 				trackpanmode==5 [0 0 0 0 1] [0 0 0 0 0.5]
set mcp.width 								block_pan{h}<1 [0] + [0 block_pan] trackpanmode==5 [7 68 78 15] trackpanmode==6 [53 48 20 20] [0] 
	set mcp.width.label 					block_pan{h}<1 [0] + [0 block_pan] trackpanmode==5 [51 53 32 18] trackpanmode==6 [51 75 32 10] [0]
	set mcp.width.label.color 				mcp.pan.label.color
	set mcp.width.label.margin 				trackpanmode==5 [0 0 0 8 1] [0 0 0 0 0.5]
set mcp.solo 								[62 516 19 19 0 1 0 1]
set mcp.mute 								[69 608 15 14 0 1 0 1]
set mcp.phase 								[70 573 13 13 0 1 0 1] 
set mcp.trackidx 							[0	851	88	17 0 1 0 1]
	set mcp.trackidx.margin 				[0 0 4 0 1]
	set mcp.trackidx.color 					?recarm [200 30 30] ?trackcolor_valid [trackcolor_r trackcolor_g trackcolor_b] [128 128 128]



	
	Layout 'e2------Stockholm B' 'stockholm/stockholm_b'
	front mcp.trackidx mcp.volume mcp.extmixer.position mcp.label mcp.pan mcp.pan.label mcp.recmon mcp.recmode mcp.recarm mcp.width mcp.width.label
	
	set mcp.volume .
	set mcp.trackidx 							[0	851	88	17 0 1 0 1]
		imageshift 								mcp.trackidx  trackcolor_valid 2 2
		set mcp.trackidx.margin 				[0 0 4 0 1]
		marginshift 							mcp.trackidx.margin trackcolor_valid 2 2
		set mcp.trackidx.color 					?recarm [200 30 30] ?trackcolor_valid [trackcolor_r trackcolor_g trackcolor_b] [80 80 80]
	
	EndLayout ;
EndLayout ;

Layout 'b1 -- Sidecar' 'sidecar'

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

; Rank the order of importance for elements in this layout. Highest numbers will be hidden first.
; (If a large element is hidden, leaving enough space for a previously hidden smaller element, the smaller element will use the space.)

def rank_1 			block_solo_arm	; Solo and Arm buttons
def rank_5 			block_monitor	; Monitoring selector
def rank_4 			block_source	; Source switch
def rank_8 			block_env		; Automation mode
def rank_7 			block_fx		; Effects and effects bypass buttons
def rank_6 			block_pan		; Pan controls
def rank_2 			block_buttons	; Routing, folder and phase buttons
def rank_3 			block_diagram	; Routing, folder and phase diagram

set tidy_pans				[0] 	; Pan controls stay neat & tidy (1) or use minimum space (0)
set tidy_routing			[0]		; Routing area stays neat & tidy (1) or uses minimum space (0) ...has a slight bug

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

macro hide element
set element 		space{0}<element{h} [0 0 element 0] [0 0 element element]
set space 			- space{0} element{h}
endmacro 

macro draw_sidecar_mcp
front										mcp.width mcp.pan mcp.width.label mcp.pan.label mcp.folder
set mcp.size 								[70 874 0 meter_limit{0}]
reset_counts

set block_meter								[0 0 70 104]
set space									- h block_meter{h}
set block_solo_arm							[0 0 70 43]
set block_monitor							[0 0 70 55]
set block_source							[0 0 70 33]
set block_env								[0 0 70 23]
set block_fx								[0 0 70 38] 
set block_pan								?tidy_pans{0} [0 0 70 112] trackpanmode<4 [0 0 70 79] trackpanmode==6 [0 0 70 112] [0 0 70 108]
set block_buttons							!tidy_routing{0} \
												[0 0 70 31] \
												+ [0 0 70 61] * [0 0 0 -9] folderdepth
set block_diagram							+ [0 0 70 40] * [0 0 0 9] folderdepth
hide rank_1
hide rank_2
hide rank_3
hide rank_4
hide rank_5
hide rank_6
hide rank_7
hide rank_8
set block_solo_arm							+ . [0 block_meter{h}]
set block_monitor							+ + . [0 block_solo_arm] [0 block_solo_arm{h}]
set block_source							+ + . [0 block_monitor] [0 block_monitor{h}]
set block_env								+ + . [0 block_source] [0 block_source{h}]
set block_fx								+ + . [0 block_env] [0 block_env{h}]
set block_pan								+ + . [0 block_fx] [0 block_fx{h}]
set block_extmixer							+ + [0 4 70 space{0}] [0 block_pan 0 -8] [0 block_pan{h}]
set block_buttons							+ + + . [0 h] * -1 + [0 block_buttons{h}] [0 block_diagram{h}]

set mcp.extmixer.mode 						[1]
	set mcp.extmixer.position				[0] ; block_extmixer
set mcp.meter 							    block_meter{h}<1 [0] [16 6 38 88]
	set mcp.meter.vu.div 					tracknch<3 [4 0] [1 -1]
	set mcp.meter.readout.color 			[168 103 80 150 224 110 79 255]
	set mcp.meter.scale.color.unlit.top 	?recarm [255 0 0 255 0 0 0 255] [64 22 0 0]
	set mcp.meter.scale.color.unlit.bottom 	?recarm [255 0 89 255 0 0 0 255] [33 0 10 0]
	set mcp.meter.scale.color.lit.top 		?recarm [255 0 0 255 0 0 0 255] [255 89 0 255 0 0 0 150]
	set mcp.meter.scale.color.lit.bottom 	?recarm [255 0 89 255 0 0 0 255] [128 0 38 255 0 0 0 150]
set mcp.recinput 							block_meter{h}<1 [0] [4 100 61 11]
	imageshift 								mcp.recinput  recarm 2 2
	set mcp.recinput.margin 				[0 0 0 0 0.5]
	marginshift 							mcp.recinput.margin recarm 2 2
	set mcp.recinput.color 					?recarm [255 60 60] [66 113 127]
set mcp.fxin 								[0] ; + [0 block_meter{h}] [14 -111 43 11]
set mcp.label 								[0 408 70 18]
  	imageshift 								mcp.label trackcolor_valid 3 3		
	imageshift 								mcp.label recarm 2 3	
set mcp.label.margin 						[5 1 5 1 0.5]	
	marginshift 							mcp.label.margin trackcolor_valid 3 3
	marginshift 							mcp.label.margin recarm 2 3
	set mcp.label.color 					?recarm [255 180 180] ?trackcolor_valid + [trackcolor_r trackcolor_g trackcolor_b] [100 100 100] [128 251 255]
	set mcp.label.font                  	[4]
set mcp.volume 								[8 459 54 54]
	set mcp.volume.fadermode 				[1]
	set mcp.volume.label.color				- mcp.label.color [80 80 80]
	set mcp.volume.label 					[0 425 70 11] ; + [mcp.volume mcp.volume] [10 60 50 11]
	imageshift 								mcp.volume.label trackcolor_valid 3 3		
	imageshift 								mcp.volume.label recarm 2 3
	set mcp.volume.label.margin 			[0 0 0 0 0.5]
	marginshift 							mcp.volume.label.margin trackcolor_valid 3 3
	marginshift 							mcp.volume.label.margin recarm 2 3
set mcp.trackidx							[20 521 30 11]
	set mcp.trackidx.margin 				[0 0 0 0 0.5]
	set mcp.trackidx.color					?recarm \
												?trackcolor_valid + custom_col luma{0}>140 [150 -100 -100] [200 0 0] [210 100 100] \
												?trackcolor_valid + custom_col luma{0}>140 [-60 -60 -60] [60 60 60] [140 150 150]
set mcp.solo 								[30 537 34 22]

set mcp.mute 								[0] ; + [0 mcp.trackidx] [31 26 9 9]
set mcp.recarm 								block_solo_arm{h}<1 [0] + [block_solo_arm block_solo_arm] [30 19 34 22]
set mcp.recmon 								block_monitor{h}<1 [0] + [block_monitor block_monitor] [5 16 21 21]
set mcp.recmode 							block_source{h}<1 [0] + [block_source block_source] [23 1 22 21]
set mcp.env 								block_env{h}<1 [0] + [block_env block_env] [-1 3 71 22]
set mcp.fx 									block_fx{h}<1 [0] + [block_fx block_fx] [5 2 21 21] 
	set mcp.fxbyp 							block_fx{h}<1 [0] + [block_fx block_fx] [47 15 16 16] 
set mcp.pan 								block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode<6 [15 29 42 42] [10 28 28 28]
	set mcp.pan.fadermode 					[1]
	set mcp.pan.label 						block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode<6 [11 4 31 10] [20 4 31 10]
	set mcp.pan.label.color 				[30 150 168]
	set mcp.pan.label.margin 				[0 0 0 0 0.5] 
set mcp.width 								block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode==5 [12 37 47 62] trackpanmode==6 [34 61 28 28] [0]
	set mcp.width.fadermode 				[1]
	set mcp.width.label 					block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode==5 [33 92 32 10] trackpanmode==6 [20 96 32 10] [0]
	set mcp.width.label.color 				[30 150 168]
	set mcp.width.label.margin 				[0 0 0 0 0.5]	
set mcp.io 									!tidy_routing{0} \
												block_buttons{h}<1 [0] + [block_buttons block_buttons] [26 13 16 16] \
												+ block_buttons{h}<1 [0] + [block_buttons block_buttons] [26 13 16 16] * [0 9] - mcp_maxfolderdepth folderdepth
set mcp.folder								block_buttons{h}<1 [0] + [mcp.io mcp.io] [22 1 14 14]
set mcp.phase								block_buttons{h}<1 [0] + [mcp.io mcp.io] [-20 1 14 14]
endmacro

draw_sidecar_mcp
EndLayout ;	
	
	
Layout 'b2 -- Tracking Deck' 'sidecar/tracking'

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

; Rank the order of importance for elements in this layout. Highest numbers will be hidden first.
; (If a large element is hidden, leaving enough space for a previously hidden smaller element, the smaller element will use the space.)

def rank_1 			block_solo_arm	; Solo and Arm buttons
def rank_5 			block_monitor	; Monitoring selector
def rank_4 			block_source	; Source switch
def rank_8 			block_env		; Automation mode
def rank_7 			block_fx		; Effects and effects bypass buttons
def rank_6 			block_pan		; Pan controls
def rank_2 			block_buttons	; Routing, folder and phase buttons
def rank_3 			block_diagram	; Routing, folder and phase diagram

set meter_stretch_factor	[0.6]	; Degree to which the meter shrinks with reduced track height
set meter_min_height 		[300]	; minimum height for the meter to shrink to (limited to above 240px)

set tidy_pans				[0] 	; Pan controls stay neat & tidy (1) or use minimum space (0)
set tidy_routing			[0]		; Routing area stays neat & tidy (1) or uses minimum space (0) ...has a slight bug

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

macro hide element
set element 		space{0}<element{h} [0 0 element 0] [0 0 element element]
set space 			- space{0} element{h}
endmacro 

macro draw_tracking_mcp
front										mcp.trackidx mcp.mute mcp.folder
set meter_limit								meter_min_height{0}<240 240 meter_min_height{0}
set mcp.size 								[70 874 0 meter_limit{0}]
reset_counts

set block_meter								+ * h_delta{0} [0 0 0 meter_stretch_factor{0}]  [0 0 70 450]
set block_meter								block_meter{h}>meter_limit{0} . [0 0 70 meter_limit{0}]
set space									- h block_meter{h}
set block_solo_arm							[0 0 70 43]
set block_monitor							[0 0 70 55]
set block_source							[0 0 70 33]
set block_env								[0 0 70 23]
set block_fx								[0 0 70 38] 
set block_pan								?tidy_pans{0} [0 0 70 112] trackpanmode<4 [0 0 70 79] trackpanmode==6 [0 0 70 112] [0 0 70 108]
set block_buttons							!tidy_routing{0} \
												[0 0 70 31] \
												+ [0 0 70 61] * [0 0 0 -9] folderdepth
set block_diagram							+ [0 0 70 40] * [0 0 0 9] folderdepth
hide rank_1
hide rank_2
hide rank_3
hide rank_4
hide rank_5
hide rank_6
hide rank_7
hide rank_8
set block_solo_arm							+ . [0 block_meter{h}]
set block_monitor							+ + . [0 block_solo_arm] [0 block_solo_arm{h}]
set block_source							+ + . [0 block_monitor] [0 block_monitor{h}]
set block_env								+ + . [0 block_source] [0 block_source{h}]
set block_fx								+ + . [0 block_env] [0 block_env{h}]
set block_pan								+ + . [0 block_fx] [0 block_fx{h}]
set block_extmixer							+ + [0 4 70 space{0}] [0 block_pan 0 -8] [0 block_pan{h}]
set block_buttons							+ + + . [0 h] * -1 + [0 block_buttons{h}] [0 block_diagram{h}]

set mcp.extmixer.mode 						[1]
	set mcp.extmixer.position				block_extmixer
set mcp.label 								[0 2 70 18]
  	imageshift 								mcp.label trackcolor_valid 3 3		
	imageshift 								mcp.label recarm 2 3	
set mcp.label.margin 						[5 1 5 1 0.5]	
	marginshift 							mcp.label.margin trackcolor_valid 3 3
	marginshift 							mcp.label.margin recarm 2 3
	set mcp.label.color 					?recarm [255 180 180] ?trackcolor_valid + [trackcolor_r trackcolor_g trackcolor_b] [100 100 100] [128 251 255]
	set mcp.label.font                  	[4]
set mcp.meter 								+ [0 0 0 block_meter{h}] [14 68 43 -186]
	set mcp.meter.vu.div 					tracknch<3 [2 0] [1 -1]
	set mcp.meter.readout.color 			[168 103 80 150 235 189 146 255]
	set mcp.meter.scale.color.unlit.top 	[235 200 178 0 0]
	set mcp.meter.scale.color.unlit.bottom 	[235 194 157 0 0]
	set mcp.meter.scale.color.lit.top 		mcp.meter.scale.color.unlit.top
	set mcp.meter.scale.color.lit.bottom 	mcp.meter.scale.color.unlit.bottom
set mcp.recinput 							[0 45 69 20]
	set mcp.recinput.margin 				[2 1 2 1 0.5]
	set mcp.recinput.color					?recarm [112 75 52] [168 103 80]
set mcp.fxin 								+ [0 block_meter{h}] [14 -111 43 11]
set mcp.volume 								+ [0 block_meter{h}] [0 -75 70 71]
	set mcp.volume.fadermode 				[1]
	set mcp.volume.label.color				?trackcolor_valid * 0.6 custom_col [112 75 52 255]
	set mcp.volume.label 					+ [mcp.volume mcp.volume] [10 35 50 11]
	set mcp.volume.label.margin 			[0 0 0 0 0.5]
set mcp.trackidx							+ [0 block_meter{h}] [20 -53 30 11]
	set mcp.trackidx.margin 				[0 0 0 0 0.5]
	set mcp.trackidx.color					mcp.volume.label.color
set mcp.mute 								+ [0 mcp.trackidx] [31 26 9 9]
set mcp.solo 								block_solo_arm{h}<1 [0] + [block_solo_arm block_solo_arm] [1 19 34 22]
set mcp.recarm 								block_solo_arm{h}<1 [0] + [block_solo_arm block_solo_arm] [35 19 34 22]
set mcp.recmon 								block_monitor{h}<1 [0] + [block_monitor block_monitor] [5 16 21 21]
set mcp.recmode 							block_source{h}<1 [0] + [block_source block_source] [23 1 22 21]
set mcp.env 								block_env{h}<1 [0] + [block_env block_env] [-1 3 71 22]
set mcp.fx 									block_fx{h}<1 [0] + [block_fx block_fx] [5 2 21 21] 
	set mcp.fxbyp 							block_fx{h}<1 [0] + [block_fx block_fx] [47 15 16 16] 
set mcp.pan 								block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode<6 [15 29 42 42] [10 28 28 28]
	set mcp.pan.fadermode 					[1]
	set mcp.pan.label 						block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode<6 [11 4 31 10] [20 4 31 10]
	set mcp.pan.label.color 				[30 150 168]
	set mcp.pan.label.margin 				[0 0 0 0 0.5] 
set mcp.width 								block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode==5 [12 37 47 62] trackpanmode==6 [34 61 28 28] [0]
	set mcp.width.fadermode 				[1]
	set mcp.width.label 					block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode==5 [33 92 32 10] trackpanmode==6 [20 96 32 10] [0]
	set mcp.width.label.color 				[30 150 168]
	set mcp.width.label.margin 				[0 0 0 0 0.5]	
set mcp.io 									!tidy_routing{0} \
												block_buttons{h}<1 [0] + [block_buttons block_buttons] [26 13 16 16] \
												+ block_buttons{h}<1 [0] + [block_buttons block_buttons] [26 13 16 16] * [0 9] - mcp_maxfolderdepth folderdepth
set mcp.folder								block_buttons{h}<1 [0] + [mcp.io mcp.io] [22 1 14 14]
set mcp.phase								block_buttons{h}<1 [0] + [mcp.io mcp.io] [-20 1 14 14]
endmacro

draw_tracking_mcp
EndLayout ;	

Layout 'b3 -- Tracking Deck (neat)' 'tracking'

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

; Rank the order of importance for elements in this layout. Highest numbers will be hidden first.
; (If a large element is hidden, leaving enough space for a previously hidden smaller element, the smaller element will use the space.)

def rank_1 			block_solo_arm	; Solo and Arm buttons
def rank_5 			block_monitor	; Monitoring selector
def rank_4 			block_source	; Source switch
def rank_8 			block_env		; Automation mode
def rank_7 			block_fx		; Effects and effects bypass buttons
def rank_6 			block_pan		; Pan controls
def rank_2 			block_buttons	; Routing, folder and phase buttons
def rank_3 			block_diagram	; Routing, folder and phase diagram

set meter_stretch_factor	[0.6]	; Degree to which the meter shrinks with reduced track height
set meter_min_height 		[300]	; minimum height for the meter to shrink to (limited to above 240px)

set tidy_pans				[1] 	; Pan controls stay neat & tidy (1) or use minimum space (0)
set tidy_routing			[1]		; Routing area stays neat & tidy (1) or uses minimum space (0) ...has a slight bug

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

draw_tracking_mcp
EndLayout ;	
	
; Layout 'c1 -- FX Rack' 'fx_rack'
	; set mcp.size 					[146 874]
	; set mcp.meter 					[9 7 24 100 0 0 0 0]
	; set mcp.recinput 				[0]
	; set mcp.recarm 					[0]
	; set mcp.recmon 					[0]
	; set mcp.recmode 				[0]
	; set mcp.phase 					[77 726 14 14 0 1 0 1]
	; set mcp.mute 					[94 726 14 14 0 1 0 1]
	; set mcp.solo 					[14 728 34 22 0 1 0 1]
	; set mcp.folder 					[112 720 26 32 0 1 0 1]
	; set mcp.env 					[52 68 50 25 0 0 0 0]
	; set mcp.io 						[102 68 44 25 0 0 0 0]
	; set mcp.fxin 					[0]
	; set mcp.fx 						[41 94 50 21 0 0 0 0] 
	; set mcp.fxbyp 					[91 94 55 21 0 0 0 0]
	; set mcp.pan 					trackpanmode<4 [87 783 36 36 0 1 0 1] trackpanmode==6 [76 791 27 27 0 1 0 1] [76 775 58 12 0 1 0 1]
		; set mcp.pan.label 			trackpanmode<4 [86 830 38 10 0 1 0 1] trackpanmode==6 [75 830 27 10 0 1 0 1] [76 791 27 10 0 1 0 1]
	; set mcp.width 					trackpanmode==5 [76 821 58 12 0 1 0 1] trackpanmode==6 [107 791 27 27 0 1 0 1] [0]
		; set mcp.width.label 		trackpanmode==5 [76 807 27 10 0 1 0 1] trackpanmode==6 [107 830 27 10 0 1 0 1] [0]
	; set mcp.volume 					[19 783 36 36 0 1 0 1]
		; set mcp.volume.fadermode 	[1]
		; set mcp.volume.color 		[50 50 50 255]
		; set mcp.volume.label 		[21 831 32 7 0 1 0 1]
		; set mcp.volume.label.margin [0 0 0 0 0.5]
	; set mcp.extmixer.mode 			[1]
		; set mcp.extmixer.position 	[1 116 145 598 0 0 0 1]
		; set mcp.fxlist.font 		[2 21]
		; set mcp.fxlist.margin		[27 0 10 0 0.5]
		; set mcp.sendlist.font 		[2 21]
		; set mcp.sendlist.margin		[10 0 12 0 1]
		; set mcp.fxparm.font 		[2 23]
		; set mcp.fxparm.margin		[5 0 10 0 0]
	; set mcp.trackidx 				[2 859 17 10 0 1 0 1]
		; set mcp.trackidx.margin 	[0 0 0 0 0.5]
		; set mcp.trackidx.color 		?recarm [255 100 100] [163 171 179]
	; set mcp.label 					[21 854 124 20 0 1 0 1]
		; set mcp.label.margin 		[2 1 2 1 0.5]	
	; EndLayout ;	

	
Layout 'd1 -- Strip' 'strip'

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

; Rank the order of importance for elements in this layout. Highest numbers will be hidden first.
; (If a large element is hidden, leaving enough space for a previously hidden smaller element, the smaller element will use the space.)

def rank_1 			block_top		; Meter and routing button
def rank_8 			block_fxin		; Input effects button
def rank_6 			block_env		; Automation mode
def rank_4 			block_fx		; Effects and effects bypass buttons
def rank_5 			block_monitor	; Monitoring selector and record arm buttons
def rank_7 			block_source	; Source switch
def rank_3 			block_buttons	; Cut, Bus and Phase buttons
def rank_9 			block_input		; Record input selector
def rank_2 			block_pan		; Pan and width controls

set input_size		100				; height of the record input selector section

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

macro hide element
set element 		space{0}<element{h} [0 0 element 0] [0 0 element element]
set space 			- space{0} element{h}
endmacro 

macro draw_stripmcp
clear mcp.*
reset_counts	
front										mcp.recarm mcp.phase mcp.folder
set mcp.size 								[44 874 0 397]
set space									- h 400
set block_top								[0 0 44 155]
set block_input								[0 0 44 input_size{0}]
set block_fxin								[0 0 44 37]
set block_env								[0 0 44 20]
set block_fx								[0 0 44 76] 
set block_monitor							[0 0 44 125]
set block_source							[0 0 44 63]
set block_buttons							[0 0 44 62]
set block_pan								trackpanmode<4 [0 0 44 83] trackpanmode==6 [0 0 44 112] [0 0 44 119]
hide rank_1
hide rank_2
hide rank_3
hide rank_4
hide rank_5
hide rank_6
hide rank_7
hide rank_8
hide rank_9
set block_top								block_top
set block_input								+ . [0 block_top{h}]
set block_fxin								+ + . [0 block_input] [0 block_input{h}]
set block_env								+ + . [0 block_fxin] [0 block_fxin{h}]
set block_fx								+ + . [0 block_env] [0 block_env{h}]
set block_monitor							+ + . [0 block_fx] [0 block_fx{h}]
set block_source							+ + . [0 block_monitor] [0 block_monitor{h}]
set block_buttons							+ + . [0 block_source] [0 block_source{h}]
set block_pan								+ + . [0 block_buttons] [0 block_buttons{h}]	 
set mcp.meter 								block_top{h}<1 [0] [9 6 24 88]
	set mcp.meter.vu.div 					tracknch<3 [4 0] [1 -1]
	set mcp.meter.readout.color 			[168 103 80 150 224 110 79 255]
	set mcp.meter.scale.color.unlit.top 	?recarm [255 0 0 255 0 0 0 255] [64 22 0 0]
	set mcp.meter.scale.color.unlit.bottom 	?recarm [255 0 89 255 0 0 0 255] [33 0 10 0]
	set mcp.meter.scale.color.lit.top 		?recarm [255 0 0 255 0 0 0 255] [255 89 0 255 0 0 0 150]
	set mcp.meter.scale.color.lit.bottom 	?recarm [255 0 89 255 0 0 0 255] [128 0 38 255 0 0 0 150]	
set mcp.volume.label 						block_top{h}<1 [0] [4 110 35 1]
	imageshift 								mcp.volume.label  recarm 2 2
	set mcp.recinput.margin 				[0 -200 0 0 0.5]		
set mcp.io									block_top{h}<1 [0] [14 123 16 16]
set mcp.recinput 							block_input{h}<1 [0] + [block_input block_input 0 block_input] [8 4 28 -6]
	set mcp.recinput.margin 				[0 0 0 0 0.5]
	set mcp.recinput.color 					?recarm [255 60 60] [81 138 156]
set mcp.fxin 								block_fxin{h}<1 [0] + [block_fxin block_fxin] [19 2 21 21]
set mcp.env 								block_env{h}<1 [0] + [block_env block_env] [0 3 43 14]
set mcp.fx 									block_fx{h}<1 [0] + [block_fx block_fx] [5 2 21 21] 
set mcp.fxbyp								block_fx{h}<1 [0] + [block_fx block_fx] [1 36 37 38] 
set mcp.recarm 								block_monitor{h}<1 [0] + [block_monitor block_monitor] [5 16 34 22] 
set mcp.recmon 								block_monitor{h}<1 [0] + [block_monitor block_monitor] [13 89 21 21] 
set mcp.recmode 							block_source{h}<1 [0] + [block_source block_source] [10 0 22 21]  												
set mcp.phase 								block_buttons{h}<62 [0] + [block_buttons block_buttons] [7 3 14 14]  
set mcp.folder 								block_buttons{h}<62 [0] + [block_buttons block_buttons] [7 20 14 14] 
set mcp.mute 								block_buttons{h}<1 [0] + + [block_buttons block_buttons] [7 23 14 14] [0 mcp.phase{h}]
set mcp.pan 								block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode<4 [1 20 42 42] trackpanmode==6 [4 10 28 28] [1 37 42 42]
	set mcp.pan.fadermode 					[1]
	set mcp.pan.label 						block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode<4 [6 67 31 10] trackpanmode==6 [6 42 31 10] [6 4 31 10]
	set mcp.pan.label.color 				[30 150 168]
	set mcp.pan.label.margin 				[0 0 0 0 0.5] 
set mcp.width 								block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode==5 [-2 45 47 62] trackpanmode==6 [12 64 28 28] [0]
	set mcp.width.fadermode 				[1]
	set mcp.width.label 					block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode==5 [6 102 32 10] trackpanmode==6 [6 96 32 10] [0]
	set mcp.width.label.color 				[30 150 168]
	set mcp.width.label.margin 				[0 0 0 0 0.5]	
set mcp.solo 								[4 507 35 35 0 1 0 1]
set mcp.volume 								[7 556 30 306 0 1 0 1]
set mcp.extmixer.mode 						[1]
	set mcp.extmixer.position 				[0]
set mcp.label 								[0 476 44 18 0 1 0 1]
  	imageshift 								mcp.label trackcolor_valid 3 3		
	imageshift 								mcp.label recarm 2 3	
	set mcp.label.margin 					[2 1 2 1 0.5]	
	marginshift 							mcp.label.margin trackcolor_valid 3 3
	marginshift 							mcp.label.margin recarm 2 3
	set mcp.label.color 					?recarm [255 180 180] ?trackcolor_valid + [trackcolor_r trackcolor_g trackcolor_b] [100 100 100] [128 251 255]
	set mcp.label.font              		[4]
set mcp.trackidx 							[3 855 38 17 0 1 0 1]
	set mcp.trackidx.margin 				[0 0 2 0 1]
	set mcp.trackidx.color 					?recarm [200 30 30] [204 204 204]
	set mcp.trackidx.font                  	[5]
endmacro
	
draw_stripmcp	
EndLayout ;	

Layout 'd2------ Tracking' 'strip'
; ---------------------------- USER : mess with these:----------------------------

def rank_1 			block_top		; Meter and routing button
def rank_2 			block_input		; Record input selector
def rank_3 			block_fxin		; Input effects button
def rank_8 			block_env		; Automation mode
def rank_9 			block_fx		; Effects and effects bypass buttons
def rank_5 			block_monitor	; Monitoring selector and record arm buttons
def rank_7 			block_source	; Source switch
def rank_4 			block_buttons	; Cut, Bus and Phase buttons
def rank_6 			block_pan		; Pan and width controls

set input_size		160				; height of the record input selector section

; ----------------------------- OK, stop messing here ----------------------------
draw_stripmcp	
EndLayout ;
	
Layout 'd3------ None More Black' 'strip/none_more_black'
; ---------------------------- USER : mess with these:----------------------------

def rank_1 			block_top		; Meter and routing button
def rank_8 			block_fxin		; Input effects button
def rank_6 			block_env		; Automation mode
def rank_4 			block_fx		; Effects and effects bypass buttons
def rank_5 			block_monitor	; Monitoring selector and record arm buttons
def rank_7 			block_source	; Source switch
def rank_3 			block_buttons	; Cut, Bus and Phase buttons
def rank_9 			block_input		; Record input selector
def rank_2 			block_pan		; Pan and width controls

set input_size		100				; height of the record input selector section

; ----------------------------- OK, stop messing here ----------------------------
draw_stripmcp
set mcp.trackidx.color 					?recarm [200 30 30] ?trackcolor_valid [trackcolor_r trackcolor_g trackcolor_b] [80 80 80]
EndLayout ;	

Layout 'f1-- Project' 'project'

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

set folder_indent							1 ; indent the bottom of each channel by folder hierarchy (1 yes, 0 no)
set stretch_factor							0.7 ; from 1 (do all stretching in fader area) to 0 (do all stretching in upper area)
set stretch_limit							180 ; height below which to stop stretching the fader area

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

; take a design that uses great size, generous spacing and verbose functionality to achieve its goals.
; reduce its size, squeeze its spacing and trim out the functional explanation. 
; what do you get?
;
; *sigh* ...a filled feature request :(
; Tom, you owe me a drink. Many drinks. And your piano.
;
; And before anyone asks, no; I'm afraid there's no good way of doing a fader zero line without spoiling the other layouts.

macro draw_project_extmixer
set need_extmix_h							mcp_wantextmix<=2 38 mcp_wantextmix==3 68 mcp_wantextmix==4 40 mcp_wantextmix==5 61 mcp_wantextmix==6 73 mcp_wantextmix==7 87
set have_extmix_h							- - - - - - - - section_upper{h} block_input{h} block_route{h} block_env{h} block_fx{h} mcp.label{h} block_pan{h} block_source{h} block_monitor{h}
set lost_extmixer							have_extmix_h{0}<need_extmix_h{0} 1 0
set block_extmixer							+ + + [0 block_input{h}] [0 block_route{h}] [0 block_env{h}] [0 block_fx{h}] ; find the starting point
set block_extmixer							- - - - - [0 block_extmixer 80 section_upper] [0 0 0 mcp.label{h}] [0 0 0 block_pan{h}] [0 0 0 block_source{h}] [0 0 0 block_monitor{h}] [0 0 0 block_extmixer{1}] ; then find the height
endmacro

macro draw_projectmcp
clear mcp.*
reset_counts
front mcp.solo mcp.label mcp.pan.label mcp.width.label
set mcp.size 								[80 628 0 100]
set h_variance								- h mcp.size{1}
set yfolderdepth							?folder_indent{0} folderdepth 0
set stretch_limit_adjusted					+ stretch_limit{0} * 16 yfolderdepth{0}
set section_lower							+ + [0 380 80 248] [0 0 0 h_variance] * * [0 1 0 -1] stretch_factor{0} h_variance
set section_lower							section_lower{h}<=stretch_limit_adjusted{0} - [0 h 80 stretch_limit_adjusted{0}] [0 stretch_limit_adjusted{0}]
set section_upper							- [0 0 80 h] [0 0 0 section_lower{h}]
set block_input								[0 0 0 26]
set block_route								[0 0 0 45]
set block_env								[0 0 0 23]
set block_fx								[0 0 0 37]
set mcp.label 								[0 0 0 22]
set block_pan								[0 0 0 84]
set block_source							[0 0 0 32]
set block_monitor							[0 0 0 42]
draw_project_extmixer
set block_source							?lost_extmixer{0} [0] + [0 section_upper{h}] - - [0 -32 80 32] [0 mcp.label{h}] [0 block_pan{h}]
draw_project_extmixer
set block_env								?lost_extmixer{0} [0] + + [0 0 80 23] [0 block_input{h}] [0 block_route{h}]
draw_project_extmixer
set block_monitor							?lost_extmixer{0} [0] + [0 section_upper{h}] - - - [0 -42 80 42] [0 mcp.label{h}] [0 block_pan{h}] [0 block_source{h}]
draw_project_extmixer
set block_input								?lost_extmixer{0} [0] [0 0 80 26]
draw_project_extmixer
set block_pan								?lost_extmixer{0} + [0 section_upper{h}] - [0 -65 80 65] [0 mcp.label{h}] + [0 section_upper{h}] - [0 -84 80 84] [0 mcp.label{h}]
draw_project_extmixer
set block_fx								?lost_extmixer{0} [0] + + + [0 0 80 37] [0 block_input{h}] [0 block_route{h}] [0 block_env{h}]
draw_project_extmixer
set block_route								?lost_extmixer{0} [0] + [0 0 80 45] [0 block_input{h}]
draw_project_extmixer
set block_pan								?lost_extmixer{0} [0] block_pan
draw_project_extmixer
set mcp.label 								+ [0 section_upper{h}] [0 -22 80 22]

set mcp.recinput						+ block_input [1 12 -2 -13]
	set mcp.recinput.margin 				[0 0 0 0 0.5]
	set mcp.recinput.color 					?recarm [255 60 60] [66 113 127]
set mcp.io								block_route{h}<1 [0] + [block_route block_route 0 0] [14 21 16 16]
	set mcp.fxin							block_route{h}<1 [0] + block_route [40 0 -40] 
set mcp.env								block_env
set mcp.fx								block_fx{h}==0 [0] + block_fx [0 0 -40]
	set mcp.fxbyp							block_fx{h}==0 [0] + block_fx [40 0 -40]
imageshift 									mcp.label trackcolor_valid 3 3		
	imageshift 								mcp.label recarm 2 3		
set mcp.label.margin 						[5 3 5 3 0.5]	
	marginshift 							mcp.label.margin trackcolor_valid 3 3
	marginshift 							mcp.label.margin recarm 2 3
	set mcp.label.color 					?recarm [255 180 180] ?trackcolor_valid + [trackcolor_r trackcolor_g trackcolor_b] [100 100 100] [128 251 255]
	set mcp.label.font                  	[4]
set mcp.pan 							block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode<4 block_pan{h}<84 [18 13 42 42] [18 32 42 42] trackpanmode==6 block_pan{h}<84 [9 20 28 28] [9 39 28 28] block_pan{h}<84 [4 11 71 19] [4 20 71 19]
	set mcp.pan.fadermode 					trackpanmode==5 [0] [1] 
	set mcp.pan.color 						[204 204 204 255]
	set mcp.pan.label 						block_pan{h}<1 [0] block_pan{h}<84 [0] + [block_pan block_pan] [5 7 32 10]
	set mcp.pan.label.color 				[30 150 168]
	set mcp.pan.label.margin 				[0 0 0 0 0.5]
set mcp.width 								block_pan{h}<1 [0] + [0 block_pan] trackpanmode==5 block_pan{h}<84 [4 40 71 19] [4 59 71 19] trackpanmode==6 block_pan{h}<84 [43 20 28 28] [43 39 28 28] [0]
	set mcp.width.fadermode 				trackpanmode==6 [1] [0]
	set mcp.width.color 					[204 204 204 255]
	set mcp.width.label 					block_pan{h}<1 [0] block_pan{h}<84 [0] + [0 block_pan] trackpanmode==5 [5 46 32 10] trackpanmode==6 [42 7 32 10] [0]
	set mcp.width.label.color 				[30 150 168]
	set mcp.width.label.margin 				[0 0 0 0 0.5]
set mcp.recmode							block_source
set mcp.recmon							block_monitor{h}==0 [0] + [block_monitor block_monitor] [50 6 21 21]
set mcp.extmixer.mode 					[1]
	set mcp.extmixer.position				+ block_extmixer [2 1 -5 -2]	
set mcp.volume 								- + [6 8 26 -31] [0 section_lower 0 section_lower] * [0 0 0 16] yfolderdepth{0}
set mcp.recarm 								+ [39 8 34 22] [0 section_lower]
set mcp.solo 								+ [39 36 34 22] [0 section_lower]
set mcp.phase 								+ [40 73 14 14] [0 section_lower]
set mcp.mute 								+ [58 73 14 14] [0 section_lower]
set mcp.meter 								- + [42 99 28 -135] [0 section_lower 0 section_lower] * [0 0 0 16] yfolderdepth{0}
	set mcp.meter.vu.div 					tracknch<3 [4 0] [1 -1]
	set mcp.meter.readout.color 			[168 103 80 150 224 110 79 255]
	set mcp.meter.scale.color.unlit.top 	?recarm [255 0 0 255 0 0 0 255] [64 22 0 0]
	set mcp.meter.scale.color.unlit.bottom 	?recarm [255 0 89 255 0 0 0 255] [33 0 10 0]
	set mcp.meter.scale.color.lit.top 		?recarm [255 0 0 255 0 0 0 255] [255 89 0 255 0 0 0 150]
	set mcp.meter.scale.color.lit.bottom 	?recarm [255 0 89 255 0 0 0 255] [128 0 38 255 0 0 0 150]
set mcp.volume.label	 					+ + [mcp.meter mcp.meter] [0 mcp.meter{h}] [-1 4 32 7]
	set mcp.volume.label.margin 			[0 0 0 0 0.5]
	set mcp.volume.label.color 				[23 113 128] 
set mcp.folder 								- + + [-5 -20 26 32] [0 section_lower] [0 section_lower{h}] * [0 16] yfolderdepth{0}
set mcp.trackidx 							- + [44 97 34 -98] [0 section_lower 0 section_lower] * [0 0 0 16] yfolderdepth{0}
	set mcp.trackidx.margin 				- [0 mcp.trackidx{h} 3 1 1] [0 13]
	colorsmart                 				 mcp.trackidx.color 130 130 130 trackcolor_r trackcolor_g trackcolor_b trackcolor_r trackcolor_g trackcolor_b 1
	set mcp.trackidx.font                  	[5]
endmacro 

draw_projectmcp
make_fader_layouts "f1------"project/
EndLayout 

Layout 'f2------ Black Lower' 'project/black'
draw_projectmcp
	set mcp.trackidx.color 					?recarm [200 30 30] ?trackcolor_valid [trackcolor_r trackcolor_g trackcolor_b] [80 80 80]
EndLayout ;	

Layout 'f3------ None More Black' 'project/none_more_black'
draw_projectmcp
	imageshift 								mcp.trackidx  trackcolor_valid 2 3
	marginshift 							mcp.trackidx.margin trackcolor_valid 2 3
	set mcp.trackidx.color 					?recarm [200 30 30] ?trackcolor_valid [trackcolor_r trackcolor_g trackcolor_b] [80 80 80]
	set mcp.volume.label.color 				?trackcolor_valid [trackcolor_r trackcolor_g trackcolor_b] [23 113 128] 
	
	Layout 'f4------Colour Grain' 'project/none_more_black'
	draw_projectmcp
		imageshift 								mcp.trackidx  trackcolor_valid 3 3
		marginshift 							mcp.trackidx.margin trackcolor_valid 3 3
	EndLayout ;	
EndLayout ;	
#<	
#>------------------------- MASTER MIXER CONTROL PANEL --------------------------------

macro draw_mcp_master
clear master.mcp.*
set master.mcp.size 							[118 874 0 397]
front 											master.mcp.mono master.mcp.volume.label 

set block_top									h<meter_h{x} [0 0 0 0] [0 0 94 174]
set block_auto									h<auto_h{x} [0 0 0 0] h<auto_s{x} [11 block_top{h} 94 22] [11 block_top{h} 94 29]
set block_monitor							 	h<monitor_h{x} [0 0 0 0] [0 0 0 109]
set block_pan									h<pan_h{x} [0 0 0 0] [0 0 0 93]
set block_insert								- - - - + + [0 block_top{h}] [0 block_auto{h} 94 476] [0 0 0 h_delta] [0 0 0 block_top{h}] [0 0 0 block_auto{h}] [0 0 0 block_monitor{h}] [0 0 0 block_pan{h}]
set block_pan									+ + + [0 block_top{h}] [0 block_auto{h}] [0 block_insert{h}] [12 block_monitor{h} 94 block_pan]

set master.mcp.meter 							block_top{h}<1 [0] [13 13 92 150]
	set master.mcp.meter.vu.div 				[12 0]
	set master.mcp.meter.vu.rmsdiv 				[6 0]
	set master.mcp.meter.readout.color 			[255 160 160]
	set master.mcp.meter.rmsreadout.color		mcp.meter.scale.color.lit.bottom
	set master.mcp.meter.scale.color.unlit.top 	[33 0 10 0 0 0 0 0]
	set master.mcp.meter.scale.color.unlit.bottom [33 0 10 0 0 0 0 0]
	set master.mcp.meter.scale.color.lit.top 	[255 89 0 255 0 0 0 255]
	set master.mcp.meter.scale.color.lit.bottom [128 0 38 255 0 0 0 255]	
set master.mcp.volume.label 					[32 478 79 13 0 1 0 1]
	set master.mcp.volume.label.margin 			[0 0 0 0 0.5]
	set master.mcp.volume.label.color 			[128 251 255]
	set master.mcp.volume.label.font			[0]
set master.mcp.env 								block_auto{h}<1 [0] + [block_auto block_auto] block_auto{h}<27 [9 0 76 23] [9 0 76 30]
set master.mcp.fx 								block_insert{h}<1 [0] h<fx_h{x} [0] + [0 block_insert] block_auto{h}<27 [21 0 73 32] [21 0 73 38]
    set master.mcp.fxbyp 						block_insert{h}<1 [0] h<fx_h{x} [0] + [0 block_insert] block_auto{h}<27 [80 3 16 16] [80 9 16 16]
set master.mcp.extmixer.mode 					[1]
	set master.mcp.extmixer.position 			block_insert{h}<1 [0] + [0 block_insert 0 block_insert] h<fx_h{x} [10 2 98 -6] master.mcp.fx{h}<38 [10 41 98 -45] [10 47 98 -51]
set master.mcp.io 								block_monitor{h}<1 [0] [82 346 16 16 0 1 0 1]
set master.mcp.label							block_monitor{h}<1 [0] [0 475 3 3 0 1 0 1]	
set master.mcp.pan 								block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode<4 [26 25 42 42] trackpanmode==6 [12 35 28 28] [9 23 75 19]
	set master.mcp.pan.fadermode 					trackpanmode==5 [0] [1] 
	set master.mcp.pan.color 						[204 204 204 255]
	set master.mcp.pan.label 						block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode<4 [31 74 32 10] trackpanmode==6 [11 72 30 10] [51 7 31 10]
	set master.mcp.pan.label.color 				[30 150 168]
	set master.mcp.pan.label.margin 				[0 0 0 0 0.5] 
set master.mcp.width 								block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode==5 [9 65 75 19] trackpanmode==6 [53 35 28 28] [0]
	set master.mcp.width.fadermode 				trackpanmode==6 [1] [0]
	set master.mcp.width.color 					[204 204 204 255]
	set master.mcp.width.label 					block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode==5 [51 49 32 10] trackpanmode==6 [51 72 32 10] [0]
	set master.mcp.width.label.color 				[30 150 168]
	set master.mcp.width.label.margin 				[0 0 0 0 0.5]
set master.mcp.solo 							[64 507 35 35 0 1 0 1]
set master.mcp.mute 							[82 608 14 14 0 1 0 1]
set master.mcp.menubutton 						[76 638 26 32 0 1 0 1]
set master.mcp.mono 							[14 505 42 58 0 1 0 1]
set master.mcp.volume 							[25 556 30 306 0 1 0 1]
endmacro

macro master_fader_layout prefix colour path	
	Layout 'prefix## colour## Fader' 'path##_fader'
	set master.mcp.volume .
	EndLayout ;
endmacro

macro make_master_fader_layouts prefix path
	master_fader_layout prefix Black path##black	
	master_fader_layout prefix Blue path##blue
	master_fader_layout prefix Green path##green
	master_fader_layout prefix Red path##red
	master_fader_layout prefix Yellow path##yellow
endmacro

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

set meter_h									638 ; height below which to hide the meter area
set auto_s									912 ; height below which to shrink the automation button
set auto_h									887 ; height below which to hide the automation button
set fx_h									770 ; height below which to hide the insert and bypass buttons
set monitor_h								912 ; height below which to hide the routing and logo section
set pan_h									729 ; height below which to hide the pan controls

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

draw_mcp_master
	Layout 'a1-- Default'
	draw_mcp_master	
	make_master_fader_layouts a1------ /
	EndLayout ;
	
Layout 'e1-- Stockholm' 'stockholm/master'

draw_mcp_master
front master.mcp.pan.label master.mcp.width master.mcp.width.label master.mcp.fxbyp
set master.mcp.io 								block_monitor{h}<1 [0] [74 337 21 19 0 1 0 1]
set master.mcp.env 								block_auto{h}<1 [0] + [12 block_auto] block_auto{h}<27 [0 0 93 23] [0 0 93 29]
set master.mcp.fx 									block_insert{h}<1 [0] h<fx_h{x} [0] + [12 block_insert] block_auto{h}<27 [0 0 93 40] [0 0 93 45]
	set master.mcp.fxbyp 							block_insert{h}<1 [0] h<fx_h{x} [0] + [12 block_insert] block_auto{h}<27 [38 7 42 26] [38 13 42 26]
set master.mcp.extmixer.position 					block_insert{h}<1 [0] + [0 block_insert 0 block_insert] h<fx_h{x} [6 2 105 -6] master.mcp.fx{h}<44 [6 41 105 -45] [6 47 105 -51]
	set master.mcp.sendlist.margin					[4 0 3 0 0]
	set master.mcp.fxparm.margin					[0 0 3 0 1]
set master.mcp.pan 								block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode<4 [32 25 49 49] trackpanmode==6 [21 48 20 20] [7 21 78 15]
	set master.mcp.pan.label 						block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode<4 [40 75 32 10] trackpanmode==6 [11 75 30 10] [51 6 31 10]
	set master.mcp.pan.label.color 				[102 102 102]
	set master.mcp.pan.label.margin 				trackpanmode==5 [0 0 0 0 1] [0 0 0 0 0.5]
set master.mcp.width 								block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode==5 [7 68 78 15] trackpanmode==6 [53 48 20 20] [0] 
	set master.mcp.width.label 					block_pan{h}<1 [0] + [block_pan block_pan] trackpanmode==5 [51 53 32 18] trackpanmode==6 [51 75 32 10] [0]
	set master.mcp.width.label.color 				master.mcp.pan.label.color
	set master.mcp.width.label.margin 				trackpanmode==5 [0 0 0 8 1] [0 0 0 0 0.5]
set master.mcp.solo 							[76 516 19 19 0 1 0 1]
set master.mcp.mono 							[81 573 13 13 0 1 0 1] 
set master.mcp.mute 							[81 608 15 14 0 1 0 1]
set master.mcp.menubutton 						[79 813 20 20 0 1 0 1]
EndLayout ;	
	
; Layout 'b1-- Longthrow' 'longthrow'
; set master.mcp.volume 							[25 511 30 351 0 1 0 1]
; set master.mcp.solo 							[72 507 35 35 0 1 0 1]
; set master.mcp.mute 							[82 608 14 14 0 1 0 1]
; set master.mcp.menubutton 						[76 638 26 32 0 1 0 1]
; set master.mcp.mono 							[68 550 42 58 0 1 0 1]
	
; make_master_fader_layouts b1------ longthrow/
; EndLayout ;	
	
; Layout 'b2 ------ Longthrow Black' 'longthrow_black'
	; set master.mcp.volume 	.
	; EndLayout ;
	; Layout 'c1 -- Master of the Universe' 'm_o_universe'
	; set master.mcp.size 						[200 874]
	; set master.mcp.meter 						[18 34 164 325 0 0 0 0.5]
		; set master.mcp.meter.vu.div 			tracknch<3 [16 0] [2 0]
		; set master.mcp.meter.vu.rmsdiv 			[6 0]
	; set master.mcp.extmixer.mode 				[1]
		; set master.mcp.extmixer.position 		[55 400 89 61 0 master.mcp.meter{7} 0 1]	
	; set master.mcp.fx 							[11 433 21 24 0 1 0 1] 
	; set master.mcp.fxbyp 						[170 435 18 23 0 1 0 1]
	; set master.mcp.label 						!0 [0 475 198 20 0 1 0 1]
	; set master.mcp.solo 						[91 512 35 35 0 1 0 1]
	; set master.mcp.mono 						[135 510 42 58 0 1 0 1]	
	; set master.mcp.mute 						[89 570 16 16 0 1 0 1]
	; set master.mcp.menubutton 					[120 564 26 32 0 1 0 1]
	; set master.mcp.env 							[101 630 14 14 0 1 0 1]
	; set master.mcp.io 							[155 564 26 32 0 1 0 1]
	; set master.mcp.pan 							[115 706 36 36 0 1 0 1]
		; set master.mcp.pan.label 				[115 754 36 10 0 1 0 1]
	; set master.mcp.volume 						[31 511 30 351 0 1 0 1]
		; set master.mcp.volume.label 			[97 367 55 10 0 master.mcp.meter{7} 0 master.mcp.meter{7}]
	
	; EndLayout ;	
	

#<


#>-------------------------- ENVELOPE CONTROL PANELS ----------------------------------
clear envcp.*

set xtras_gap		envcp_type==4 h>46 [-40] [-73] [0] 

front									envcp.arm envcp.value envcp.fader envcp.label envcp.hide
set envcp.size	 						[544 72 400]
set envcp.label							[11 28 121 17 0 0.5 0.2 0.5]
	set envcp.label.margin				[5 0 5 0 0]
	set envcp.label.color				[146 156 160]
set envcp.fader 						+ [0 0 xtras_gap{0}] h>46 [140 19 340 17 envcp.label{6} 0.5 1 0.5] [140 28 254 17 envcp.label{6} 0.5 0.9 0.5]
	set envcp.fader.fadermode 			[0]
	set envcp.fader.color 				[. . . . 255 255 255 150]
set envcp.arm							h>46 + [0 0 xtras_gap{0}] [137 16 347 50 envcp.label{6} 0.5 1 0.5] + + [envcp.fader{0}] [envcp.fader{2}] [-5 24 95 32 envcp.fader{6} 0.5 1 0.5]
set envcp.value							h>46 [140 38 321 16 envcp.label{6} 0.5 1 0.5] + [envcp.arm{0}] [6 29 66 16 envcp.fader{6} 0.5 1 0.5]
	set envcp.value.margin				[5 0 0 0 0]
	set envcp.value.color				[146 156 160]
set envcp.hide							+ + [envcp.arm{0}] [envcp.arm{2}] [-3 27 38 22 1 0.5 1 0.5] 
set envcp.learn							h>46 [478 36 36 22 1 0.5 1 0.5] [445 28 36 22 1 0.5 1 0.5]
set envcp.mod							h>46 [478 18 36 22 1 0.5 1 0.5] [478 28 36 22 1 0.5 1 0.5]
set envcp.bypass						[513 27 31 22 1 0.5 1 0.5]


	Layout 'No folder indent'
	set envcp.margin 						+:folderdepth:1 [-18]
	EndLayout ;


	Layout 'Low Width'
	set envcp.size	 						[544 72 280]		; Reduce that '280' value if you want to go even thinner
	EndLayout ;
	
#<

#>---------------------------------- TRANSPORT ----------------------------------------

clear trans.*
set trans.size 						[1053 71]
set trans.size.minmax 				[1053 71 10000 71]
set trans.size.dockedheight 		[71]
front 								trans.fwd trans.bpm.tap trans.curtimesig
set trans.automode 					[13 34 81 26 0 0 0 0]
set trans.rew 						[122 5 70 76 0.05 0 0.05 0]
set trans.fwd 						[160 22 39 59 0.05 0 0.05 0]
set trans.play 						[208 7 75 72 0.1 0 0.1 0]
set trans.pause 					+ [trans.play{x}] [trans.play{w} 7 49 72 trans.play{ls} 0 trans.play{rs} 0]
set trans.stop 						+ [trans.pause{x}] [trans.pause{w} 7 49 72 trans.play{ls} 0 trans.play{rs} 0]
set trans.rec 						+ [trans.stop{x}] [trans.stop{w} 7 108 72 trans.play{ls} 0 trans.play{rs} 0]
set trans.rate 						[657 45 60 20 0.3 0 0.3 0]
	set trans.rate.margin 			[0 0 0 0 0]
	set trans.rate.color 			[173 37 37]
	set trans.rate.fader 			[519 16 43 43 0.3 0 0.3 0]
	set trans.rate.fader.fadermode 	[1]
	set trans.rate.fader.color 		[102 102 102 255]
set trans.status 					[579 0 277 49 0.3 0 0.7 0]
	set trans.status.margin 		[10 2 10 2]
set trans.curtimesig 				[717 46 74 20 trans.status{ls} 0 trans.status{rs} 0]
	set trans.curtimesig.color 		[173 37 37]
set trans.bpm.tap 					[781 46 50 20 trans.status{rs} 0 trans.status{rs} 0]
	set trans.bpm.tap.color 		[173 37 37]
set trans.bpm.edit 					[712 49 144 20 trans.status{ls} 0 trans.status{rs} 0]
	set trans.bpm.edit.color 		[173 37 37]
	set trans.bpm.edit.margin 		[0 0 13 6 1]
set trans.sel 						[932 -5 67 72 1 0 1 0]
	set trans.sel.margin 			[1000 0 0 0]
	set trans.sel.color 			[150 150 150]
set trans.repeat 					[1004 6 43 59 1 0 1 0]

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

	Layout 'Blackface' 'black'
	set trans.play .
	set trans.rate.fader.color [230 230 230 255]
	EndLayout ;

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

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

	Layout 'Compact' 'dead_ringer'
	front								trans.sel 
	set trans.size 						[1053 94]
	set trans.size.minmax 				[800 47 10000 200]
	set trans.size.dockedheight 		[47]
	
	set trans.automode 					h<95 [11 33 86 29 0 0.5 0 0.5] [11 56 86 29 0 1 0 1]   ; add 23, add 46
	set trans_section					h<95 [154 29 0 0 0.2 0.5 0.2 0.5] [154 52 0 0 0.2 1 0.2 1]
	set time_section					h<95 [470 29 0 0 0.3 0.5 0.3 0.5] [470 52 0 0 0.3 1 0.3 1]
	set trans.status 					h<95 [660 23 244 47 0.4 0.5 0.9 0.5] [0 0 1053 47 0 0 1 1]
	set loop_section					h<95 [937 28 0 0 1 0.5 1 0.5] [937 51 0 0 1 1 1 1]
	
		set trans.rew 					+ trans_section [0 0 36 56]
		set trans.fwd 					+ trans_section [35 0 36 56]
		set trans.play 					+ trans_section [77 0 58 56]
		set trans.pause 				+ trans_section [134 0 32 56]
		set trans.stop 					+ trans_section [165 0 32 56]
		set trans.rec 					+ trans_section [196 0 74 56]
		set trans.rate					+ time_section [49 2 59 13]
			set trans.rate.margin 		[0 0 0 0 0]
			set trans.rate.color 		[115 123 128]
			set trans.rate.fader		+ time_section [0 0 34 34]
		set trans.bpm.tap 				+ time_section [86 19 19 15]
			set trans.bpm.tap.color 	[115 123 128]	
		set trans.bpm.edit 				+ time_section [46 20 40 13]
			set trans.bpm.edit.color 	[115 123 128]
			set trans.bpm.edit.margin 	[0 0 0 0 0.5]
		set trans.curtimesig 			+ time_section [113 20 30 13]
			set trans.curtimesig.color 	[115 123 128]	
		set trans.status.margin 		[10 0 20 0]
		set trans.repeat 				+ loop_section [0 0 113 57]	
		set trans.sel 					+ loop_section [30 -10 50 47]
			set trans.sel.margin 		[100 0 0 0]
			set trans.sel.color 		[115 123 128]

	EndLayout ;

#<