Quick Sign In:  

Forum: Addons

Topic: Universal Keyboard Mappin k400plus
MrJackyPRO InfinityMember since 2015
 

geposted Tue 05 Feb 19 @ 8:40 am
MrJackyPRO InfinityMember since 2015
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
 

geposted Tue 05 Feb 19 @ 10:36 am
MrJackyPRO InfinityMember since 2015
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.
 

geposted Thu 07 Feb 19 @ 10:02 am
MrJackyPRO InfinityMember since 2015
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 :
 

geposted Mon 11 Feb 19 @ 3:04 pm