Ingreso rápido:  

Forum: Old versions

Tema: Controller Button Modification

Este tópico es antiguo y puede contener información incorrecta para la nueva versión.

ClayDJPRO InfinityMember since 2011
Hi Everyone,
I have 3 buttons on my Denon 3900 that I would like to modify; the shift, shiftlock, and dump buttons. I have only included the shift button since it normally interacts with the shiftlock button.
The shift and dump buttons are press and release (non latching), the shiftlock button is a latch switch (off or on).
I would like all of them to work normally when in the up position.

When the shiftlock button is depressed, I would like the dump button on each individual deck to clone the opposite deck.

I am using DJdads 2 deck/4deck default swap skin. As of right now, I am only using the two deck part of the skin. I do not want the above modifications to affect decks 3 or 4, It should only affect decks 1 and 2 (left and right). The few scripts that I have already tried would sometimes clone on decks 3 and 4 even though I was in the 2 deck skin mode.

I have already tried numerous scripts with no luck.

Please help.
Thanks in advance,
Claydj
 

Mensajes Thu 05 Dec 13 @ 8:35 am
can't really advise you on the shiftlock as I have never used the 3900... but the cloning should be something like

device_side 'left' ? deck 2 clone_deck 1 : deck 1 clone_deck 2

or

device_side 'left' ? deck 2 clone_deck right : deck 1 clone_deck left

the second method should mean that you can copy decks 3 & 4 onto decks 1 & 2 but you will be cloning to the opposite side. it's just there incase you want to use decks 3 & 4.

from looking at the default mapper it looks like the shift and shiftlock buttons are separate so you could do what you want with:

device_side 'left' ? var 'shiftlock' ? deck 2 clone_deck 1 : deck left dump while_pressed : var 'shiftlock' ? deck 1 clone_deck 2 : deck right dump while_pressed
 

Mensajes Thu 05 Dec 13 @ 9:45 am
ClayDJPRO InfinityMember since 2011
Thanks for the info Synthet1c, but still no luck.

Using your script;
Deck 2 will dump deck 2 (great!).
Deck 2 will clone deck 1 (great!).
Deck 1 will dump for deck 2, not deck 1 (not good).
Deck 1 will not clone deck 2 (not good).

Basically deck 1 will not dump or clone with the script that you mentioned. Deck 2 works ok with the script.
I have also tried your recommended "deck 1 clone_deck left", and "deck 1 clone_deck 1" with no luck.

If I change "deck 2 clone_deck 1" to "deck 1 clone_deck 2", then the opposite deck will not work.

If I use only one deck: "device_side 'left' ? 'shiftlock' ? deck 2 clone_deck 1 : deck left dump while_pressed", the single deck works fine.

It's only when I add in the second deck that it will not work.

Any ideas?
Thanks again for your help,
Claydj
 

Mensajes Fri 06 Dec 13 @ 2:19 pm
try and explicitly state deck 1 & 2, but that will limit the overall functionality.

device_side 'left' ? var 'shiftlock' ? deck 2 clone_deck 1 : deck 1 dump while_pressed : var 'shiftlock' ? deck 1 clone_deck 2 : deck 2 dump while_pressed

or maybe

var 'shiftlock' ? device_side 'left' ? deck 2 clone_deck 1 : deck 1 clone_deck 2 : dump while_pressed

you should also note that 'shiftlock' is side dependent meaning that if you press it when deck 3 is in focus deck 1 wont have it engaged, if you want to make it accessible to all decks you need to make it global by adding a $ dollar sign before the name everywhere it occurs eg. '$shiftlock', but that may not be the best idea if the button actually toggles it's position on the hardware.

the only way I can think to balance out the shiftlock for adjacent decks (1&3), (2&4) is to map something like this which will set the shift for all decks at the same time depending on whether the button is up or down without having to modify any of your existing mapping.

device_side 'left' ? down ? set '$leftShiftLock' 1 & var '$leftShiftLock' ? deck 1 set 'shiftlock' 1 & deck 3 set 'shiftlock' 1 : deck 1 set 'shiftlock' 0 & deck 3 set 'shiftlock' 0 : set '$leftShiftLock' 0 & var '$leftShiftLock' ? deck 1 set 'shiftlock' 1 & deck 3 set 'shiftlock' 1 : deck 1 set 'shiftlock' 0 & deck 3 set 'shiftlock' 0 : down ? set '$rightShiftLock' 1 & var '$rightShiftLock' ? deck 2 set 'shiftlock' 1 & deck 4 set 'shiftlock' 1 : deck 2 set 'shiftlock' 0 & deck 4 set 'shiftlock' 0 : set '$rightShiftLock' 0 & var '$rightShiftLock' ? deck 2 set 'shiftlock' 1 & deck 4 set 'shiftlock' 1 : deck 2 set 'shiftlock' 0 & deck 4 set 'shiftlock' 0
 

