Created
December 29, 2019 14:29
-
-
Save conscienta/76a54f5bfbd7537df63736244fbaa7ee to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; | |
; Smooth V6 by b0se | |
; RC1 - HiDPI Only | |
; 27/12/2019 | |
; | |
; Thanks PhelixK, synkrotron, Mordi, otsoa and WhiteTie | |
; | |
#>----------------------------------- GLOBALS ----------------------------------------- | |
version 6.0 | |
use_pngs 1 | |
tcp_showborders 0 | |
mcp_showborders 0 | |
transport_showborders 0 | |
tcp_vupeakwidth 2 | |
mcp_vupeakheight 2 | |
mcp_mastervupeakheight 4 | |
mcp_altmeterpos 0 | |
use_overlays 1 | |
tcp_vol_zeroline FF666666 | |
tcp_pan_zeroline 66000000 | |
mcp_vol_zeroline FF666666 | |
mcp_pan_zeroline 85000000 | |
trans_speed_zeroline 85000000 | |
gen_vol_zeroline FF000000 | |
gen_pan_zeroline FF000000 | |
item_volknobfg 85000000 FF778485 00474F4F | |
mcp_min_height 240 | |
tcp_master_minheight 56 | |
mcp_voltext_flags 5 5 | |
tcp_voltext_flags 12 | |
tinttcp 298 | |
peaksedges 0 | |
no_meter_reclbl 1 | |
tcp_heights 4 25 61 61 ; supercollapsed, collapsed, small(norecarm), recarm size ; 61 = b0se edit (thanks Phelix) | |
tcp_folderindent 0 | |
envcp_min_height 27 | |
misc_dpi_translate 134 150 | |
misc_dpi_translate 174 200 | |
; ----------------- WALTER ------------------- | |
; font #1/6/11 - Fira Sans 9 | |
; font #2/7/12 - Fira Sans 9 | |
; font #3/8/13 - Fira Sans 10 | |
; font #4/9/14 - Fira Sans 11 | |
; ------ GLOBAL SETTINGS FOR TEXT COLORS ------ | |
set custom_col [trackcolor_r trackcolor_g trackcolor_b] | |
set luma + + * 0.299 [trackcolor_r] * 0.587 [trackcolor_g] * 0.114 [trackcolor_b] | |
; macro for the color of text that is drawn over custom colors | |
set swapLuma 130 ; (0 to 255) custom color brightness to switch from 'light' to 'dark' text | |
set pushLuma 90 ; (0 to 255) very dim custom color brighness | |
macro text_over_custom element | |
set element ?trackcolor_valid \ | |
?track_selected \ | |
+ custom_col luma{0}<swapLuma{0} \ | |
luma{0}<pushLuma [220 220 220] [-100 -100 -100] \ | |
[-120 -120 -120] \ | |
+ custom_col luma{0}<swapLuma{0} \ | |
luma{0}<pushLuma [180 180 180] [100 100 100] \ | |
[-120 -120 -120] \ | |
?track_selected [66 67 67] [54 57 57] | |
endmacro | |
; macro for the color of track labels, with tweaked custom color inheritance if a custom color is too dark | |
macro trackLabelColor element | |
set element [182 176 166] | |
endmacro | |
; --------------------------------------------------------------- | |
macro paramPair scalar Idx n1 n2 n3 n4 n5 n6 n7 n8 n9 n10 | |
set scalar param##Idx<=1 n1 param##Idx==2 n2 param##Idx==3 n3 param##Idx==4 n4 param##Idx==5 n5 param##Idx==6 n6 param##Idx==7 n7 param##Idx==8 n8 param##Idx==9 n9 param##Idx>=10 n10 | |
endmacro | |
; define all the script parameters used in this theme | |
define_parameter 'defaultV6' 'defaultV6_version' 1 | |
macro indexParams desc val min max idx | |
define_parameter param##idx desc val min max | |
endmacro | |
; description val min max idx | |
indexParams 'A_mcp_indent' 4 1 7 1 | |
indexParams 'A_tcp_indent' 5 1 7 2 | |
indexParams 'A_tcp_vol_size' 1 1 7 3 | |
indexParams 'A_tcp_MeterSize' 3 1 7 4 | |
indexParams 'A_tcp_Record_Arm' 0 0 15 5 | |
indexParams 'A_tcp_Monitor' 4 0 15 6 | |
indexParams 'A_tcp_Track_Name' 0 0 15 7 | |
indexParams 'A_tcp_Volume' 0 0 15 8 | |
indexParams 'A_tcp_Routing' 1 0 15 9 | |
indexParams 'A_tcp_Effects' 0 0 15 10 | |
indexParams 'A_tcp_Envelope' 0 0 15 11 | |
indexParams 'A_tcp_Pan_&_Width' 1 0 15 12 | |
indexParams 'A_tcp_Record_Mode' 4 0 15 13 | |
indexParams 'A_tcp_Input' 4 0 15 14 | |
indexParams 'A_tcp_Values' 2 0 15 15 | |
indexParams 'A_tcp_Meter_Values' 4 0 15 16 | |
indexParams 'A_tcp_MeterLoc' 2 1 3 17 | |
indexParams 'A_tcp_LabelSize' 6 1 7 18 | |
indexParams 'A_tcp_LabelMeasure' 100 1 200 19 | |
indexParams 'A_tcp_InputSize' 5 1 7 20 | |
indexParams 'A_envcp_labelSize' 6 1 7 21 | |
indexParams 'A_envcp_LabelMeasure' 100 1 200 22 | |
indexParams 'A_envcp_fader_size' 1 1 7 23 | |
indexParams 'A_envcp_folder_indent' 1 0 1 24 | |
indexParams 'A_mcp_Sidebar' 0 1 5 25 | |
indexParams 'A_mcp_Narrow' 0 1 5 26 | |
indexParams 'A_mcp_Meter_Expansion' 3 1 5 27 | |
indexParams 'A_mcp_Labels' 3 1 5 28 | |
indexParams 'A_mcp_meterExpSize' 3 1 4 29 | |
indexParams 'A_mcp_border' 1 1 5 30 | |
indexParams 'B_tcp_vol_size' 5 1 7 31 | |
indexParams 'B_tcp_MeterSize' 3 1 7 32 | |
indexParams 'B_tcp_Record_Arm' 0 0 15 33 | |
indexParams 'B_tcp_Monitor' 0 0 15 34 | |
indexParams 'B_tcp_Track_Name' 0 0 15 35 | |
indexParams 'B_tcp_Volume' 0 0 15 36 | |
indexParams 'B_tcp_Routing' 0 0 15 37 | |
indexParams 'B_tcp_Effects' 0 0 15 38 | |
indexParams 'B_tcp_Envelope' 0 0 15 39 | |
indexParams 'B_tcp_Pan_&_Width' 0 0 15 40 | |
indexParams 'B_tcp_Record_Mode' 0 0 15 41 | |
indexParams 'B_tcp_Input' 0 0 15 42 | |
indexParams 'B_tcp_Values' 0 0 15 43 | |
indexParams 'B_tcp_Meter_Values' 0 0 15 44 | |
indexParams 'B_tcp_MeterLoc' 2 1 3 45 | |
indexParams 'B_tcp_InputSize' 6 1 7 46 | |
indexParams 'B_tcp_LabelSize' 5 1 7 47 | |
indexParams 'B_mcp_Sidebar' 0 1 5 48 | |
indexParams 'B_mcp_Narrow' 0 1 5 49 | |
indexParams 'B_mcp_Meter_Expansion' 3 1 5 50 | |
indexParams 'B_mcp_Labels' 0 1 5 51 | |
indexParams 'B_mcp_meterExpSize' 4 1 4 52 | |
indexParams 'B_mcp_border' 5 1 5 53 | |
indexParams 'C_tcp_vol_size' 1 1 7 54 | |
indexParams 'C_tcp_MeterSize' 6 1 7 55 | |
indexParams 'C_tcp_Record_Arm' 0 0 15 56 | |
indexParams 'C_tcp_Monitor' 4 0 15 57 | |
indexParams 'C_tcp_Track_Name' 0 0 15 58 | |
indexParams 'C_tcp_Volume' 0 0 15 59 | |
indexParams 'C_tcp_Routing' 1 0 15 60 | |
indexParams 'C_tcp_Effects' 1 0 15 61 | |
indexParams 'C_tcp_Envelope' 1 0 15 62 | |
indexParams 'C_tcp_Pan_&_Width' 1 0 15 63 | |
indexParams 'C_tcp_Record_Mode' 4 0 15 64 | |
indexParams 'C_tcp_Input' 0 0 15 65 | |
indexParams 'C_tcp_Values' 2 0 15 66 | |
indexParams 'C_tcp_Meter_Values' 0 0 15 67 | |
indexParams 'C_tcp_MeterLoc' 1 1 3 68 | |
indexParams 'C_tcp_InputSize' 4 1 7 69 | |
indexParams 'C_tcp_LabelSize' 5 1 7 70 | |
indexParams 'C_mcp_Sidebar' 1 1 5 71 | |
indexParams 'C_mcp_Narrow' 2 1 5 72 | |
indexParams 'C_mcp_Meter_Expansion' 3 1 5 73 | |
indexParams 'C_mcp_Labels' 1 1 5 74 | |
indexParams 'C_mcp_meterExpSize' 1 1 4 75 | |
indexParams 'C_mcp_border' 1 1 5 76 | |
indexParams 'A_trans_rate_size' 1 1 7 77 | |
indexParams 'A_mcp_control_align' 2 1 2 78 | |
indexParams 'A_tcp_control_align' 1 1 2 79 | |
; --------------------------- | |
; Global stuff : here are some often-used lines, set as definitions | |
def gl_pan_color trackpanmode<=5 [0 0 0 0]; [0 0 0 120] [84 63 63] | |
def gl_width_color trackpanmode=5 [255 255 255 210] [63 84 63] | |
def gl_fader_swap trackpanmode==6 [0] [1] | |
text_over_custom val_color ; ERADICATE THIS | |
; --------------------------- | |
#< | |
#>---------------------------- TRACK CONTROL PANELS ----------------------------------- | |
clear tcp.* | |
macro resetHides | |
set hideValues 0 | |
set hide_tcp.recarm 0 | |
set hide_tcp.recmon 0 | |
set hide_tcp.label 0 | |
set hide_tcp.volume 0 | |
set hide_tcp.io 0 | |
set hide_fx_group 0 | |
set hide_tcp.env 0 | |
set hide_pan_group 0 | |
set hide_tcp.recmode 0 | |
set hide_input_group 0 | |
set hide_values 0 | |
set hide_meter_values 0 | |
endMacro | |
macro calcTcpSecs scale | |
set element_h * scale 15 ; supercollapsed threshold is a bit smaller than the actual element size, in case our non-supercollapsed size is small due to UI scaling | |
set supercollapsed h<element_h{0} 1 0 | |
set element_h * scale 20 | |
set tcp_padding * scale [7 7] | |
set tcp_LabelSize_min * scale 30 | |
set tcp_LabelSize tcp_LabelPair{0}==0 tcpLabelAutoMeasured{0}<tcp_LabelSize_min{0} tcp_LabelSize_min{0} + tcpLabelAutoMeasured{0} 10 tcp_LabelPair | |
set tcp_PanSize trackpanmode==3 20 43 | |
set this_tcp_indent * * scale tcp_indent{0} folderdepth{0} | |
set soloFlip_h * scale 52 ; height to switch solo&mute from stacked to side-by-side | |
set folder_sec * scale ?tcp_control_align{0} \ | |
+ [0 0 20] * [0 0 1] * tcp_indent{0} maxfolderdepth{0} \ | |
+ [0 0 20] * [0 0 1] * tcp_indent{0} folderdepth{0} | |
set tcp_MeterSize_min * scale 18 | |
set meter_sec + + + * scale + [0 0 tcp_MeterSize{0}] [0 0 33] [folder_sec{2} 0 0 h] h<soloFlip_h{0} tcp_MeterSize{0}<tcp_MeterSize_min{0} * scale [0 0 17] [0] [0] [0] | |
set meterRight tcp_MeterLoc{0}<2 tcp_MeterLoc{0} ?recarm 0 1 | |
set meter_sec ?meterRight{0} - [w 0 meter_sec meter_sec] [meter_sec{2}] | |
set main_sec + - - [folder_sec{2} 0 w h] [0 0 folder_sec{2}] [0 0 meter_sec{2}] !meterRight{0} [meter_sec{2}] [0] | |
set labelEnd + tcp_LabelSize{0} 54 ; tune 54 by eye. Sorry. | |
set labelFlip main_sec{2}<labelEnd{0} 1 0 | |
set mainCollapse_w * scale 90 | |
set mainCollapse main_sec{2}<mainCollapse_w{0} 1 0 ; collapse main_sec to enough for a flipped label if its too small to be useful, then scale meter to fill the gap | |
set main_sec ?supercollapsed{0} [0] ?mainCollapse{0} ?meterRight{0} \ | |
[folder_sec{2} 0 element_h{0} h] \ | |
- [w 0 element_h{0} h] [element_h{0}] \ | |
?labelFlip{0} - main_sec [0 0 element_h{0}] main_sec ; reduce main_sec if label is flipped | |
set main_eff ?mainCollapse{0} 0 main_sec{2} ; effective width of main_sec, used to determine row end | |
set meter_sec ?supercollapsed{0} [0] ?mainCollapse{0} ?meterRight{0} \ | |
- + [main_sec 0 w h] [main_sec{2} 0] + [0 0 main_sec{0}] [0 0 main_sec] \ | |
- - [folder_sec{2} 0 w h] [0 0 folder_sec] * scale [0 0 20] | |
set tcpMinSize + + * scale h<soloFlip_h{0} 60 44 folder_sec{2} element_h{0} | |
set tcp.size + * scale [300 100] [0 0 tcpMinSize{0}] | |
set tcp_LabelSize ?labelFlip{0} [0] ; not included in mainsec calculations if flipped | |
set tcp_squash_height + + * scale 20 tcp_padding{1} tcp_padding{1} | |
set h_less_border - h 1 | |
set tcp_padding h_less_border{0}<tcp_squash_height{0} + [tcp_padding] * [0 1] / - h_less_border{0} element_h 2 | |
set tcpNullElement + [main_sec] + [tcp_padding tcp_padding] * scale [0 0 0 20] | |
set previous_element tcpNullElement ; Let's start at the very beginning. A very good place to start. | |
endMacro | |
macro doHideLogic element paramIdx | |
set hide_##element param##paramIdx##&1 ?mixer_visible 1 0 | |
set hide_##element param##paramIdx##&2 !track_selected 1 hide_##element | |
set hide_##element param##paramIdx##&4 !recarm 1 hide_##element | |
set hide_##element param##paramIdx##&8 1 hide_##element | |
endmacro | |
macro then element width use_padding | |
; apply scale | |
set s_width * width scale | |
set prev_end + [previous_element] [previous_element{2}] ; find the end of the previous element | |
set element [prev_end previous_element s_width element_h] ; ...and place the element there | |
set element ?hide_##element{0} [. . 0 element_h] ; apply hide params | |
; x-axis | |
set element ?use_padding !hide_##element{0} + [tcp_padding] ; if x-padding is required, add it | |
set this_end - + + [element] [element{2}] [tcp_padding] [main_sec] ; okay, and what does that make the x-end of this element, realtive to main_sec? | |
set element ?mainCollapse{0} [. . 0 0] | |
; y-axis | |
set next_row + [0 element] [0 previous_element{3}] ; find the y of the next row | |
set element this_end{0}>main_eff{0} + [main_sec next_row element element] tcp_padding ; move it to the next row | |
set this_end - + + [element] [element{2}] [tcp_padding] [main_sec] ; recalculate this_end, now that the element is on a new row | |
set element this_end{0}>main_eff{0} [. . 0 0] ; ... and cull if there's still not enough main_sec width to fit | |
set this_y_end + + element{1} element{3} tcp_padding{1} ; find its bottom | |
set element this_y_end{0}>main_sec{3} [0] !previous_element{2} !previous_element{3} [0] . . ; cull if there's not enough height to fit, or if previous_element was culled | |
; values readout control | |
set valuesRoom - - main_sec{3} this_y_end{0} tcp_padding{1} ; is the remaining height after this element enough for the values to fit? | |
set hideValues valuesRoom{0}<8 element{3}!=0 [1] . . ; if not, and this element isn't already hidden, cull the values | |
set previous_element element | |
set main_sec_last element{3}>0 this_y_end{0} . | |
endmacro | |
; ---- MODDING WITH 'THEN' ---- | |
Elements within the main section of the TCP flow one after another based on the previous element's position and size, | |
and will move to the next row if necessary, and hide if there's not enough room. The order they appear is determined in | |
the 'then' sections. Because of the way WALTER's syntax works, it is not possible to do this with a script. However, | |
its very easy for you to mod ...just change the line order in the 'then' section. | |
; ----------------------------- | |
macro drawTcp scale | |
set OSoffs os_type==1 [0 2 0 -2] | |
set tcp.foldercomp ?supercollapsed{0} [0] + + [this_tcp_indent] [folder_sec] * scale [0 0 18 19] | |
set tcp.folder ?supercollapsed{0} [0] + [this_tcp_indent] * [1 scale{0} scale{0} scale{0} 1 1 1 1] [folder_sec 86 18 14 0 1 0 1] | |
set tcp_folder_min * scale 32 | |
set tcp.folder h<tcp_folder_min{0} folderstate<0 . [0] . | |
set tcp.trackidx + + [0 0 this_tcp_indent] [folder_sec 0 0 0 0 0 0 1] * scale [0 0 18 100] | |
set tcp.trackidx ?supercollapsed{0} + tcp.trackidx * scale [0 0 0 40] | |
set tcp_idx_margin - / h 2 * scale 18 | |
set tcp.trackidx.margin + [this_tcp_indent] + [0 tcp_idx_margin 0 tcp_idx_margin 0.5] folderstate<0 * scale [0 -6 0 6] folderstate==1 * scale [0 16] 0 | |
set tcp.trackidx.font scale{0}==1 [2] scale{0}==1.5 [7] [12] | |
text_over_custom tcp.trackidx.color | |
set tcp.trackidx.color [170 170 170] . ; b0se tweak. Default: ?track_selected [50 50 50] . | |
set tcp.mute + + [meter_sec] [meter_sec{2}] h>=soloFlip_h{0} * scale [-25 3 21 20] + [0 tcp_padding] * scale [-43 0 21 20] | |
set tcp.solo h>=soloFlip_h{0} + + [0 2] tcp.mute [0 tcp.mute{3}] \ | |
- + tcp.mute [tcp.mute{2}] [2] | |
set phaseHide_h + + + * scale 4 element_h tcp.solo{1} tcp.solo{3} | |
set tcp.phase h<phaseHide_h{0} [0] + * scale [3 -24 16 20] [tcp.mute meter_sec{3}] | |
set tcp.meter - - - + meter_sec * scale [5 2 -5 -5] [0 0 tcp.mute{2}] [0 0 tcp_padding{0}] h<soloFlip_h{0} * scale [0 0 18] [0] | |
set tcp.meter.vu.div [1] | |
set tcp.meter.readout.color ?hide_meter_values{0} [0 0 0 0 0 0 0 0] [100 100 100 255 255 183 171 255] | |
set tcp.meter.scale.color.lit.bottom ?hide_meter_values{0} [0 0 0 0 0 0 0 0] [0 0 0 170 0 0 0 0] | |
set tcp.meter.scale.color.lit.top ?hide_meter_values{0} [0 0 0 0 0 0 0 0] [0 0 0 170 0 0 0 0] | |
set tcp.meter.scale.color.unlit.bottom ?hide_meter_values{0} [0 0 0 0 0 0 0 0] ?recarm [211 70 70 255 0 0 0 0] [255 255 255 60 0 0 0 0] | |
set tcp.meter.scale.color.unlit.top ?hide_meter_values{0} [0 0 0 0 0 0 0 0] ?recarm [211 70 70 255 0 0 0 0] [255 255 255 60 0 0 0 0] | |
set tcp.label ?labelFlip{0} + [main_sec 0 1 -2] [main_eff{0} 0 element_h{0} h] | |
set tcp.label.margin ?labelFlip{0} [4 1 2 1 0.5] * scale + OSoffs [4 0 2 3 0] | |
set tcp.label.font scale{0}==1 [3] scale{0}==1.5 [8] [13] | |
trackLabelColor tcp.label.color | |
set tcp.fx !fx_group{2} [0] + [fx_group fx_group] + * scale [0 0 20] [0 0 0 element_h{0}] | |
set tcp.fxbyp !fx_group{2} [0] + + [tcp.fx tcp.fx] [tcp.fx{2}] + * scale [0 0 16] [0 0 0 element_h{0}] | |
set tcp.fxin !input_group{2} [0] + [input_group input_group] + * scale [0 0 29] [0 0 0 element_h{0}] | |
set tcp.recinput !input_group{2} [0] - + + [tcp.fxin tcp.fxin] [tcp.fxin{2} 0 input_group] [0 0 0 element_h{0}] [0 0 tcp.fxin{2}] | |
set tcp.recinput.color ?track_selected [255 255 255] [225 225 225] | |
set tcp.recinput.font scale{0}==1 [1] scale{0}==1.5 [6] [11] | |
set tcp.recinput.margin * [scale scale scale scale 1] [0 0 20 0 0.5] | |
set tcp.pan !pan_group{2} [0 0 0 0] trackpanmode==6 \ | |
* [pan_group pan_group pan_group pan_group element_h{0}] [1 1 1 0.5] \ | |
[pan_group pan_group element_h{0} element_h{0}] ; knobs have the same h and w | |
set tcp.pan.fadermode gl_fader_swap | |
set tcp.pan.color gl_pan_color | |
set tcp.width trackpanmode==3 [0] !pan_group{2} [0 0 0 0] trackpanmode==6 \ | |
+ [tcp.pan tcp.pan tcp.pan tcp.pan] [0 tcp.pan{3}] \ | |
- + [pan_group pan_group element_h{0} element_h{0}] [pan_group{2}] [element_h{0}] | |
set tcp.width.fadermode gl_fader_swap | |
set tcp.width.color gl_width_color | |
set volume_fader_w * 21 scale | |
set tcp.volume.fadermode tcp.volume{w}>volume_fader_w{0} [0] [1] | |
set tcp.volume.color [0 0 0] | |
set hideValues ?hide_values{0} 1 . | |
set values_sec hideValues{0}==1 [0] + [main_sec main_sec_last{0} main_sec] * scale [0 0 0 9] | |
set tcp.volume.label !values_sec{0} [0] + + * scale [0 -2 40 2] [values_sec values_sec 0 values_sec] [tcp_padding] | |
set tcp.volume.label.margin [0 1 0 0 0] | |
set tcp.volume.label.font scale{0}==1 [1] scale{0}==1.5 [6] [11] | |
set tcp.volume.label.color val_color | |
set tcp.width.label !values_sec{0} [0] main_eff{0}<122 [0] trackpanmode==3 [0] + + * scale [0 -2 36 2] [values_sec values_sec 0 values_sec] - [values_sec{2}] + * scale [36] [tcp_padding] | |
set tcp.width.label.margin + * scale [0 1] + OSoffs [0 0 0 0 1] | |
set tcp.width.label.font scale{0}==1 [1] scale{0}==1.5 [6] [11] | |
set tcp.width.label.color trackpanmode<=5 val_color + [90 140 90] * val_color [0.2 0.5 0.2] | |
set tcp.pan.label !values_sec{0} [0] main_eff{0}<122 [0] + + * scale [0 -2 36 2] [values_sec values_sec 0 values_sec] - [values_sec{2}] + + * scale [36] [tcp_padding] [tcp.width.label{2}] | |
set tcp.pan.label.margin tcp.width.label.margin | |
set tcp.pan.label.font tcp.width.label.font | |
set tcp.pan.label.color trackpanmode<=5 val_color + [120 70 70] * val_color [0.5 0.2 0.2] | |
; x-axis label hiding | |
set tcpVolLabelSpace + tcp.volume.label{2} tcp_padding{0} | |
set tcp.volume.label main_sec{2}<tcpVolLabelSpace{0} [0] . | |
set tcpPanLabelSpace + + + tcp.volume.label{2} tcp_padding{0} tcp.pan.label{2} tcp.width.label{2} | |
set tcp.pan.label main_sec{2}<tcpPanLabelSpace{0} [0] . | |
set tcpWidthLabelSpace + + tcp.volume.label{2} tcp_padding{0} tcp.width.label{2} | |
set tcp.width.label main_sec{2}<tcpWidthLabelSpace{0} [0] . | |
set tcp.dragdropinfo + [this_tcp_indent this_tcp_indent] * scale [0 tcp_indent{0}] | |
set tcp.fxparm - + + + [main_sec main_sec_last{0}] [tcp_padding] hideValues{0}==1 [0] + [0 values_sec{3}] [0 tcp_padding] \ | |
+ - - [0 0 main_sec] [0 0 tcp_padding{0}] [0 0 tcp_padding{0}] \ | |
- - - [0 0 0 main_sec] [0 0 0 main_sec_last{0}] [0 0 0 tcp_padding{1}] hideValues{0}==1 [0] + [0 0 0 values_sec] [0 0 0 tcp_padding{1}] \ | |
?labelFlip{0} [0 0 element_h{0}] [0] | |
set tcp.fxparm.font scale{0}==1 [1 24 100 100 -1] scale{0}==1.5 [6 36 150 150 -4] [11 48 200 200 -6] | |
set tcp.fxparm.margin * scale [10 0 3 0 0 14] ;b0se tweak | |
endMacro | |
front tcp.recarm tcp.label tcp.volume tcp.solo tcp.mute tcp.phase tcp.width tcp.foldercomp tcp.folder | |
paramPair tcp_indent 2 0 3 5 10 20 40 60 | |
paramPair tcp_control_align 79 0 1 | |
set tcpLabelAutoMeasured param19 | |
paramPair tcp_MeterSize 4 4 10 24 40 100 180 320 | |
paramPair tcp_MeterLoc 17 0 1 2 | |
paramPair tcp_VolSize 3 20 40 70 100 130 160 190 | |
paramPair tcp_InSize 20 49 64 80 100 130 190 240 | |
paramPair tcp_LabelPair 18 0 20 50 80 110 140 170 | |
set scale 1 | |
calcTcpSecs | |
resetHides | |
doHideLogic tcp.recarm 5 | |
doHideLogic tcp.recmon 6 | |
doHideLogic tcp.label 7 | |
doHideLogic tcp.volume 8 | |
doHideLogic tcp.io 9 | |
doHideLogic fx_group 10 | |
doHideLogic tcp.env 11 | |
doHideLogic pan_group 12 | |
doHideLogic tcp.recmode 13 | |
doHideLogic input_group 14 | |
doHideLogic values 15 | |
doHideLogic meter_values 16 | |
; ------------------------------ | |
; element size padding? | |
then tcp.recarm 20 0 | |
then tcp.recmon 15 0 | |
then tcp.label tcp_LabelSize 0 | |
then tcp.volume tcp_VolSize 0 | |
then tcp.io 34 1 | |
then fx_group 36 1 | |
then tcp.env 41 1 | |
then pan_group tcp_PanSize 1 | |
then tcp.recmode 39 1 | |
then input_group tcp_InSize 1 | |
drawTcp | |
; ------------------------------ | |
Layout "A" | |
set scale 1 | |
calcTcpSecs | |
resetHides | |
doHideLogic tcp.recarm 5 | |
doHideLogic tcp.recmon 6 | |
doHideLogic tcp.label 7 | |
doHideLogic tcp.volume 8 | |
doHideLogic tcp.io 9 | |
doHideLogic fx_group 10 | |
doHideLogic tcp.env 11 | |
doHideLogic pan_group 12 | |
doHideLogic tcp.recmode 13 | |
doHideLogic input_group 14 | |
doHideLogic values 15 | |
doHideLogic meter_values 16 | |
; element size padding? | |
then tcp.recarm 20 0 | |
then tcp.recmon 15 0 | |
then tcp.label tcp_LabelSize 0 | |
then tcp.volume tcp_VolSize 0 | |
then tcp.io 34 1 | |
then fx_group 36 1 | |
then tcp.env 41 1 | |
then pan_group tcp_PanSize 1 | |
then tcp.recmode 39 1 | |
then input_group tcp_InSize 1 | |
set tcp.label . | |
drawTcp scale | |
Layout "150%_A" "150" | |
set scale 1.5 | |
calcTcpSecs scale | |
then tcp.recarm 20 0 | |
then tcp.recmon 15 0 | |
then tcp.label tcp_LabelSize 0 | |
then tcp.volume tcp_VolSize 0 | |
then tcp.io 34 1 | |
then fx_group 36 1 | |
then tcp.env 41 1 | |
then pan_group tcp_PanSize 1 | |
then tcp.recmode 39 1 | |
then input_group tcp_InSize 1 | |
set tcp.label . | |
drawTcp scale | |
EndLayout | |
Layout "200%_A" "200" | |
set scale 2 | |
calcTcpSecs scale | |
then tcp.recarm 20 0 | |
then tcp.recmon 15 0 | |
then tcp.label tcp_LabelSize 0 | |
then tcp.volume tcp_VolSize 0 | |
then tcp.io 34 1 | |
then fx_group 36 1 | |
then tcp.env 41 1 | |
then pan_group tcp_PanSize 1 | |
then tcp.recmode 39 1 | |
then input_group tcp_InSize 1 | |
set tcp.label . | |
drawTcp scale | |
EndLayout | |
EndLayout | |
Layout "B" | |
paramPair tcp_MeterSize 32 4 10 22 40 80 160 320 | |
paramPair tcp_MeterLoc 45 0 1 2 | |
paramPair tcp_VolSize 31 20 40 70 100 130 160 190 | |
paramPair tcp_InSize 46 49 64 80 100 130 190 240 | |
paramPair tcp_LabelPair 47 0 20 50 80 110 140 170 | |
set scale 1 | |
calcTcpSecs | |
resetHides | |
doHideLogic tcp.recarm 33 | |
doHideLogic tcp.recmon 34 | |
doHideLogic tcp.label 35 | |
doHideLogic tcp.volume 36 | |
doHideLogic tcp.io 37 | |
doHideLogic fx_group 38 | |
doHideLogic tcp.env 39 | |
doHideLogic pan_group 40 | |
doHideLogic tcp.recmode 41 | |
doHideLogic input_group 42 | |
doHideLogic values 43 | |
doHideLogic meter_values 44 | |
; element size padding? | |
then tcp.recarm 20 0 | |
then tcp.recmon 15 0 | |
then tcp.label tcp_LabelSize 0 | |
then tcp.volume tcp_VolSize 0 | |
then tcp.io 37 1 | |
then fx_group 36 1 | |
then tcp.env 41 1 | |
then pan_group tcp_PanSize 1 | |
then tcp.recmode 39 1 | |
then input_group tcp_InSize 1 | |
drawTcp | |
Layout "150%_B" "150" | |
set scale 1.5 | |
calcTcpSecs scale | |
then tcp.recarm 20 0 | |
then tcp.recmon 15 0 | |
then tcp.label tcp_LabelSize 0 | |
then tcp.volume tcp_VolSize 0 | |
then tcp.io 34 1 | |
then fx_group 36 1 | |
then tcp.env 41 1 | |
then pan_group tcp_PanSize 1 | |
then tcp.recmode 39 1 | |
then input_group tcp_InSize 1 | |
set tcp.label . | |
drawTcp scale | |
EndLayout | |
Layout "200%_B" "200" | |
set scale 2 | |
calcTcpSecs scale | |
then tcp.recarm 20 0 | |
then tcp.recmon 15 0 | |
then tcp.label tcp_LabelSize 0 | |
then tcp.volume tcp_VolSize 0 | |
then tcp.io 34 1 | |
then fx_group 36 1 | |
then tcp.env 41 1 | |
then pan_group tcp_PanSize 1 | |
then tcp.recmode 39 1 | |
then input_group tcp_InSize 1 | |
set tcp.label . | |
drawTcp scale | |
EndLayout | |
EndLayout | |
Layout "C" | |
paramPair tcp_MeterSize 55 4 10 22 40 80 160 320 | |
paramPair tcp_MeterLoc 68 0 1 2 | |
paramPair tcp_VolSize 54 20 40 70 100 130 160 190 | |
paramPair tcp_InSize 69 49 64 80 100 130 190 240 | |
paramPair tcp_LabelPair 70 0 20 50 80 110 140 170 | |
set scale 1 | |
calcTcpSecs | |
resetHides | |
doHideLogic tcp.recarm 56 | |
doHideLogic tcp.recmon 57 | |
doHideLogic tcp.label 58 | |
doHideLogic tcp.volume 59 | |
doHideLogic tcp.io 60 | |
doHideLogic fx_group 61 | |
doHideLogic tcp.env 62 | |
doHideLogic pan_group 63 | |
doHideLogic tcp.recmode 64 | |
doHideLogic input_group 65 | |
doHideLogic values 66 | |
doHideLogic meter_values 67 | |
; element size padding? | |
then tcp.recarm 20 0 | |
then tcp.recmon 15 0 | |
then tcp.label tcp_LabelSize 0 | |
then tcp.volume tcp_VolSize 0 | |
then tcp.io 37 1 | |
then fx_group 36 1 | |
then tcp.env 41 1 | |
then pan_group tcp_PanSize 1 | |
then tcp.recmode 39 1 | |
then input_group tcp_InSize 1 | |
drawTcp | |
Layout "150%_C" "150" | |
set scale 1.5 | |
calcTcpSecs scale | |
then tcp.recarm 20 0 | |
then tcp.recmon 15 0 | |
then tcp.label tcp_LabelSize 0 | |
then tcp.volume tcp_VolSize 0 | |
then tcp.io 34 1 | |
then fx_group 36 1 | |
then tcp.env 41 1 | |
then pan_group tcp_PanSize 1 | |
then tcp.recmode 39 1 | |
then input_group tcp_InSize 1 | |
set tcp.label . | |
drawTcp scale | |
EndLayout | |
Layout "200%_C" "200" | |
set scale 2 | |
calcTcpSecs scale | |
then tcp.recarm 20 0 | |
then tcp.recmon 15 0 | |
then tcp.label tcp_LabelSize 0 | |
then tcp.volume tcp_VolSize 0 | |
then tcp.io 34 1 | |
then fx_group 36 1 | |
then tcp.env 41 1 | |
then pan_group tcp_PanSize 1 | |
then tcp.recmode 39 1 | |
then input_group tcp_InSize 1 | |
set tcp.label . | |
drawTcp scale | |
EndLayout | |
EndLayout | |
#< | |
#>------------------------- MASTER TRACK CONTROL PANEL -------------------------------- | |
macro calcMasterTcpSecs scale | |
set element_h * scale 20 | |
set tcp_MeterSize_s * scale tcp_MeterSize | |
set mTcp_PanSize trackpanmode==3 20 43 | |
set meter_flip_v * scale [100 130 183] ;[narrow_width flip_height flip_height(narrow)] | |
set meter_flip w>meter_flip_v{0} h<meter_flip_v{1} [1] [0] h<meter_flip_v{2} [1] [0] | |
set meterRight tcp_MeterLoc{0} | |
set meter_sec !meter_flip{0} [0] !meterRight{0} \ | |
* scale + [0 4 50 -1] [0 0 tcp_MeterSize_s h] \ | |
+ - + * scale [-33 0 33] [0 0 tcp_MeterSize_s h] [tcp_MeterSize_s] [w] | |
set vol_sec !meter_flip{0} [0] !meterRight{0} \ | |
+ - [meter_sec{2} h w] [0 0 meter_sec{2}] * scale [3 -20 -2 21] \ | |
- + [0 h w] * scale [0 -22 -3 22] [0 0 meter_sec{2}] | |
set main_sec ?meter_flip{0} \ | |
!meterRight{0} \ | |
- - - [meter_sec{2} 0 w h] * scale [0 6] [0 0 meter_sec{2}] [0 0 0 vol_sec] \ | |
- - [0 0 w h] * scale [6 6] [0 0 meter_sec{2} vol_sec] \ | |
- - [0 0 w h] * scale [0 6] [0 0 0 meter_sec] | |
set main_eff main_sec{2} | |
set mainCollapse_h * scale 64 | |
set mainCollapse main_sec{2}<mainCollapse_h{0} 1 0 | |
set tcp_padding * scale [7 7] | |
set tcpNullElement + + [main_sec main_sec] [tcp_padding tcp_padding] * scale [0 6 0 20] | |
set previous_element tcpNullElement | |
endMacro | |
macro drawMasterTcp scale | |
set master.tcp.size * scale [300 100 40 56] | |
set main_sec !meter_flip{0} + [0 0 0 this_y_end{0}] * scale [0 0 0 8] ; recalculate sections now we know this_y_end | |
set vol_sec !meter_flip{0} + [0 main_sec{3} w tcp_padding{1}] * scale [0 0 0 22] . | |
set meter_sec ?mainCollapse{0} [0 0 w h] !meter_flip{0} tcp_fxparms>0 \ | |
+ [0 vol_sec w 70] [0 vol_sec{3}] \ | |
- - + [0 vol_sec w h] [0 vol_sec{3}] [0 0 0 main_sec] [0 0 0 vol_sec] | |
set master.tcp.meter - - + meter_sec * scale [5 2 -5 -5] [0 0 tcp.mute{2}] [0 0 tcp_padding{0}] | |
set master.tcp.meter.vu.div [1] | |
set master.tcp.meter.readout.color [100 100 100 255 255 183 171 255] | |
set master.tcp.meter.scale.color.lit.bottom [0 0 0 200 0 0 0 0] | |
set master.tcp.meter.scale.color.lit.top [0 0 0 200 0 0 0 0] | |
set master.tcp.meter.scale.color.unlit.bottom [255 255 255 120 0 0 0 0] | |
set master.tcp.meter.scale.color.unlit.top [255 255 255 120 0 0 0 0] | |
set master.tcp.mute + + [meter_sec meter_sec] [meter_sec{2}] * scale [-25 4 21 20] | |
set master.tcp.solo + + * scale [0 2] master.tcp.mute [0 master.tcp.mute{3}] | |
set master.tcp.label.color tcp.label.color | |
set master.tcp.label.font scale{0}==1 [3] scale{0}==1.5 [8] [13] | |
set master.tcp.volume ?mainCollapse{0} [0] + vol_sec * scale + [0 0 -1 -2] * ?meter_flip{0} [1 0 -1 0] [1 0 -1 -1] [1 0 1 3] | |
set volume_fader_w * 21 scale | |
set master.tcp.volume.fadermode master.tcp.volume{w}>volume_fader_w{0} [0] [1] | |
set master.tcp.volume.color [0 0 0] | |
set master.tcp.fx !master_fx_group{2} [0] + * scale [0 0 20] [master_fx_group master_fx_group 0 element_h{0}] | |
set master.tcp.fxbyp !master_fx_group{2} [0] + + * scale [0 0 16] [master.tcp.fx master.tcp.fx 0 element_h{0}] [master.tcp.fx{2}] | |
set master.tcp.pan !master_pan_group{2} [0 0 0 0] trackpanmode==6 \ | |
* [master_pan_group master_pan_group master_pan_group master_pan_group element_h{0}] [1 1 1 0.5] \ | |
[master_pan_group master_pan_group element_h{0} element_h{0}] ; knobs have the same h and w | |
set master.tcp.pan.fadermode gl_fader_swap | |
set master.tcp.pan.color gl_pan_color | |
set master.tcp.width trackpanmode==3 [0] !master_pan_group{2} [0 0 0 0] trackpanmode==6 \ | |
+ [master.tcp.pan master.tcp.pan master.tcp.pan master.tcp.pan] [0 master.tcp.pan{3}] \ | |
- + [master_pan_group master_pan_group element_h{0} element_h{0}] [master_pan_group{2}] [element_h{0}] | |
set master.tcp.width.fadermode gl_fader_swap | |
set master.tcp.width.color gl_pan_color | |
set hideValues ?mainCollapse{0} 1 ?hide_values{0} 1 . . | |
set main_val_color ?track_selected [160 160 160] [115 115 115] | |
set master.tcp.volume.label hideValues{0}==1 [0] + + * scale [0 -9 40 9] [main_sec main_sec{3}] - [tcp_padding] [0 tcp_padding] | |
set master.tcp.volume.label.margin [0 1 0 0 0] | |
set master.tcp.volume.label.color main_val_color | |
set master.tcp.volume.label.font scale{0}==1 [1] scale{0}==1.5 [6] [11] | |
set master.tcp.width.label hideValues{0}==1 [0] main_eff{0}<122 [0] trackpanmode==3 [0] + [main_sec master.tcp.volume.label] - + [main_eff{0}] * scale [-36 0 36 9] [tcp_padding] | |
set master.tcp.width.label.margin + [0 0 0 0 1] * scale [0 1] | |
set master.tcp.width.label.color trackpanmode<=5 main_val_color [90 130 90] | |
set master.tcp.width.label.font master.tcp.volume.label.font | |
set master.tcp.pan.label hideValues{0}==1 [0] main_eff{0}<86 [0] + [main_sec master.tcp.volume.label] - - + [main_eff{0}] * scale [-36 0 36 9] [tcp_padding] [master.tcp.width.label{2}] | |
set master.tcp.pan.label.margin + [0 0 0 0 1] * scale [0 1] | |
set master.tcp.pan.label.color trackpanmode<=5 main_val_color [130 90 90] | |
set master.tcp.pan.label.font master.tcp.volume.label.font + | |
set master.tcp.fxparm - + + [0 meter_sec w h] [0 meter_sec{3}] [0 tcp_padding] + + [0 0 0 meter_sec{1}] [0 0 0 meter_sec{3}] [0 0 0 tcp_padding{1}] | |
set master.tcp.fxparm.margin * scale [3 0 3 0 0 14] | |
endMacro | |
paramPair tcp_MeterSize 4 4 10 22 40 80 160 320 | |
paramPair tcp_MeterLoc 17 0 1 2 | |
set scale 1 | |
calcMasterTcpSecs 1 | |
resetHides | |
doHideLogic master_pan_group 12 | |
doHideLogic values 15 | |
doHideLogic meter_values 16 | |
; element size padding? | |
then master.tcp.label 50 0 | |
then master.tcp.io 34 1 | |
then master_fx_group 36 1 | |
then master.tcp.env 41 1 | |
then master_pan_group mTcp_PanSize 1 | |
then master.tcp.mono 37 1 | |
drawMasterTcp 1 | |
Layout "A" | |
set scale 1 | |
calcMasterTcpSecs 1 | |
then master.tcp.label 50 0 | |
then master.tcp.io 34 1 | |
then master_fx_group 36 1 | |
then master.tcp.env 41 1 | |
then master_pan_group mTcp_PanSize 1 | |
then master.tcp.mono 37 1 | |
set master.tcp.label . | |
drawMasterTcp 1 | |
EndLayout | |
Layout "150%_A" "150" | |
set scale 1.5 | |
calcMasterTcpSecs 1.5 | |
then master.tcp.label 50 0 | |
then master.tcp.io 34 1 | |
then master_fx_group 36 1 | |
then master.tcp.env 41 1 | |
then master_pan_group mTcp_PanSize 1 | |
then master.tcp.mono 37 1 | |
set master.tcp.label . | |
drawMasterTcp 1.5 | |
EndLayout | |
Layout "200%_A" "200" | |
set scale 2 | |
calcMasterTcpSecs 2 | |
then master.tcp.label 50 0 | |
then master.tcp.io 34 1 | |
then master_fx_group 36 1 | |
then master.tcp.env 41 1 | |
then master_pan_group mTcp_PanSize 1 | |
then master.tcp.mono 37 1 | |
set master.tcp.label . | |
drawMasterTcp 2 | |
EndLayout | |
#< | |
#> -------------------------- ENVELOPE CONTROL PANELS --------------------------------- | |
paramPair EnvcpLabelSize 21 0 20 50 80 110 140 170 | |
paramPair EnvcpVolSize 23 20 40 70 100 130 160 190 | |
set EnvLabelAutoMeasured param22 | |
set EnvFolderIndent param24 | |
clear envcp.* | |
front envcp.fader | |
macro calcEnvSecs scale | |
set envcp.size * scale [300 100] | |
set element_h * scale 20 | |
set envcp_padding * scale [7 7] | |
set values_w * scale 60 | |
set envcp_squash_height + + * scale 20 envcp_padding{1} envcp_padding{1} | |
set valuesFlipH + + envcp_squash_height * scale 13 envcp_padding{1} | |
set h_less_border - h 1 | |
set envcp_padding h_less_border{0}<envcp_squash_height{0} + [envcp_padding] * [0 1] / - h_less_border{0} element_h * scale 2 | |
set envLabelMin * scale 30 | |
set Envcp_labelSize EnvcpLabelSize{0}==0 EnvLabelAutoMeasured{0}<envLabelMin{0} envLabelMin{0} + EnvLabelAutoMeasured{0} * scale 10 EnvcpLabelSize | |
set this_envcp_indent + ?EnvFolderIndent{0} * * scale tcp_indent{0} folderdepth{0} [0] * scale [-3 0 -6] ; subtracting 3px to match the lack of visible borders | |
set main_sec - + * [1 0 -1] this_envcp_indent [0 0 w h] h<valuesFlipH{0} [0 0 values_w 0] + * scale [0 0 0 13] [0 0 0 envcp_padding{1}] | |
set values_sec h<valuesFlipH{0} + + [main_sec envcp_padding{1} values_w{0}] [main_sec{2}] * scale [0 4 0 13] + [0 main_sec{3} w] * scale [0 0 0 13] | |
set envcpNullElement + + [main_sec] [envcp_padding envcp_padding] * scale [0 0 0 20] | |
set previous_element envcpNullElement ; Let's start at the very beginning. A very good place to start. | |
set addCont envcp_type==4 [30 1] [0 0] | |
endMacro | |
set scale 1 | |
calcEnvSecs scale | |
macro envThen element width use_padding | |
; apply scale | |
set s_width * width scale | |
set prev_end + [previous_element] [previous_element{2}] ; find the end of the previous element | |
set element [prev_end previous_element s_width element_h] ; ...and place the element there | |
; x-axis | |
set element ?use_padding + [envcp_padding] ; if x-padding is required, add it | |
set this_end - + + [element] [element{2}] [envcp_padding] [main_sec] ; okay, and what does that make the x-end of this element, realtive to main_sec? | |
; y-axis | |
set next_row + [0 element] [0 previous_element{3}] ; find the y of the next row | |
set element this_end{0}>main_sec{2} + [main_sec next_row element element] envcp_padding ; move it to the next row | |
set this_end - + + [element] [element{2}] [envcp_padding] [main_sec] ; recalculate this_end, now that the element is on a new row | |
set element this_end{0}>main_sec{2} [. . 0 .] ; ... and cull if there's still not enough main_sec width to fit | |
set this_y_end + + element{1} element{3} envcp_padding{1} ; find its bottom | |
set element this_y_end{0}>main_sec{3} [0] !previous_element{1} [0] . ; cull if there's not enough height to fit, or if previous_element was culled | |
set main_sec_last element{3}>0 this_y_end{0} . | |
; values readout control | |
set valuesRoom - - main_sec{3} this_y_end{0} envcp_padding{1} ; is the remaining height after this element enough for the values to fit? | |
set hideValues valuesRoom{0}<8 element{3}!=0 [1] . ; if not, and this element isn't already hidden, cull the values | |
set previous_element element | |
endmacro | |
; element size padding? | |
envThen envcp.arm 20 0 | |
envThen envcp.bypass 15 0 | |
envThen envcp.label envcp_labelSize 0 | |
envThen envcp.fader EnvcpVolSize 0 | |
envThen envcp.mod addCont{0} addCont{1} | |
envThen envcp.learn addCont{0} addCont{1} | |
envThen envcp.hide 36 1 | |
macro drawEnvcp scale | |
set envcp.label.color [184 184 184] | |
set envcp.label.margin * scale [2 0 2 0 0] | |
set envcp.label.font scale{0}==1 [1] scale{0}==1.5 [6] [11] | |
set envcp.value + values_sec [0 0 0 4] | |
set envcp.value.font scale{0}==1 [1] scale{0}==1.5 [6] [11] | |
set envcp.value.color [92 184 169] | |
set envcp.value.margin * [0 0 scale 0 1] [0 0 7 0 1] | |
set envcp.fader.color [54 217 190] | |
set env_fader_w * 21 scale | |
set envcp.fader.fadermode envcp.fader{w}>env_fader_w{0} [0] [1] | |
endMacro | |
drawEnvcp | |
Layout "A" | |
set envcp.label . | |
drawEnvcp | |
Layout "150%_A" "150" | |
set scale 1.5 | |
calcEnvSecs scale | |
; element size padding? | |
envThen envcp.arm 20 0 | |
envThen envcp.bypass 15 0 | |
envThen envcp.label envcp_labelSize 0 | |
envThen envcp.fader EnvcpVolSize 0 | |
envThen envcp.mod addCont{0} addCont{1} | |
envThen envcp.learn addCont{0} addCont{1} | |
envThen envcp.hide 36 1 | |
set envcp.label . | |
drawEnvcp scale | |
EndLayout | |
Layout "200%_A" "200" | |
set scale 2 | |
calcEnvSecs scale | |
; element size padding? | |
envThen envcp.arm 20 0 | |
envThen envcp.bypass 15 0 | |
envThen envcp.label envcp_labelSize 0 | |
envThen envcp.fader EnvcpVolSize 0 | |
envThen envcp.mod addCont{0} addCont{1} | |
envThen envcp.learn addCont{0} addCont{1} | |
envThen envcp.hide 36 1 | |
set envcp.label . | |
drawEnvcp scale | |
EndLayout | |
EndLayout | |
#< | |
#>---------------------------------- THE MIXER ---------------------------------------- | |
macro doModeLogic variable paramIdx | |
set variable param##paramIdx##&1 ?track_selected 1 0 | |
set variable param##paramIdx##&2 !track_selected 1 variable | |
set variable param##paramIdx##&4 ?recarm 1 variable | |
set variable param##paramIdx##&8 !recarm 1 variable | |
endmacro | |
macro drawMcp scale | |
set hide_inputFX_s * scale hide_inputFX | |
set hide_input_s * scale hide_input | |
set hide_pan_labels_s * scale hide_pan_labels | |
set hide_pan_s * scale hide_pan | |
set hide_volume_label_s * scale hide_volume_label | |
set extmixer_w_s * scale extmixer_w | |
set mcp_indent_s * scale mcp_indent | |
set mcp_meterExp_s * scale mcp_meterExp | |
clear mcp.* | |
front mcp.label mcp.volume.label mcp.volume mcp.recarm mcp.recmon mcp.mute mcp.solo mcp.env mcp.io mcp.phase mcp.width mcp.trackidx mcp.folder | |
set mcp_meterExp_s ?meterExpMode{0} . 1 | |
set panLabelsMode h<hide_pan_labels_s{x} 0 labelsMode | |
set gapmode mcp_border{0}<1 0 \ | |
mcp_border{0}==1 1 \ | |
mcp_border{0}==2 2 \ | |
mcp_border{0}==3 folderstate==1 folderdepth==0 1 0 folderstate<0 folderdepth==1 2 0 0 \ | |
folderstate==1 1 folderstate<0 2 0 | |
set nchan_offs ?meterExpMode{0} * - tracknch 2 mcp_meterExp_s [0] | |
set nchan_offs_half / nchan_offs 2 | |
set nchan_offs_third / nchan_offs 3 | |
set nchan_offs_twothird * nchan_offs_third 2 | |
set mcp.size + + \ | |
+ ?narrowMode{0} \ | |
* scale [54 371] \ | |
* scale [86 371] \ | |
mcp_meterExp_s{0}>0 [nchan_offs{0}] [0] \ | |
+ gapmode{0}>=1 * scale [14] [0] \ | |
!sidebarMode{0} [0] [extmixer_w_s] \ | |
* [0 0 0 scale{0}] + 180 * mcp_maxfolderdepth mcp_indent_s ; set the min height | |
set sidebar_sec + + [0 0 0 0] gapmode{0}>=1 gapmode{0}!=2 * scale [0 0 14] [0] [0] !sidebarMode{0} [0] [0 0 extmixer_w_s{0}] | |
set fx_sec + [sidebar_sec{2} 0 mcp.size{0}] * scale [0 0 0 33] | |
set pan_sec + [sidebar_sec{2} fx_sec{3} mcp.size{0}] * scale !panLabelsMode{0} h<hide_pan_s{0} [0 0 0 6] [0 0 0 28] [0 0 0 48] | |
set in_sec + + [sidebar_sec{2} pan_sec{1}] [0 pan_sec{3} mcp.size{0}] * scale h<hide_input_s{0} [0 0 0 22] h<hide_inputFX_s{0} [0 0 0 42] [0 0 0 54] | |
set bot_sec_height ?mcp_control_align{0} \ | |
+ * scale 47 * mcp_maxfolderdepth mcp_indent_s \ | |
+ * scale 47 * folderdepth mcp_indent_s | |
set bot_sec - [0 h mcp.size{0} bot_sec_height{0}] [0 bot_sec_height{0}] | |
set stretch_sec_start + + fx_sec{3} pan_sec{3} in_sec{3} | |
set stretch_sec_height - - - - h fx_sec{3} pan_sec{3} in_sec{3} bot_sec{3} | |
set stretch_sec [sidebar_sec{2} stretch_sec_start{0} mcp.size{0} stretch_sec_height{0}] | |
set sidebar_sec + + + sidebar_sec [0 0 0 stretch_sec{1}] [0 0 0 stretch_sec{3}] [0 0 0 1] | |
set padding_reduction_h * scale [300 200] | |
set padding * scale stretch_sec_height{0}<padding_reduction_h{0} stretch_sec_height{0}<padding_reduction_h{1} [0 2] [0 3] [0 4] | |
set mcp.extmixer.mode !sidebarMode{0} [0] [1] | |
set mcp.extmixer.position + + sidebar_sec + [1 0 1] * scale [0 2 0 -2] gapmode{0}>=1 gapmode{0}!=2 * scale [13 0 -13] [0] [0] | |
set mcp.fxlist.font scale==1 [1 16] scale==1.5 [6 24] [11 32] | |
set mcp.fxlist.margin * [scale scale scale scale 1 scale] [4 0 4 0 0.5 14] | |
set mcp.sendlist.font scale==1 [1 16] scale==1.5 [6 24] [11 32] | |
set mcp.sendlist.margin * scale [4 0 4 0 0 0 14] | |
set mcp.fxparm.font scale{0}==1 [1 24 0 0 -1] scale{0}==1.5 [6 36 0 0 -4] [11 48 0 0 -6] | |
set mcp.fxparm.margin * scale [10 0 4 0 0 14] ;b0se (left margin: default = 2) | |
set mcp.fx + [fx_sec 0 nchan_offs_twothird{0}] * scale ?narrowMode{0} [4 7 28 20] [7 7 43 20] | |
set mcp.fxbyp + + [mcp.fx mcp.fx nchan_offs_third{0}] [mcp.fx{2}] * scale ?narrowMode{0} [0 0 19 20] [0 0 29 20] | |
set mcp.pan ?narrowMode{0} \ | |
h<hide_pan_s{0} [0] + [pan_sec pan_sec] trackpanmode==6 + [0 0 nchan_offs{0}] * scale !panLabelsMode{0} [3 6 48 9] [3 15 48 9] \ | |
trackpanmode>=4 + [nchan_offs_third{0}] * scale !panLabelsMode{0} [28 4 20 20] [26 7 20 20] \ | |
+ [nchan_offs_half{0}] * scale !panLabelsMode{0} [18 4 20 20] [18 7 20 20] \ | |
h<hide_pan_s{0} [0] + [pan_sec pan_sec] trackpanmode==6 + [0 0 nchan_offs{0}] * scale !panLabelsMode{0} [7 6 73 9] [7 15 73 9] \ | |
trackpanmode>=4 + [nchan_offs_third{0}] * scale !panLabelsMode{0} [20 4 20 20] [20 7 20 20] \ | |
+ [nchan_offs_half{0}] * scale !panLabelsMode{0} [33 4 20 20] [33 7 20 20] | |
set mcp.pan.fadermode gl_fader_swap | |
set mcp.pan.color gl_pan_color | |
set mcp.pan.label ?narrowMode{0} \ | |
!panLabelsMode{0} [0] + [pan_sec mcp.pan] trackpanmode>=4 trackpanmode==6 + [nchan_offs_half{0}] * scale [11 -11 35 9] + [nchan_offs_half{0}] h<hide_input_s{0} [0] * scale [17 25 35 10] + [nchan_offs_half{0}] * scale [10 25 35 10] \ | |
!panLabelsMode{0} [0] + [pan_sec mcp.pan] trackpanmode>=4 trackpanmode==6 + [nchan_offs_half{0}] * scale [23 -11 40 9] + [nchan_offs_third{0}] * scale [8 25 35 10] + [nchan_offs_half{0}] * scale [26 25 35 10] | |
set mcp.pan.label.color [180 180 180] ;val_color | |
set mcp.pan.label.font scale==1 [1] scale==1.5 [6] [11] | |
set mcp.pan.label.margin [0 0 0 0 0.5] | |
set mcp.width ?narrowMode{0} \ | |
h<hide_pan_s{0} [0] + [pan_sec pan_sec] trackpanmode==6 + [0 0 nchan_offs{0}] * scale !panLabelsMode{0} [3 14 48 9] [3 23 48 9] \ | |
trackpanmode>=4 + [nchan_offs_third{0}] + [nchan_offs_third{0}] !panLabelsMode{0} * scale [7 20 20 20] h<hide_input{0} [9 31 20 20] [9 46 20 20] [0] \ | |
h<hide_pan_s{0} [0] + [pan_sec pan_sec] trackpanmode==6 + [0 0 nchan_offs{0}] * scale !panLabelsMode{0} [7 14 73 9] [7 23 73 9] \ | |
trackpanmode>=4 + [nchan_offs_third{0}] + [nchan_offs_third{0}] * scale !panLabelsMode{0} [48 4 20 20] [48 7 20 20] [0] | |
set mcp.width.fadermode gl_fader_swap | |
set mcp.width.color gl_width_color | |
set mcp.width.label ?narrowMode{0} \ | |
!panLabelsMode{0} [0] + [0 mcp.width] trackpanmode>=4 trackpanmode==6 + [mcp.pan.label] * scale [0 11 35 9] h<hide_inputFX_s{0} [0] [3 25 35 9] [0] \ | |
!panLabelsMode{0} [0] + [0 mcp.width] trackpanmode>=4 trackpanmode==6 + [mcp.pan.label] * scale [0 11 40 9] + [nchan_offs_third{0}] + * scale [-5 25 35 10] [mcp.width] [0] | |
set mcp.width.label.color val_color | |
set mcp.width.label.font scale==1 [1] scale==1.5 [6] [11] | |
set mcp.width.label.margin [0 0 0 0 0.5] | |
set mcp.recinput h<hide_input_s{0} [0] + [in_sec in_sec nchan_offs{0}] * scale ?narrowMode{0} trackpanmode==5 [0] [6 0 43 16] [6 0 75 16] | |
set mcp.recinput.color ?track_selected [225 225 225] [200 200 200] | |
set mcp.recinput.font scale==1 [1] scale==1.5 [6] [11] | |
set mcp.recinput.margin * scale [4 0 15 0 0] | |
set mcp.fxin ?narrowMode{0} [0] h<hide_inputFX_s{0} [0] + [mcp.recinput mcp.recinput] + [nchan_offs{0}] * scale [0 16 75 12] ; REFINE NARROW MODE | |
set mcp.recmode ?narrowMode{0} [0] + + [in_sec in_sec nchan_offs{0}] [0 mcp.fxin{3}] * scale + [6 4 41 16] mcp.recinput{3}>0 [0 16] [0 -4] | |
set mcp.meter ?narrowMode{0} + * scale [4 4 20 -31] [stretch_sec stretch_sec nchan_offs{0} stretch_sec] \ | |
+ [stretch_sec stretch_sec nchan_offs{0} stretch_sec] * scale h<hide_volume_label_s{0} [4 4 23 -4] !labelsMode{0} [4 4 23 -4] [4 23 23 -23] ; b0se: using hacked GFX | |
set mcp.meter.vu.div [1 1] | |
set mcp.meter.readout.color !labelsMode{0} [0 0 0 0 0 0 0 0] [100 100 100 255 255 183 171 255] | |
set mcp.meter.scale.color.lit.bottom !labelsMode{0} [0 0 0 0 0 0 0 0] [0 0 0 170 0 0 0 0] | |
set mcp.meter.scale.color.lit.top !labelsMode{0} [0 0 0 0 0 0 0 0] [0 0 0 170 0 0 0 0] | |
set mcp.meter.scale.color.unlit.bottom !labelsMode{0} [0 0 0 0 0 0 0 0] ?recarm [211 70 70 255 0 0 0 0] [255 255 255 60 0 0 0 0] | |
set mcp.meter.scale.color.unlit.top !labelsMode{0} [0 0 0 0 0 0 0 0] ?recarm [211 70 70 255 0 0 0 0] [255 255 255 60 0 0 0 0] | |
set mcp.volume.label ?narrowMode{0} [0] \ | |
+ [stretch_sec stretch_sec mcp.meter{2}] * scale h<hide_volume_label_s{0} [1 0 28 4] !labelsMode{0} [1 0 28 4] [1 0 28 23] | |
; + h<hide_volume_label_s{0} [1 0 28 4] !labelsMode{0} [1 0 28 4] [1 0 28 23] [stretch_sec stretch_sec mcp.meter{2}] | |
set mcp.volume ?narrowMode{0} + - + [stretch_sec stretch_sec] [nchan_offs_half stretch_sec{3}] * scale [-4 21] * scale [0 0 21 21] \ | |
- + * [1 1 scale 1] [mcp.meter stretch_sec 21 stretch_sec] [mcp.meter{2} mcp.volume.label{3}] [-4 0 0 mcp.volume.label{3}] | |
set mcp.volume.label.color mcp.volume.label{h}>2 [100 100 100] [38 38 38] | |
set mcp.volume.label.font scale==1 [1] scale==1.5 [6] [11] | |
set mcp.volume.label.margin * [scale scale scale scale 1] ?narrowMode{0} [0 80 0 0 0.5] [0 4 0 0 0.5] | |
set mcp.recarm + * scale [0 0 36 24] ?narrowMode{0} - + [mcp.meter{2}] [stretch_sec stretch_sec] * scale [-1 17] \ | |
+ - [stretch_sec stretch_sec] * scale [-29 17] [mcp.meter{2}] | |
set mcp.recmon + + [0 padding] [mcp.recarm mcp.recarm] * scale [7 20 21 20] | |
set mcp.mute + + [0 padding] [mcp.recmon mcp.recmon] * scale [0 19 21 20] | |
set mcp.solo + + [0 padding] [mcp.mute mcp.mute] * scale [0 21 21 20] | |
set mcp_io_hide_h * scale 106 | |
set mcp.io stretch_sec_height{0}<mcp_io_hide_h{0} [0] + + [0 padding] [mcp.solo mcp.solo] * scale !labelsMode{0} [-1 23 23 30] [-1 23 23 30] ;b0se keep IO lights | |
set mcp_env_hide_h * scale [125 141] | |
set mcpHideEnv !labelsMode{0} stretch_sec_height{0}<mcp_env_hide_h{0} 1 0 stretch_sec_height{0}<mcp_env_hide_h{1} 1 0 | |
set mcp.env ?mcpHideEnv{0} [0 0 0 0] + [0 stretch_sec{3}] + [mcp.io stretch_sec] * scale !labelsMode{0} [1 -30 21 30] [1 -30 21 30] ;b0se same env + cutoff fix | |
set mcp_phase_hide_h * scale [144 162] | |
set mcpHidePhase !labelsMode{0} stretch_sec_height{0}<mcp_phase_hide_h{0} 1 0 stretch_sec_height{0}<mcp_phase_hide_h{1} 1 0 | |
set mcp.phase ?mcpHidePhase{0} [0] + [mcp.env mcp.env] - * scale [3 -18 16 18] padding | |
set mcp.label + + + * scale \ | |
gapmode{0}==1 !sidebarMode{0} [14 0 -14 27] [13 0 -13 27] \ | |
gapmode{0}==2 [0 0 -14 27] \ | |
[0 0 0 27] \ | |
[0 bot_sec mcp.size{0}] \ | |
?mcp_control_align{0} * - mcp_maxfolderdepth folderdepth [0 0 0 mcp_indent_s{0}] [0] | |
set mcp.label.margin * [scale scale scale scale 1] [4 0 4 3 0.5] | |
set mcp.label.font scale==1 [3] scale==1.5 [8] [13] | |
trackLabelColor mcp.label.color | |
set mcp.trackidx + + [0 bot_sec] [0 mcp.label{3}] - [0 0 mcp.size{0} bot_sec_height{0}] [0 0 0 mcp.label{3}] | |
set mcp.trackidx.margin + - [0 0 0 mcp.trackidx{3} 0.5] * scale [0 0 0 20] folderstate==1 * scale [12] [0] | |
text_over_custom mcp.trackidx.color | |
set mcp.trackidx.color [200 200 200] | |
set mcp.trackidx.font scale==1 [3] scale==1.5 [8] [13] | |
set mcp.folder + + [0 bot_sec] [0 mcp.label{3}] folderstate<0 + + [mcp.size] [sidebar_sec{2}] * scale [-21 -2 21 22] * scale [0 -2 18 22] | |
endMacro | |
set hide_inputFX [400] ; height below which input effects is hidden. | |
set hide_input [350] ; height below which input dropdown is hidden. | |
set hide_pan_labels [320] ; height below which pan labels are hidden. | |
set hide_pan [260] ; height below which pan controls are hidden. | |
set hide_volume_label [250] ; height below which volume label is hidden. | |
set extmixer_w [86] ; width of the extmixer when set as a sidebar | |
; sidebar (pushes other secs right) | |
; fx section (background is baked into mcp_bg) | |
; pan section | |
; input section (show/hide inputFX on resize / recarm, with user override) | |
; stretch section (recarm pokes above) | |
; bottom section (name resize on maxfolderdepth) | |
paramPair mcp_indent 1 0 5 10 15 20 25 30 | |
paramPair mcp_control_align 78 0 1 | |
doModeLogic sidebarMode 25 | |
doModeLogic narrowMode 26 | |
doModeLogic meterExpMode 27 | |
doModeLogic labelsMode 28 | |
paramPair mcp_meterExp 29 0 2 4 8 | |
paramPair mcp_border 30 0 1 2 3 4 | |
drawMcp 1 | |
Layout "A" | |
set mcp.label . | |
drawMcp 1 | |
Layout "150%_A" "150" | |
set mcp.label . | |
drawMcp 1.5 | |
; ---- scaling error cleanup ---- | |
set mcp.volume.label + mcp.volume.label [-1] | |
; ------------------------------- | |
EndLayout | |
Layout "200%_A" "200" | |
set mcp.label . | |
drawMcp 2.0 | |
EndLayout | |
EndLayout | |
Layout "B" | |
set sidebarMode 0 | |
set narrowMode 0 | |
set meterExpMode 0 | |
set labelsMode 0 | |
doModeLogic sidebarMode 48 | |
doModeLogic narrowMode 49 | |
doModeLogic meterExpMode 50 | |
doModeLogic labelsMode 51 | |
paramPair mcp_meterExp 52 0 2 4 8 | |
paramPair mcp_border 53 0 1 2 3 4 | |
drawMcp 1 | |
Layout "150%_B" "150" | |
set mcp.label . | |
drawMcp 1.5 | |
; ---- scaling error cleanup ---- | |
set mcp.volume.label + mcp.volume.label [-1] | |
EndLayout | |
Layout "200%_B" "200" | |
set mcp.label . | |
drawMcp 2.0 | |
EndLayout | |
EndLayout | |
Layout "C" | |
set sidebarMode 0 | |
set narrowMode 0 | |
set meterExpMode 0 | |
set labelsMode 0 | |
doModeLogic sidebarMode 71 | |
doModeLogic narrowMode 72 | |
doModeLogic meterExpMode 73 | |
doModeLogic labelsMode 74 | |
paramPair mcp_meterExp 75 0 2 4 8 | |
paramPair mcp_border 76 0 1 2 3 4 | |
drawMcp 1 | |
Layout "150%_C" "150" | |
set mcp.label . | |
drawMcp 1.5 | |
; ---- scaling error cleanup ---- | |
set mcp.volume.label + mcp.volume.label [-1] | |
EndLayout | |
Layout "200%_C" "200" | |
set mcp.label . | |
drawMcp 2.0 | |
EndLayout | |
EndLayout | |
#< | |
#>--------------------------------- MASTER MIXER -------------------------------------- | |
; --------------- User adjustable values. Edit without fear. ----------------- | |
set hide_inputFX [400] ; height below which input effects is hidden. | |
set hide_pan_labels [320] ; height below which pan labels are hidden. | |
set hide_pan [260] ; height below which pan controls are hidden. | |
set hide_volume_label [200] ; height below which volume label is hidden. | |
; ------- End of user adjustable values. From here on may be dragons. --------- | |
macro drawMasterMcp scale | |
clear master.mcp.* | |
front master.mcp.menubutton master.mcp.io master.mcp.env master.mcp.mute master.mcp.solo | |
set master.mcp.size * scale [125 370 0 mcp.size] | |
set hide_pan_sm * scale hide_pan | |
set hide_pan_labels_sm * scale hide_pan_labels | |
set fx_sec + [0 0 master.mcp.size{0}] * scale [0 0 0 27] | |
set pan_sec + [0 fx_sec{3} master.mcp.size{0}] * scale h<hide_pan_labels_sm{0} h<hide_pan_sm{0} [0 0 0 6] [0 0 0 28] [0 0 0 48] | |
set bot_sec + [0 h master.mcp.size{0}] * scale [0 -23 0 23] | |
set stretch_sec_start + fx_sec{3} pan_sec{3} | |
set stretch_sec_height - - - h fx_sec{3} pan_sec{3} bot_sec{3} | |
set stretch_sec [0 stretch_sec_start{0} master.mcp.size{0} stretch_sec_height{0}] | |
set padding_reduction_h * scale [300 200] | |
set padding * scale stretch_sec_height{0}<padding_reduction_h{0} stretch_sec_height{0}<padding_reduction_h{1} [0 2] [0 3] [0 4] | |
set master.mcp.fx * scale [7 7 82 20] | |
set master.mcp.fxbyp * scale [89 7 29 20] | |
set master.mcp.pan + [0 pan_sec] * scale h<hide_pan_sm{0} [0] trackpanmode==6 h<hide_pan_labels_sm{0} [7 5 67 9] [7 15 67 9] \ | |
trackpanmode>=4 h<hide_pan_labels_sm{0} [20 4 20 20] [20 7 20 20] \ | |
h<hide_pan_labels_sm{0} [31 4 20 20] [31 7 20 20] | |
set master.mcp.pan.fadermode gl_fader_swap | |
set master.mcp.pan.color gl_pan_color | |
set master.mcp.pan.label h<hide_pan_labels_sm{x} [0] + [0 master.mcp.pan] * scale trackpanmode>=4 trackpanmode==6 [23 -11 35 9] [6 25 35 10] [23 25 35 10] | |
set master.mcp.pan.label.color [140 140 140] | |
set master.mcp.pan.label.margin [0 0 0 0 0.5] | |
set master.mcp.pan.label.font scale==1 [1] scale==1.5 [6] [11] | |
set master.mcp.width + [0 pan_sec] * scale h<hide_pan_sm{0} [0] trackpanmode==6 h<hide_pan_labels_sm{0} [7 13 67 9] [7 23 67 9] \ | |
trackpanmode>=4 h<hide_pan_labels_sm{0} [48 4 20 20] [48 7 20 20] [0] | |
set master.mcp.width.fadermode gl_fader_swap | |
set master.mcp.width.color gl_width_color | |
set master.mcp.width.label h<hide_pan_labels_sm{x} [0] + [0 master.mcp.width] * scale trackpanmode>=4 trackpanmode==6 [23 11 35 9] [41 25 35 10] [0] | |
set master.mcp.width.label.color [140 140 140] | |
set master.mcp.width.label.margin [0 0 0 0 0.5] | |
set master.mcp.width.label.font scale==1 [1] scale==1.5 [6] [11] | |
set master.mcp.mono + [0 pan_sec] * scale h<hide_pan_labels_sm{0} h<hide_pan_sm{0} [0] [90 4 25 22] [90 8 25 33] | |
set master.mcp.volume.label h<hide_volume_label{0} [0 0 0 0] + [0 stretch_sec] * scale [1 0 89 23] | |
set master.mcp.volume - + + * scale [69 0 21] [0 stretch_sec 0 stretch_sec] [0 master.mcp.volume.label{3}] [0 0 0 master.mcp.volume.label{3}] | |
set master.mcp.volume.label.color master.mcp.volume.label{h}>2 [100 100 100] [38 38 38] | |
set master.mcp.volume.label.margin + [0 0 0 0 0.5] * scale [0 4] | |
set master.mcp.volume.label.font scale==1 [1] scale==1.5 [6] [11] | |
set master.mcp.meter + [0 master.mcp.volume 0 master.mcp.volume] * scale [4 0 59 -6] | |
set master.mcp.meter.vu.div [1] | |
set master.mcp.meter.vu.rmsdiv [2] | |
set master.mcp.meter.readout.color [255 255 255 200 0 0 0 0] | |
set master.mcp.meter.rmsreadout.color [255 255 255 255 0 0 0 0] | |
set master.mcp.meter.scale.color.lit.bottom [0 0 0 200 0 0 0 0] | |
set master.mcp.meter.scale.color.lit.top [0 0 0 200 0 0 0 0] | |
set master.mcp.meter.scale.color.unlit.bottom [255 255 255 120 0 0 0 0] | |
set master.mcp.meter.scale.color.unlit.top [255 255 255 120 0 0 0 0] | |
set master.mcp.label bot_sec | |
set master.mcp.label.color [184 184 184] | |
set master.mcp.label.margin + * scale [20 1] [0 0 0 0 0.5] | |
set master.mcp.label.font scale==1 [3] scale==1.5 [8] [13] | |
set master.mcp.mute + [0 stretch_sec] * scale [95 6 21 20] | |
set master.mcp.solo + + [0 padding] [master.mcp.mute master.mcp.mute] * scale [0 21 21 20] | |
set master_mcp_env_hide_h * scale 141 | |
set master.mcp.env stretch_sec_height{0}<master_mcp_env_hide_h{0} [0] + + [0 stretch_sec] [0 stretch_sec{3}] * scale [95 -37 21 30] | |
set master_mcp_io_hide_h * scale 106 | |
set master.mcp.io stretch_sec_height{0}<master_mcp_io_hide_h{0} [0] + + [0 padding] [master.mcp.solo master.mcp.solo] * scale [0 23 23 30] | |
set master.mcp.menubutton + * scale [0 2 20 20] [bot_sec bot_sec] | |
set master.mcp.extmixer.mode [0] | |
set master.mcp.fxlist.font scale==1 [1 16] scale==1.5 [6 24] [11 32] | |
set master.mcp.fxlist.margin mcp.fxlist.margin | |
set master.mcp.sendlist.font scale==1 [1 16] scale==1.5 [6 24] [11 32] | |
set master.mcp.sendlist.margin mcp.sendlist.margin | |
set master.mcp.fxparm.font scale{0}==1 [1 24 0 0 -1] scale{0}==1.5 [6 36 0 0 -4] [11 48 0 0 -6] | |
set master.mcp.fxparm.margin mcp.fxparm.margin | |
endmacro | |
drawMasterMcp 1 | |
Layout "A" | |
set master.mcp.label . | |
drawMasterMcp 1 | |
EndLayout | |
Layout "150%_A" "150" | |
set master.mcp.label . | |
drawMasterMcp 1.5 | |
EndLayout | |
Layout "200%_A" "200" | |
set master.mcp.label . | |
drawMasterMcp 2 | |
EndLayout | |
#< | |
#>---------------------------------- TRANSPORT ---------------------------------------- | |
;----- tune by eye @1x ----- | |
set status_min 130 ; the size below which status readout looks weird | |
set selection_min 180 ; the size below which selection readout looks weird | |
;--------------------------- | |
set text_color [150 150 150] ; the color of the text | |
;returns [padding x, padding y, width, height, width + padding x] | |
macro size element px py w h | |
set size_##element * scale + [px py w h px] [0 0 0 0 w] | |
endmacro | |
macro drawTransport scale | |
clear trans.* | |
set trans.size * scale [100 100] | |
paramPair trans_rateSize 77 72 130 160 200 250 310 380 | |
set trans_rateSize * scale trans_rateSize{0} | |
set trans_rateSize_padded + trans_rateSize{0} * scale 3 | |
set size_rate + * scale [3 0 0 36] [0 0 trans_rateSize{0} 0 trans_rateSize_padded{0}] | |
; Set absolute sizes... | |
; element px py w h | |
size rew 4 5 29 29 | |
size fwd 0 5 28 29 | |
size rec 0 2 34 35 | |
size play 0 2 33 35 | |
size repeat 0 5 27 29 | |
size stop 0 5 29 29 | |
size pause 0 5 29 29 | |
size automode 2 2 54 36 ; effects global env GFX | |
size status 6 3 450 24 ; transport font: Frozen Crystal | |
size bpm 0 7 50 24 ; def: 0 0 50 36 | |
size timesig 2 0 40 36 | |
size selection 0 8 300 20 | |
set row_height * scale [36] | |
set row_height_x2 * 2 row_height | |
set row_height_x3 * 3 row_height | |
set row_height_x4 * 4 row_height | |
set scaleMargin + * scale [1 1 1 1] [0 0 0 0 1] | |
set showRate ?trans_flags&2 1 0 | |
set size_rate !showRate{0} [0 0 0 0 0] . | |
set size_timesig ?trans_flags&4 . [0 0 0 0 0] | |
; size the sections | |
set sec_buttons_width + + + + + + size_rew{4} size_fwd{4} size_stop{4} size_play{4} size_pause{4} size_rec{4} size_repeat{4} | |
set sec_buttons [0 0 sec_buttons_width{0}] | |
set sec_proj_width + + + size_bpm{4} size_timesig{4} size_rate{4} size_automode{4} | |
set sec_proj [0 0 sec_proj_width{0} row_height{0}] | |
set all_width + + + sec_buttons_width size_status{4} sec_proj_width size_selection{4} | |
set buttons_proj_width + sec_buttons_width sec_proj_width | |
set buttons_proj_cutoff - buttons_proj_width{0} w | |
set w_stretch - all_width w | |
set sec_status_width - h<row_height_x2{0} w<all_width{0} - size_status{4} * w_stretch 0.6 size_status{4} size_status{4} size_status{0} | |
set sec_sel_width h<row_height_x2{0} w<all_width{0} - size_selection{4} * w_stretch 0.4 size_selection{4} size_selection{4} | |
set sec_sel [0 0 sec_sel_width{0}] | |
; layout the sections | |
set sec_status [sec_buttons{2} 0 sec_status_width{0} size_status] | |
set sec_status sec_sel{2}<selection_min{0} + sec_status [0 0 sec_sel] ; proj section is going to be hidden, so steal its width | |
set sec_status sec_status_width{0}<status_min{0} [0] . | |
set sec_proj - [w 0 sec_proj{2} sec_proj] [sec_proj{2}] | |
set sec_proj h<row_height_x2{0} w<buttons_proj_width{0} [0] . . ; single row, hide proj section if it still doesn't fit | |
set sec_sel sec_sel{2}<selection_min{0} [0] - - [w size_selection sec_sel size_selection] [sec_proj{2}] [sec_sel{2}] | |
; jumping rows when panel is narrow | |
; ...2 rows | |
set sec_sel w<all_width{0} h<row_height_x2{0} . + [0 row_height{0}] [0 sec_sel sec_sel sec_sel] . | |
set sec_proj w<all_width{0} h<row_height_x2{0} . + [sec_sel row_height{0}] [sec_sel{2} 0 sec_proj sec_proj] . | |
; ...4 rows | |
set row_1_width + sec_buttons_width sec_status_width | |
set row_2_width + sec_proj_width sec_sel_width | |
set 2rows_max row_1_width{0}>row_2_width{0} row_1_width{0} row_2_width{0} | |
set sec_status_width w<sec_status_width{0} - w size_status{0} | |
set sec_status w<2rows_max{0} [0 row_height{0} sec_status_width{0} size_status] . | |
set sec_sel w<sec_sel{2} [sec_sel sec_sel w sec_sel] | |
set sec_sel w<2rows_max{0} + [0 row_height_x2{0}] [size_selection size_selection sec_sel size_selection] . | |
set sec_proj w<sec_proj{2} [sec_proj sec_proj w sec_proj] | |
set sec_proj w<2rows_max{0} [0 row_height_x3{0} sec_proj sec_proj] . | |
set trans_min_width h>row_height{0} sec_status_width{0}<sec_proj_width{0} sec_proj_width{0} sec_status_width{0} + * scale [216] [0 row_height{0}] | |
set trans.size.dockedheight row_height{0} | |
set trans.size.minmax [trans_min_width row_height{0} 10000 row_height_x4{0}] | |
; transport center | |
set transCenter !sec_sel{2} 0 w<all_width{0} h>row_height{0} 0 ?trans_flags&1 1 0 ?trans_flags&1 1 0 | |
set sec_buttons_center * 0.5 - w + + + sec_buttons_width{0} sec_status_width{0} sec_proj_width{0} sec_sel_width{0} | |
set sec_buttons ?transCenter{0} + sec_sel_width{0}>0 + [sec_sel_width{0}] [sec_buttons_center{0}] [0] [0 0 sec_buttons] . | |
set sec_status ?transCenter{0} + [sec_buttons 0 sec_status size_status] [sec_buttons{2}] . | |
set sec_sel ?transCenter{0} [0 size_selection sec_sel size_selection] . | |
; draw content in sec_buttons | |
; set trans.rew + [sec_buttons sec_buttons] [size_rew size_rew size_rew size_rew] | |
; set trans.fwd + + [trans.rew sec_buttons] [size_rew{2}] [size_fwd size_fwd size_fwd size_fwd] | |
; set trans.rec + + [trans.fwd sec_buttons] [size_fwd{2}] [size_rec size_rec size_rec size_rec] | |
; set trans.play + + [trans.rec sec_buttons] [size_rec{2}] [size_play size_play size_play size_play] | |
; set trans.repeat + + [trans.play sec_buttons] [size_play{2}] [size_repeat size_repeat size_repeat size_repeat] | |
; set trans.stop + + [trans.repeat sec_buttons] [size_repeat{2}] [size_stop size_stop size_stop size_stop] | |
; set trans.pause + + [trans.stop sec_buttons] [size_stop{2}] [size_pause size_pause size_pause size_pause] | |
set trans.rew + [sec_buttons sec_buttons] [size_rew size_rew size_rew size_rew] | |
set trans.fwd + + [trans.rew sec_buttons] [size_rew{2}] [size_fwd size_fwd size_fwd size_fwd] | |
set trans.rec + + [trans.fwd sec_buttons] [size_fwd{2}] [size_rec size_rec size_rec size_rec] | |
set trans.play + + [trans.rec sec_buttons] [size_rec{2}] [size_play size_play size_play size_play] | |
set trans.stop + + [trans.play sec_buttons] [size_play{2}] [size_stop size_stop size_stop size_stop] | |
set trans.pause + + [trans.stop sec_buttons] [size_stop{2}] [size_pause size_pause size_pause size_pause] | |
set trans.repeat + + [trans.pause sec_buttons] [size_pause{2}] [size_repeat size_repeat size_repeat size_repeat] | |
; draw content in sec_status | |
set trans.status + [sec_status sec_status sec_status sec_status] [size_status size_status] | |
; draw content in sec_proj | |
set trans_bpm + [sec_proj sec_proj] [size_bpm size_bpm size_bpm size_bpm] | |
set trans.bpm.tap sec_proj{2}==0 [0] * [1 1 1 0.5] trans_bpm | |
set trans.bpm.edit sec_proj{2}==0 [0] + trans.bpm.tap [0 trans.bpm.tap{h}] | |
set trans.curtimesig sec_proj{2}==0 [0] + + [trans_bpm sec_proj] [size_bpm{2}] [size_timesig size_timesig size_timesig size_timesig] | |
set trans.curtimesig.color [. . . . 43 43 43 255] | |
set trans.automode sec_proj{2}==0 [0] + + [trans.curtimesig sec_proj]] [size_timesig{2}] [size_automode size_automode size_automode size_automode] | |
set trans_rate + + [trans.automode sec_proj] [size_automode{2}] [size_rate size_rate size_rate size_rate] | |
set rate_cutoff - + trans_rate{0} trans_rate{2} w | |
set trans_rate rate_cutoff{0}>0 - trans_rate [0 0 rate_cutoff{0}] . | |
set rate_mode_change * scale 100 | |
set trans_rate_mode size_rate{2}<rate_mode_change{0} 1 0 | |
set trans.rate sec_proj{2}==0 [0] !showRate{0} [0 0 0 0] ?trans_rate_mode{0} + [trans_rate trans_rate] * scale [30 1 42 36] * [1 1 1 0.5] trans_rate | |
set trans.rate.fader sec_proj{2}==0 [0] !showRate{0} [0 0 0 0] ?trans_rate_mode{0} + [trans_rate trans_rate] * scale [3 3 30 30] + trans.rate [0 trans.rate{h}] | |
set trans.rate.fader.fadermode ?trans_rate_mode{0} 1 0 | |
set trans.rate.fader.color [255 255 255 100] | |
set trans.rate.font scale{0}==1 [1] scale{0}==1.5 [6] [11] | |
; draw content in sec_sel | |
set trans.sel sec_sel | |
set trans.margin [0] | |
set trans.curtimesig.color + text_color [0 0 0 0 43 43 43 255] | |
set trans.status.margin os_type==1 * scale [0 4 0 -4 0] [0 0 0 0 0] | |
set trans.bpm.tap.margin [0 0 0 0 0.5] | |
set trans.bpm.edit.margin [0 0 0 0 0.5] | |
set trans.bpm.edit.margin [0 0 0 0 0.5] | |
set trans.bpm.edit.color text_color | |
set trans.bpm.tap.color text_color | |
set trans.rate.color [130 130 130 255 0 0 0] | |
set trans.sel.color text_color | |
set trans.sel.margin * scaleMargin [18 0 4 0 1] ; b0se edit | |
set trans.curtimesig.font scale{0}==1 [1] scale{0}==1.5 [6] [11] | |
set trans.bpm.tap.font scale{0}==1 [1] scale{0}==1.5 [6] [11] | |
set trans.bpm.edit.font scale{0}==1 [1] scale{0}==1.5 [6] [11] | |
set trans.sel.font scale{0}==1 [3] scale{0}==1.5 [8] [13] | |
endMacro | |
drawTransport 1.0 | |
Layout "A" | |
drawTransport 1.0 | |
EndLayout | |
Layout "150%_A" "150" | |
drawTransport 1.5 | |
EndLayout | |
Layout "200%_A" "200" | |
drawTransport 2.0 | |
EndLayout | |
#< | |
#>------------------------------- DPI TRANSLATION ------------------------------------- | |
; b0se mod - remove standard def (50% & 75%) for RC1 | |
; ------ DUMMY LAYOUTS --------- | |
;Layout "50%_A" | |
; set tcp.label . | |
; set mcp.label . | |
; set master.mcp.label . | |
; set master.tcp.label . | |
; set trans.status . | |
;EndLayout | |
;Layout "75%_A" | |
; set tcp.label . | |
; set mcp.label . | |
; set master.mcp.label . | |
; set master.tcp.label . | |
; set trans.status . | |
;EndLayout | |
;Layout "50%_B" | |
; set tcp.label . | |
; set mcp.label . | |
;EndLayout | |
;Layout "75%_B" | |
; set tcp.label . | |
; set mcp.label . | |
;EndLayout | |
;Layout "50%_C" | |
; set tcp.label . | |
; set mcp.label . | |
;EndLayout | |
;Layout "75%_C" | |
; set tcp.label . | |
; set mcp.label . | |
;EndLayout | |
; requested scale > use | |
;layout_dpi_translate '50%_A' 1.0 'A' | |
;layout_dpi_translate '75%_A' 1.0 'A' | |
;layout_dpi_translate '50%_A' 1.34 'A' | |
;layout_dpi_translate '75%_A' 1.34 'A' | |
layout_dpi_translate 'A' 1.34 '150%_A' | |
layout_dpi_translate '150%_A' 1.34 '200%_A' | |
;layout_dpi_translate '50%_A' 1.74 'A' | |
;layout_dpi_translate '75%_A' 1.74 '150%_A' | |
layout_dpi_translate 'A' 1.74 '200%_A' | |
layout_dpi_translate '150%_A' 1.74 '200%_A' | |
;layout_dpi_translate '50%_B' 1.0 'B' | |
;layout_dpi_translate '75%_B' 1.0 'B' | |
;layout_dpi_translate '50%_B' 1.34 'B' | |
;layout_dpi_translate '75%_B' 1.34 'B' | |
layout_dpi_translate 'B' 1.34 '150%_B' | |
layout_dpi_translate '150%_B' 1.34 '200%_B' | |
;layout_dpi_translate '50%_B' 1.74 'B' | |
;layout_dpi_translate '75%_B' 1.74 '150%_B' | |
layout_dpi_translate 'B' 1.74 '200%_B' | |
layout_dpi_translate '150%_B' 1.74 '200%_B' | |
;layout_dpi_translate '50%_C' 1.0 'C' | |
;layout_dpi_translate '75%_C' 1.0 'C' | |
;layout_dpi_translate '50%_C' 1.34 'C' | |
;layout_dpi_translate '75%_C' 1.34 'C' | |
layout_dpi_translate 'C' 1.34 '150%_C' | |
layout_dpi_translate '150%_C' 1.34 '200%_C' | |
;layout_dpi_translate '50%_C' 1.74 'C' | |
;layout_dpi_translate '75%_C' 1.74 '150%_C' | |
layout_dpi_translate 'C' 1.74 '200%_C' | |
layout_dpi_translate '150%_C' 1.74 '200%_C' | |
; -- no layout chosen, dpi_translate as A | |
layout_dpi_translate '' 1.34 '150%_A' | |
layout_dpi_translate '' 1.74 '200%_A' | |
; layout_dpi_translate 200%_A 2.0 200%_A | |
; layout_dpi_translate 200%_B 2.0 200%_B | |
; layout_dpi_translate 200%_C 2.0 200%_C | |
#< |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment