Discussion about Universal Keyboard Mappin k400plus
Posted Tue 05 Feb 19 @ 8:40 am
IMAGE: http://outline.tripunto.es/img/virtualdj/logitechK400+.png
To better familiarize yourself with the functions of the keys, I recommend editing the skin and changing the position of the CUE, STOP, SYNC & PLAY buttons by STOP, SYNC, CUE, PLAY
My touch skin includes the additional buttons that appear when you press CTRL or ALT.
You can find the following code and replace it with the one below
//deck 1 & deck 2
<group name="transbox" x="+13" y="+446">
<button action="cue_button" class="size1button">
<tooltip_localized>cue_tooltip</tooltip_localized>
<pos x="+0" y="+0"/>
<text action="cue_button"/>
</button>
<button action="stop_button" class="size1button" rightclick="holding 500ms ? unload : goto_first_beat">
<tooltip_localized>stop_tooltip</tooltip_localized>
<pos x="+106" y="+0"/>
<icon sysicon="stop_button" width="35" height="35" />
</button>
<button action="play_button" class="size1button">
<tooltip_localized>play_tooltip</tooltip_localized>
<pos x="+106+106" y="+0"/>
<icon sysicon="play_button" width="35" height="35" />
</button>
<button action="sync" class="size1button">
<tooltip_localized>sync_tooltip</tooltip_localized>
<pos x="+106+106+106" y="+0"/>
<text localized="SYNC"/>
</button>
</group>
------------------------------------------------------------------------------------------------------------
<group name="transbox" x="+13" y="+446">
<button action="stop_button" class="size1button" rightclick="holding 500ms ? unload : goto_first_beat" visibility="var 'ctrl' ? no : var 'alt' ? no : yes">
<tooltip_localized>stop_tooltip</tooltip_localized>
<pos x="+0" y="+0"/>
<icon sysicon="stop_button" width="35" height="35" />
</button>
<button action="sync" class="size1button" visibility="var 'ctrl' ? no : var 'alt' ? no : yes">
<tooltip_localized>sync_tooltip</tooltip_localized>
<pos x="+106" y="+0"/>
<text text="SYNC"/>
</button>
<button action="cue_button" class="size1button" visibility="var 'ctrl' ? no : var 'alt' ? no : yes">
<tooltip_localized>cue_tooltip</tooltip_localized>
<pos x="+106+106" y="+0"/>
<text action="cue_button"/>
</button>
<button action="play_button" class="size1button" visibility="var 'ctrl' ? no : var 'alt' ? no : yes">
<tooltip_localized>play_tooltip</tooltip_localized>
<pos x="+106+106+106" y="+0"/>
<icon sysicon="play_button" width="35" height="35" />
</button>
<button action="" class="size1button" visibility="shift ? yes : no">
<tooltip_localized></tooltip_localized>
<pos x="+106" y="+0"/>
<text text=""/>
</button>
<button action="loop_roll_mode" class="size1button" visibility="var 'ctrl' ? yes : no">
<tooltip_localized>loop_roll_mode_tooltip</tooltip_localized>
<pos x="+0" y="+0"/>
<text text="ROLL" />
</button>
<button action="quantize_loop" class="size1button" visibility="var 'ctrl' ? yes : no">
<tooltip_localized>quantize_loop_tooltip</tooltip_localized>
<pos x="+106" y="+0"/>
<text text="QTZE LOOP" />
</button>
<button action="quantize_setcue" class="size1button" visibility="var 'ctrl' ? on : off">
<tooltip_localized>quantize_setcue_tooltip</tooltip_localized>
<pos x="+106+106" y="+0"/>
<text text="QTZE CUE"/>
</button>
<button action="reverse" class="size1button" visibility="var 'ctrl' ? yes : no" query="reverse">
<tooltip_localized>reverse_tooltip</tooltip_localized>
<pos x="+106+106+106" y="+0"/>
<text text="REVERSE" />
</button>
<button action="smart_loop" class="size1button" visibility="var 'alt' ? on : off">
<tooltip_localized>smart_loop_tooltip</tooltip_localized>
<pos x="+0" y="+0"/>
<text text="SMART LOOP"/>
</button>
<button action="smart_scratch" class="size1button" visibility="var 'alt' ? on : off">
<tooltip_localized>smart_scratch_tooltip</tooltip_localized>
<pos x="+106" y="+0"/>
<text text="SMART SCTH"/>
</button>
<button action="smart_cue" class="size1button" visibility="var 'alt' ? on : off">
<tooltip_localized>smart_cue_tooltip</tooltip_localized>
<pos x="+106+106" y="+0"/>
<text text="SMART CUE"/>
</button>
<button action="smart_play" class="size1button" visibility="var 'alt' ? yes : no" query="smart_play">
<tooltip_localized>smart_play_tooltip</tooltip_localized>
<pos x="+106+106+106" y="+0"/>
<text text="SMART PLAY" />
</button>
</group>
Later on, maybe I'll publish my variazion of the official eskin
To better familiarize yourself with the functions of the keys, I recommend editing the skin and changing the position of the CUE, STOP, SYNC & PLAY buttons by STOP, SYNC, CUE, PLAY
My touch skin includes the additional buttons that appear when you press CTRL or ALT.
You can find the following code and replace it with the one below
//deck 1 & deck 2
<group name="transbox" x="+13" y="+446">
<button action="cue_button" class="size1button">
<tooltip_localized>cue_tooltip</tooltip_localized>
<pos x="+0" y="+0"/>
<text action="cue_button"/>
</button>
<button action="stop_button" class="size1button" rightclick="holding 500ms ? unload : goto_first_beat">
<tooltip_localized>stop_tooltip</tooltip_localized>
<pos x="+106" y="+0"/>
<icon sysicon="stop_button" width="35" height="35" />
</button>
<button action="play_button" class="size1button">
<tooltip_localized>play_tooltip</tooltip_localized>
<pos x="+106+106" y="+0"/>
<icon sysicon="play_button" width="35" height="35" />
</button>
<button action="sync" class="size1button">
<tooltip_localized>sync_tooltip</tooltip_localized>
<pos x="+106+106+106" y="+0"/>
<text localized="SYNC"/>
</button>
</group>
------------------------------------------------------------------------------------------------------------
<group name="transbox" x="+13" y="+446">
<button action="stop_button" class="size1button" rightclick="holding 500ms ? unload : goto_first_beat" visibility="var 'ctrl' ? no : var 'alt' ? no : yes">
<tooltip_localized>stop_tooltip</tooltip_localized>
<pos x="+0" y="+0"/>
<icon sysicon="stop_button" width="35" height="35" />
</button>
<button action="sync" class="size1button" visibility="var 'ctrl' ? no : var 'alt' ? no : yes">
<tooltip_localized>sync_tooltip</tooltip_localized>
<pos x="+106" y="+0"/>
<text text="SYNC"/>
</button>
<button action="cue_button" class="size1button" visibility="var 'ctrl' ? no : var 'alt' ? no : yes">
<tooltip_localized>cue_tooltip</tooltip_localized>
<pos x="+106+106" y="+0"/>
<text action="cue_button"/>
</button>
<button action="play_button" class="size1button" visibility="var 'ctrl' ? no : var 'alt' ? no : yes">
<tooltip_localized>play_tooltip</tooltip_localized>
<pos x="+106+106+106" y="+0"/>
<icon sysicon="play_button" width="35" height="35" />
</button>
<button action="" class="size1button" visibility="shift ? yes : no">
<tooltip_localized></tooltip_localized>
<pos x="+106" y="+0"/>
<text text=""/>
</button>
<button action="loop_roll_mode" class="size1button" visibility="var 'ctrl' ? yes : no">
<tooltip_localized>loop_roll_mode_tooltip</tooltip_localized>
<pos x="+0" y="+0"/>
<text text="ROLL" />
</button>
<button action="quantize_loop" class="size1button" visibility="var 'ctrl' ? yes : no">
<tooltip_localized>quantize_loop_tooltip</tooltip_localized>
<pos x="+106" y="+0"/>
<text text="QTZE LOOP" />
</button>
<button action="quantize_setcue" class="size1button" visibility="var 'ctrl' ? on : off">
<tooltip_localized>quantize_setcue_tooltip</tooltip_localized>
<pos x="+106+106" y="+0"/>
<text text="QTZE CUE"/>
</button>
<button action="reverse" class="size1button" visibility="var 'ctrl' ? yes : no" query="reverse">
<tooltip_localized>reverse_tooltip</tooltip_localized>
<pos x="+106+106+106" y="+0"/>
<text text="REVERSE" />
</button>
<button action="smart_loop" class="size1button" visibility="var 'alt' ? on : off">
<tooltip_localized>smart_loop_tooltip</tooltip_localized>
<pos x="+0" y="+0"/>
<text text="SMART LOOP"/>
</button>
<button action="smart_scratch" class="size1button" visibility="var 'alt' ? on : off">
<tooltip_localized>smart_scratch_tooltip</tooltip_localized>
<pos x="+106" y="+0"/>
<text text="SMART SCTH"/>
</button>
<button action="smart_cue" class="size1button" visibility="var 'alt' ? on : off">
<tooltip_localized>smart_cue_tooltip</tooltip_localized>
<pos x="+106+106" y="+0"/>
<text text="SMART CUE"/>
</button>
<button action="smart_play" class="size1button" visibility="var 'alt' ? yes : no" query="smart_play">
<tooltip_localized>smart_play_tooltip</tooltip_localized>
<pos x="+106+106+106" y="+0"/>
<text text="SMART PLAY" />
</button>
</group>
Later on, maybe I'll publish my variazion of the official eskin
Posted Tue 05 Feb 19 @ 10:36 am
I'm going to update the mapping so it integrates better with other masks. There is still time to give ideas to improve your scripts or add more buttons.
Next the new configuration.
BASIC KEYS!
1 : pad 1
2 : pad 2
3 : pad 3
4 : pad 4
5 : pad 5
6 : pad 6
7 : pad 7
8 : pad 8
9 : pad_page -1
0 : pad_page +1
' : pad_param -1
¡ : pad_param +1
SHIFT+' : pad_param2 -1
SHIFT+¡ : pad_param2 +1
ALT+1 : deck 1 select & deck 1 leftdeck
ALT+2 : deck 2 select & deck 2 rightdeck
ALT+3 : deck 3 select & deck 3 leftdeck
ALT+4 : deck 4 select & deck 4 rightdeck
ALT+5 : deck 5 select & deck 5 leftdeck
ALT+6 : deck 6 select & deck 6 rightdeck
CTRL+1~6 : load track in number deck
S : stop_button
D : sync
C : cue_button
SPACE : play_button
CTRL+S : loop_back
CTRL+D : lquantize_loop
CTRL+C : quantize_setcue
CTRL+SPACE : reverse
ALT+S : smart_loop
ALT+D : smart_scratch
ALT+C : smart_cue
ALT+SPACE : smart_play
SHIFT+S : stop_button // temporal toggle STOP to PAUSE
SHIFT+D : loop_roll_mode
SHIFT+C : cue_button // temporal toggle CUE to CUP
SHIFT+SPACE : play_stutter // temporal toggle PAUSE to STUTTER
A : automix
CTRL+A : automix_add_next
ALT+A : nothing
SHIFT+A : mix_now
V : skin_panel 'bottom_video' on
CTRL+V : video
ALT+V : switch_skin_variation 'Tablet' ? skin_panel 'bottom_pads' on
SHIFT+V : switch_skin_variation 'Tablet' ? skin_panel 'bottom_fx' on
B : browser_scroll +
CTRL+B : browser_scroll -
ALT+B : browser_window +1
SHIFT+B : browser_enter
UP : holding 100ms ? volume +1% & repeat_start_instant 'level' 50ms & var 'UP' ? volume +1% : repeat_stop 'level' : volume +5%
CTRL+UP : holding 100ms ? headphone_volume +1% & repeat_start_instant 'level' 50ms & var 'UP' ? headphone_volume +1% : repeat_stop 'level' : headphone_volume +5%
SHIFT+UP : holding 100ms ? headphone_mix +1% & repeat_start_instant 'level' 50ms & var 'UP' ? headphone_mix +1% : repeat_stop 'level' : headphone_mix +5%
ALT+UP : holding 100ms ? master_volume +1% & repeat_start_instant 'level' 50ms & var 'UP' ? master_volume +1% : repeat_stop 'level' : master_volume +5%
DOWN : holding 100ms ? volume -1% & repeat_start_instant 'level' 50ms & var 'DOWN' ? volume -1% : repeat_stop 'level' : volume -5%
CTRL+DOWN : holding 100ms ? headphone_volume -1% & repeat_start_instant 'level' 50ms & var 'DOWN' ? headphone_volume -1% : repeat_stop 'level' : headphone_volume -5%
SHIFT+DOWN : holding 100ms ? headphone_mix -1% & repeat_start_instant 'level' 50ms & var 'DOWN' ? headphone_mix -1% : repeat_stop 'level' : headphone_mix -5%
ALT+DOWN : holding 100ms ? master_volume -1% & repeat_start_instant 'level' 50ms & var 'DOWN' ? master_volume -1% : repeat_stop 'level' : master_volume -5%
LEFT : holding 100ms ? crossfader -1% & repeat_start_instant 'level' 50ms & var 'LEFT' ? crossfader -1% : repeat_stop 'level' : crossfader -5%
SHIFT+LEFT :holding 100ms ? crossfader +3% & repeat_start_instant 'level' 50ms & var 'RIGHT' ? crossfader +3% : repeat_stop 'level' : crossfader +10%
CTRL+LEFT : holding 100ms ? crossfader -7% & repeat_start_instant 'level' 50ms & var 'LEFT' ? crossfader -7% : repeat_stop 'level' : crossfader -10%
ALT+LEFT : crosfader 0%
RIGHT: holding 100ms ? crossfader +1% & repeat_start_instant 'level' 50ms & var 'RIGHT' ? crossfader +1% : repeat_stop 'level' : crossfader +5%
SHIFT+RIGHT : holding 100ms ? crossfader -3% & repeat_start_instant 'level' 50ms & var 'LEFT' ? crossfader -3% : repeat_stop 'level' : crossfader -10%
CTRL+RIGHT: holding 100ms ? crossfader +3% & repeat_start_instant 'level' 50ms & var 'RIGHT' ? crossfader +3% : repeat_stop 'level' : crossfader +10%
ALT+RIGHT: crosfader 100%
L : holding 100ms ? eq_low +1% & repeat_start_instant 'low' 100ms & var 'L' ? eq_low +1% : repeat_stop 'low' : eq_low +5%
CTRL+L : holding 100ms ? eq_low -1% & repeat_start_instant 'low' 100ms & var 'L' ? eq_low -1% : repeat_stop 'low' : eq_low -5%
ALT+L : eq_low 50%
SHIFT+L : nothing
M : holding 100ms ? eq_mid +1% & repeat_start_instant 'mid' 100ms & var 'M' ? eq_mid +1% : repeat_stop 'mid' : eq_mid +5%
CTRL+M : holding 100ms ? eq_mid -1% & repeat_start_instant 'mid' 100ms & var 'M' ? eq_mid -1% : repeat_stop 'mid' : eq_mid -5%
ALT+M : eq_mid 50%
SHIFT+M : nothing
H : holding 100ms ? eq_high +1% & repeat_start_instant 'high' 100ms & var 'H' ? eq_high +1% : repeat_stop 'high' : eq_high +5%
CTRL+H : holding 100ms ? eq_high -1% & repeat_start_instant 'high' 100ms & var 'H' ? eq_high -1% : repeat_stop 'high' : eq_high -5%
ALT+H : eq_high 50%
SHIFT+H : nothing
G : holding 100ms ? gain +1% & repeat_start_instant 'gain' 100ms & var 'G' ? gain +1% : repeat_stop 'gain' : gain +5%
CTRL+G : holding 100ms ? gain -1% & repeat_start_instant 'gain' 100ms & var 'G' ? gain -1% : repeat_stop 'gain' : gain -5%
ALT+G : gain 50%
SHIFT+G : nothing
F : holding 100ms ? filter +1% & repeat_start_instant 'filter' 100ms & var 'F' ? filter +1% : repeat_stop 'filter' : filter +5%
CTRL+G : holding 100ms ? filter -1% & repeat_start_instant 'filter' 100ms & var 'F' ? filter -1% : repeat_stop 'filter' : filter -5%
ALT+G : filter 50%
SHIFT+G : nothing
J : seek +1
CTRL+J : seek -1
ALT+J : nudge +50ms
SHIFT+J : nudge -25ms
K : holding 100ms ? key_move +0.1 & repeat_start_instant 'key' 100ms & var 'K' ? key_move +0.1 : repeat_stop 'key' : key_move +0.5
CTRL+K : holding 100ms ? key_move -1 & repeat_start_instant 'key' 100ms & var 'K' ? key_move -0.1 : repeat_stop 'key' : key_move -0.5
ALT+K : key 0.5 // reset key
SHIFT+K : nothing
P : pitch +
CTRL+P : pitch -
SHIT+P : pitch_reset
ATL+P : leftdeck ? beatlock off & deck 2 beatlock on & pitch_reset
CTRL+ALT+P : pitch_reset 100%
O : beatlock
Z : loop_in
CTRL+Z : set 'Z' 1 while_pressed & repeat_stop 'move' & holding 100ms ? loop_move -10ms & repeat_start_instant 'move' 100ms & var 'Z' ? loop_move -10ms : repeat_stop 'move' : loop_move -1
SHIFT+Z : loop_half
ALT+Z : loop_adjust 'out' & loop_adjust -1
CTRL+ALT+Z : loop_adjust 'in' & loop_adjust -1
X : loop_in ? loop_out : loop
CTRL+X : set 'X' 1 while_pressed & repeat_stop 'move' & holding 100ms ? loop_move +10ms & repeat_start_instant 'move' 100ms & var 'X' ? loop_move +10ms : repeat_stop 'move' : loop_move -1
SHIFT+X : loop_double
ALT+X : loop_adjust 'out' & loop_adjust +1
CTRL+ALT+X : loop_adjust 'in' & loop_adjust +1
SPECIAL KEYS!
SHIFT : shift button and temporal change of 'playMode': if we have configured 'playMode' as play-pause, it will become play-stutter
CTRL : set 'ctrl' 1 while_pressed
ALT: set 'alt' 1 while_pressed & holding ? nothing : key_lock
SHIFT+CTRL-SHIFT : Permanent change of 'playMode': if we have configured 'playMode' as play-pause, it will become play-stutter
It also leaves locked SHIFT, can be unlocked quickly by pressing SHIFT or CTRL + SHIFT - CTRL
CTRL+ALT-CTRL : Keeps 'ALT' locked after releasing the buttons
ALT+CTRL : It may be possible to press SHIFT + F - SHIFT and the F key will be held down. This key combination is designed to unlock the keys with while_pressed: CTRL, ALT, F, G, H, J, K, L, M, Z and X.
Next the new configuration.
BASIC KEYS!
1 : pad 1
2 : pad 2
3 : pad 3
4 : pad 4
5 : pad 5
6 : pad 6
7 : pad 7
8 : pad 8
9 : pad_page -1
0 : pad_page +1
' : pad_param -1
¡ : pad_param +1
SHIFT+' : pad_param2 -1
SHIFT+¡ : pad_param2 +1
ALT+1 : deck 1 select & deck 1 leftdeck
ALT+2 : deck 2 select & deck 2 rightdeck
ALT+3 : deck 3 select & deck 3 leftdeck
ALT+4 : deck 4 select & deck 4 rightdeck
ALT+5 : deck 5 select & deck 5 leftdeck
ALT+6 : deck 6 select & deck 6 rightdeck
CTRL+1~6 : load track in number deck
S : stop_button
D : sync
C : cue_button
SPACE : play_button
CTRL+S : loop_back
CTRL+D : lquantize_loop
CTRL+C : quantize_setcue
CTRL+SPACE : reverse
ALT+S : smart_loop
ALT+D : smart_scratch
ALT+C : smart_cue
ALT+SPACE : smart_play
SHIFT+S : stop_button // temporal toggle STOP to PAUSE
SHIFT+D : loop_roll_mode
SHIFT+C : cue_button // temporal toggle CUE to CUP
SHIFT+SPACE : play_stutter // temporal toggle PAUSE to STUTTER
A : automix
CTRL+A : automix_add_next
ALT+A : nothing
SHIFT+A : mix_now
V : skin_panel 'bottom_video' on
CTRL+V : video
ALT+V : switch_skin_variation 'Tablet' ? skin_panel 'bottom_pads' on
SHIFT+V : switch_skin_variation 'Tablet' ? skin_panel 'bottom_fx' on
B : browser_scroll +
CTRL+B : browser_scroll -
ALT+B : browser_window +1
SHIFT+B : browser_enter
UP : holding 100ms ? volume +1% & repeat_start_instant 'level' 50ms & var 'UP' ? volume +1% : repeat_stop 'level' : volume +5%
CTRL+UP : holding 100ms ? headphone_volume +1% & repeat_start_instant 'level' 50ms & var 'UP' ? headphone_volume +1% : repeat_stop 'level' : headphone_volume +5%
SHIFT+UP : holding 100ms ? headphone_mix +1% & repeat_start_instant 'level' 50ms & var 'UP' ? headphone_mix +1% : repeat_stop 'level' : headphone_mix +5%
ALT+UP : holding 100ms ? master_volume +1% & repeat_start_instant 'level' 50ms & var 'UP' ? master_volume +1% : repeat_stop 'level' : master_volume +5%
DOWN : holding 100ms ? volume -1% & repeat_start_instant 'level' 50ms & var 'DOWN' ? volume -1% : repeat_stop 'level' : volume -5%
CTRL+DOWN : holding 100ms ? headphone_volume -1% & repeat_start_instant 'level' 50ms & var 'DOWN' ? headphone_volume -1% : repeat_stop 'level' : headphone_volume -5%
SHIFT+DOWN : holding 100ms ? headphone_mix -1% & repeat_start_instant 'level' 50ms & var 'DOWN' ? headphone_mix -1% : repeat_stop 'level' : headphone_mix -5%
ALT+DOWN : holding 100ms ? master_volume -1% & repeat_start_instant 'level' 50ms & var 'DOWN' ? master_volume -1% : repeat_stop 'level' : master_volume -5%
LEFT : holding 100ms ? crossfader -1% & repeat_start_instant 'level' 50ms & var 'LEFT' ? crossfader -1% : repeat_stop 'level' : crossfader -5%
SHIFT+LEFT :holding 100ms ? crossfader +3% & repeat_start_instant 'level' 50ms & var 'RIGHT' ? crossfader +3% : repeat_stop 'level' : crossfader +10%
CTRL+LEFT : holding 100ms ? crossfader -7% & repeat_start_instant 'level' 50ms & var 'LEFT' ? crossfader -7% : repeat_stop 'level' : crossfader -10%
ALT+LEFT : crosfader 0%
RIGHT: holding 100ms ? crossfader +1% & repeat_start_instant 'level' 50ms & var 'RIGHT' ? crossfader +1% : repeat_stop 'level' : crossfader +5%
SHIFT+RIGHT : holding 100ms ? crossfader -3% & repeat_start_instant 'level' 50ms & var 'LEFT' ? crossfader -3% : repeat_stop 'level' : crossfader -10%
CTRL+RIGHT: holding 100ms ? crossfader +3% & repeat_start_instant 'level' 50ms & var 'RIGHT' ? crossfader +3% : repeat_stop 'level' : crossfader +10%
ALT+RIGHT: crosfader 100%
L : holding 100ms ? eq_low +1% & repeat_start_instant 'low' 100ms & var 'L' ? eq_low +1% : repeat_stop 'low' : eq_low +5%
CTRL+L : holding 100ms ? eq_low -1% & repeat_start_instant 'low' 100ms & var 'L' ? eq_low -1% : repeat_stop 'low' : eq_low -5%
ALT+L : eq_low 50%
SHIFT+L : nothing
M : holding 100ms ? eq_mid +1% & repeat_start_instant 'mid' 100ms & var 'M' ? eq_mid +1% : repeat_stop 'mid' : eq_mid +5%
CTRL+M : holding 100ms ? eq_mid -1% & repeat_start_instant 'mid' 100ms & var 'M' ? eq_mid -1% : repeat_stop 'mid' : eq_mid -5%
ALT+M : eq_mid 50%
SHIFT+M : nothing
H : holding 100ms ? eq_high +1% & repeat_start_instant 'high' 100ms & var 'H' ? eq_high +1% : repeat_stop 'high' : eq_high +5%
CTRL+H : holding 100ms ? eq_high -1% & repeat_start_instant 'high' 100ms & var 'H' ? eq_high -1% : repeat_stop 'high' : eq_high -5%
ALT+H : eq_high 50%
SHIFT+H : nothing
G : holding 100ms ? gain +1% & repeat_start_instant 'gain' 100ms & var 'G' ? gain +1% : repeat_stop 'gain' : gain +5%
CTRL+G : holding 100ms ? gain -1% & repeat_start_instant 'gain' 100ms & var 'G' ? gain -1% : repeat_stop 'gain' : gain -5%
ALT+G : gain 50%
SHIFT+G : nothing
F : holding 100ms ? filter +1% & repeat_start_instant 'filter' 100ms & var 'F' ? filter +1% : repeat_stop 'filter' : filter +5%
CTRL+G : holding 100ms ? filter -1% & repeat_start_instant 'filter' 100ms & var 'F' ? filter -1% : repeat_stop 'filter' : filter -5%
ALT+G : filter 50%
SHIFT+G : nothing
J : seek +1
CTRL+J : seek -1
ALT+J : nudge +50ms
SHIFT+J : nudge -25ms
K : holding 100ms ? key_move +0.1 & repeat_start_instant 'key' 100ms & var 'K' ? key_move +0.1 : repeat_stop 'key' : key_move +0.5
CTRL+K : holding 100ms ? key_move -1 & repeat_start_instant 'key' 100ms & var 'K' ? key_move -0.1 : repeat_stop 'key' : key_move -0.5
ALT+K : key 0.5 // reset key
SHIFT+K : nothing
P : pitch +
CTRL+P : pitch -
SHIT+P : pitch_reset
ATL+P : leftdeck ? beatlock off & deck 2 beatlock on & pitch_reset
CTRL+ALT+P : pitch_reset 100%
O : beatlock
Z : loop_in
CTRL+Z : set 'Z' 1 while_pressed & repeat_stop 'move' & holding 100ms ? loop_move -10ms & repeat_start_instant 'move' 100ms & var 'Z' ? loop_move -10ms : repeat_stop 'move' : loop_move -1
SHIFT+Z : loop_half
ALT+Z : loop_adjust 'out' & loop_adjust -1
CTRL+ALT+Z : loop_adjust 'in' & loop_adjust -1
X : loop_in ? loop_out : loop
CTRL+X : set 'X' 1 while_pressed & repeat_stop 'move' & holding 100ms ? loop_move +10ms & repeat_start_instant 'move' 100ms & var 'X' ? loop_move +10ms : repeat_stop 'move' : loop_move -1
SHIFT+X : loop_double
ALT+X : loop_adjust 'out' & loop_adjust +1
CTRL+ALT+X : loop_adjust 'in' & loop_adjust +1
SPECIAL KEYS!
SHIFT : shift button and temporal change of 'playMode': if we have configured 'playMode' as play-pause, it will become play-stutter
CTRL : set 'ctrl' 1 while_pressed
ALT: set 'alt' 1 while_pressed & holding ? nothing : key_lock
SHIFT+CTRL-SHIFT : Permanent change of 'playMode': if we have configured 'playMode' as play-pause, it will become play-stutter
It also leaves locked SHIFT, can be unlocked quickly by pressing SHIFT or CTRL + SHIFT - CTRL
CTRL+ALT-CTRL : Keeps 'ALT' locked after releasing the buttons
ALT+CTRL : It may be possible to press SHIFT + F - SHIFT and the F key will be held down. This key combination is designed to unlock the keys with while_pressed: CTRL, ALT, F, G, H, J, K, L, M, Z and X.
Posted Thu 07 Feb 19 @ 10:02 am
I have verified that the ALT + P script does not work correctly with the mask of 4 or 6 decks
In addition to correcting the script, I added a timer that will put the beatlock back to OFF
NEW UPDATES for version 1.3
CTRL+1 : holding ? deck 1 unload : deck 1 load
CTRL+2 : holding ? deck 2 unload : deck 2 load
CTRL+3 : holding ? deck 3 unload : deck 3 load
CTRL+4 : holding ? deck 4 unload : deck 4 load
CTRL+5 : holding ? deck 5 unload : deck 5 load
CTRL+6 : holding ? deck 6 unload : deck 6 load
ALT+P : pitch 0.5 ? repeat_stop 'pitchreset' :
action_deck 1 ?
deck 4 rightdeck ? deck 1 beatlock off & deck 4 beatlock on & deck 1 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 1 pitch 0.5 ? repeat_stop 'pitchreset' & deck 4 beatlock off : nothing :
deck 6 rightdeck ? deck 1 beatlock off & deck 6 beatlock on & deck 1 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 1 pitch 0.5 ? repeat_stop 'pitchreset' & deck 6 beatlock off : nothing :
deck 1 beatlock off & deck 2 beatlock on & deck 1 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 1 pitch 0.5 ? repeat_stop 'pitchreset' & deck 2 beatlock off : nothing :
action_deck 3 ?
deck 4 rightdeck ? deck 3 beatlock off & deck 4 beatlock on & deck 3 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 3 pitch 0.5 ? repeat_stop 'pitchreset' & deck 4 beatlock off : nothing :
deck 6 rightdeck ? deck 3 beatlock off & deck 6 beatlock on & deck 3 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 3 pitch 0.5 ? repeat_stop 'pitchreset' & deck 6 beatlock off : nothing :
deck 3 beatlock off & deck 2 beatlock on & deck 3 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 3 pitch 0.5 ? repeat_stop 'pitchreset' & deck 2 beatlock off : nothing :
action_deck 5 ?
deck 4 rightdeck ? deck 5 beatlock off & deck 4 beatlock on & deck 5 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 5 pitch 0.5 ? repeat_stop 'pitchreset' & deck 4 beatlock off : nothing :
deck 6 rightdeck ? deck 5 beatlock off & deck 6 beatlock on & deck 5 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 5 pitch 0.5 ? repeat_stop 'pitchreset' & deck 6 beatlock off : nothing :
deck 5 beatlock off & deck 2 beatlock on & deck 5 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 5 pitch 0.5 ? repeat_stop 'pitchreset' & deck 2 beatlock off : nothing :
action_deck 2 ?
deck 3 leftdeck ? deck 2 beatlock off & deck 3 beatlock on & deck 2 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 2 pitch 0.5 ? repeat_stop 'pitchreset' & deck 3 beatlock off : nothing :
deck 5 leftdeck ? deck 2 beatlock off & deck 5 beatlock on & deck 2 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 2 pitch 0.5 ? repeat_stop 'pitchreset' & deck 5 beatlock off : nothing :
deck 2 beatlock off & deck 1 beatlock on & deck 2 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 2 pitch 0.5 ? repeat_stop 'pitchreset' & deck 1 beatlock off : nothing :
action_deck 4 ?
deck 3 leftdeck ? deck 4 beatlock off & deck 3 beatlock on & deck 4 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 4 pitch 0.5 ? repeat_stop 'pitchreset' & deck 3 beatlock off : nothing :
deck 5 leftdeck ? deck 4 beatlock off & deck 5 beatlock on & deck 4 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 4 pitch 0.5 ? repeat_stop 'pitchreset' & deck 5 beatlock off : nothing :
deck 4 beatlock off & deck 1 beatlock on & deck 4 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 4 pitch 0.5 ? repeat_stop 'pitchreset' & deck 1 beatlock off : nothing :
action_deck 6 ?
deck 3 leftdeck ? deck 6 beatlock off & deck 3 beatlock on & deck 6 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 6 pitch 0.5 ? repeat_stop 'pitchreset' & deck 3 beatlock off : nothing :
deck 5 leftdeck ? deck 6 beatlock off & deck 5 beatlock on & deck 6 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 6 pitch 0.5 ? repeat_stop 'pitchreset' & deck 5 beatlock off : nothing :
deck 6 beatlock off & deck 1 beatlock on & deck 6 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 6 pitch 0.5 ? repeat_stop 'pitchreset' & deck 1 beatlock off : nothing :
In addition to correcting the script, I added a timer that will put the beatlock back to OFF
NEW UPDATES for version 1.3
CTRL+1 : holding ? deck 1 unload : deck 1 load
CTRL+2 : holding ? deck 2 unload : deck 2 load
CTRL+3 : holding ? deck 3 unload : deck 3 load
CTRL+4 : holding ? deck 4 unload : deck 4 load
CTRL+5 : holding ? deck 5 unload : deck 5 load
CTRL+6 : holding ? deck 6 unload : deck 6 load
ALT+P : pitch 0.5 ? repeat_stop 'pitchreset' :
action_deck 1 ?
deck 4 rightdeck ? deck 1 beatlock off & deck 4 beatlock on & deck 1 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 1 pitch 0.5 ? repeat_stop 'pitchreset' & deck 4 beatlock off : nothing :
deck 6 rightdeck ? deck 1 beatlock off & deck 6 beatlock on & deck 1 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 1 pitch 0.5 ? repeat_stop 'pitchreset' & deck 6 beatlock off : nothing :
deck 1 beatlock off & deck 2 beatlock on & deck 1 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 1 pitch 0.5 ? repeat_stop 'pitchreset' & deck 2 beatlock off : nothing :
action_deck 3 ?
deck 4 rightdeck ? deck 3 beatlock off & deck 4 beatlock on & deck 3 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 3 pitch 0.5 ? repeat_stop 'pitchreset' & deck 4 beatlock off : nothing :
deck 6 rightdeck ? deck 3 beatlock off & deck 6 beatlock on & deck 3 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 3 pitch 0.5 ? repeat_stop 'pitchreset' & deck 6 beatlock off : nothing :
deck 3 beatlock off & deck 2 beatlock on & deck 3 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 3 pitch 0.5 ? repeat_stop 'pitchreset' & deck 2 beatlock off : nothing :
action_deck 5 ?
deck 4 rightdeck ? deck 5 beatlock off & deck 4 beatlock on & deck 5 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 5 pitch 0.5 ? repeat_stop 'pitchreset' & deck 4 beatlock off : nothing :
deck 6 rightdeck ? deck 5 beatlock off & deck 6 beatlock on & deck 5 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 5 pitch 0.5 ? repeat_stop 'pitchreset' & deck 6 beatlock off : nothing :
deck 5 beatlock off & deck 2 beatlock on & deck 5 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 5 pitch 0.5 ? repeat_stop 'pitchreset' & deck 2 beatlock off : nothing :
action_deck 2 ?
deck 3 leftdeck ? deck 2 beatlock off & deck 3 beatlock on & deck 2 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 2 pitch 0.5 ? repeat_stop 'pitchreset' & deck 3 beatlock off : nothing :
deck 5 leftdeck ? deck 2 beatlock off & deck 5 beatlock on & deck 2 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 2 pitch 0.5 ? repeat_stop 'pitchreset' & deck 5 beatlock off : nothing :
deck 2 beatlock off & deck 1 beatlock on & deck 2 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 2 pitch 0.5 ? repeat_stop 'pitchreset' & deck 1 beatlock off : nothing :
action_deck 4 ?
deck 3 leftdeck ? deck 4 beatlock off & deck 3 beatlock on & deck 4 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 4 pitch 0.5 ? repeat_stop 'pitchreset' & deck 3 beatlock off : nothing :
deck 5 leftdeck ? deck 4 beatlock off & deck 5 beatlock on & deck 4 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 4 pitch 0.5 ? repeat_stop 'pitchreset' & deck 5 beatlock off : nothing :
deck 4 beatlock off & deck 1 beatlock on & deck 4 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 4 pitch 0.5 ? repeat_stop 'pitchreset' & deck 1 beatlock off : nothing :
action_deck 6 ?
deck 3 leftdeck ? deck 6 beatlock off & deck 3 beatlock on & deck 6 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 6 pitch 0.5 ? repeat_stop 'pitchreset' & deck 3 beatlock off : nothing :
deck 5 leftdeck ? deck 6 beatlock off & deck 5 beatlock on & deck 6 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 6 pitch 0.5 ? repeat_stop 'pitchreset' & deck 5 beatlock off : nothing :
deck 6 beatlock off & deck 1 beatlock on & deck 6 pitch_reset 0.5% & repeat_start_instant 'pitchreset' 500ms & deck 6 pitch 0.5 ? repeat_stop 'pitchreset' & deck 1 beatlock off : nothing :
Posted Mon 11 Feb 19 @ 3:04 pm