Mensajes Fri 06 Dec 13 @ 3:39 pm
ClayDJPRO InfinityMember since 2011
Thanks again Synthet1c,

As previously mentioned I do not want Decks 3 or 4 involved if I am in the 2 deck mode.

What would be the script for only decks 1 & 2?

Thanks,
ClayDJ
 

Mensajes Fri 06 Dec 13 @ 4:04 pm
either of the first two, the last one is for the shift. you could make it really easy on yourself if you modify the skin though.
 

Mensajes Fri 06 Dec 13 @ 4:15 pm
ClayDJPRO InfinityMember since 2011
Modify the skin?
In what way?

Claydj
 

Mensajes Fri 06 Dec 13 @ 5:04 pm
Unzip and open the skin XML in a text editor, then in the device line you will see the attribute nbdecks="4", change it to nbdecks="2".

I'm not sure if this is required but it's probably also a good idea to get rid of any reference to deck 3 & 4 using find and replace [ctrl + h] on your keyboard.

find -> deck="3
repl -> deck="1

find -> deck="4
repl -> deck="2

find -> deck 3
repl -> deck 1

find -> deck 4
repl -> deck 2

** also you should note that you can modify the skin xml of an unzipped skin while it is open in VDJ, then to refresh to see the changes, choose the same skin in the config menu again, you don't need to exit out of the program. **
 

Mensajes Sat 07 Dec 13 @ 1:43 am
ClayDJPRO InfinityMember since 2011
Thanks again for the info Synthet1c.

I changed the "nb=4" to "nb=2" in the XML, and I got it to work with this string:
"deck 2 rightdeck ? var 'shiftlock' ? clone deck : dump while_pressed : deck 1 leftdeck ? var 'shiftlock' ? clone deck : dump while_pressed"

I still have a problem with the clone command.
I would like to reverse the action of the cloning.
If I use half of the above string:
"deck 2 rightdeck ? var 'shiftlock' ? deck 2 clone deck 1 : dump while_pressed"
It works great.
If I switch around the deck numbers for the clone action using half of the string:
"deck 2 rightdeck ? var 'shiftlock' ? deck 1 clone deck 2 : dump while_pressed"
It works great.

But when I add in the second half of the string:
"deck 2 rightdeck ? var 'shiftlock' ? deck 2 clone deck 1 : dump while_pressed : deck 1 rightdeck ? var 'shiftlock' ? deck 1 clone deck 2 : dump while_pressed"
Then only one deck will clone to only one deck (even if I swap around the clone deck numbers).

I have also tried adding "param_invert" with no luck, and "invert_controllers" which works but reverses the deck cloning action with each press.

I'm basically looking to reverse the action of the "clone_deck" command, and the "deck # clone_deck #" command will not work with the full string.

Any ideas? Thanks,
Claydj
 

Mensajes Mon 09 Dec 13 @ 10:10 am
you forgot to put "device_side 'left' ?" in front of it. that is what separates the sides of your controller.
 

Mensajes Mon 09 Dec 13 @ 10:40 am
djdadPRO InfinityDevelopment ManagerMember since 2005
I think you should dump the device_side action and use the action_deck instead, as the 3900 has no sides if not mistaken.
It should be like..

action_deck 1 ? deck 1 clone_deck 2 : action_deck 2 ? deck 2 clone_deck 1 etc.
 

Mensajes Mon 09 Dec 13 @ 1:36 pm
ClayDJPRO InfinityMember since 2011
I’m not at home with my units now but I’ll check later.

Should I place “device_side ‘left’ ?” at the very beginning of the string (in front of “deck 2 rightdeck ?...”)?

Is there such a thing as “device_side ‘right’ ?” that I need to use for the second half of the string to identify the other deck?

Since I am adding another "?", do I need to add another verb or command in the string?

Thanks,
Claydj
 

Mensajes Mon 09 Dec 13 @ 2:24 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
action_deck x makes sure the action will be executed on the correct device (for a single deck controller), that uses invert_controllers to switch the controlled deck on a unit.
If you wish to query which deck is left and which right, in order to always clone left or right and vice-versa, you need to make sure that the button you are using to change the controlled deck is also switching the left and right decks.
 

Mensajes Mon 09 Dec 13 @ 2:59 pm
ClayDJPRO InfinityMember since 2011
My clone issue solved! :)

Thanks DJdad for your suggestion. Yes the "action_deck" verb was needed in the string.

Thanks Synthet1c for your suggestions, and helping me work out the earlier bugs.

You guys are great!
Claydj
 

Mensajes Tue 10 Dec 13 @ 7:19 am


(Los tópicos y foros antiguos son automáticamente cerrados)