快速登录:  

Forum: Portuguese Forum

话题: SHIFT no mapper da Behringer CMD MICRO

由于该帖子已年深日久,可能包含陈旧过时或描述错误的信息。

Oi, o VirtualDj 7.4 Pro reconheceu sem problemas a controladora, todas as funções dela foram reconhecidas. Mas eu fiz alterações no mapper pra ter acesso aos recursos que eu mais uso.

Como não uso o SYNC eu tentei usar o botão como o SHIFT do teclado, pra ativar uma segunda função pra cada tecla e dobrar as opções da controladora.

Defini assim no mapper KEY = action :

SYNK =
HOTCUE_1 = loop_in
HOTCUE_2 = loop_out
SYNK+HOTCUE_1 = loop_half
SYNK+HOTCUE_2 = loop_double

Mas não funcionou a combinação de teclas. Alguém sabe como posso fazer isso funcionar?
 

发表时间 Tue 24 Nov 15 @ 10:37 pm
Speedy53PRO InfinityModeratorMember since 2008
Em primeiro lugar, registre-se que não há uma licença que habilite uso de controladores vinculada à sua conta. Se você faz uso de programas pirata, não condeno sua opção, mas somente questiono se você espera sinceramente que um programa alterado por hackers realmente tenha um desempenho sem falhas.
Em segundo lugar, registre-se que não existe tecla "SYNK" na CMD-4A, e sim "SYNC". Portanto reveja a grafia se sua função estiver com descrição errada.
Mas ainda assim, se não me engano, creio que não é possível criar combos de teclas em controladoras MIDI, somente em teclados.
Para que uma tecla realize funções diferentes, será necessário criar um mapeamento condicional, baseado em variável. É preciso um conhecimento um pouco mais aprimorado de mapeamento e VDJScript neste caso. Exemplo:
A tecla A do controlador altera a condição de uma variável XX entre valores "liga" e "desliga"
A tecla B do controlador é mapeada para executar a função "andar" se o valor da tecla A for "liga", e a função "correr" se o valor da tecla A for "desliga".
 

发表时间 Wed 25 Nov 15 @ 12:43 am
Obrigado pela resposta. Eu digitei errado aqui, no mapeamento da CMC MICRO está tudo certo.

Estava desistindo porque também pensei que o protocolo MIDI não aceitava combos e era assim mesmo, mas vi que a American Audio VSM 4 vem com a tecla SHIFT. O problema deve ser no mapeamento e na variável condicional mesmo. Só falta eu descobrir como se faz isso.

Mas pelo menos já sei onde começar a procurar. Obrigado de novo.
 

发表时间 Wed 25 Nov 15 @ 1:04 am
Speedy53PRO InfinityModeratorMember since 2008
Não somente a Amercian Audio, mas outros tantos controladores tem a tecla SHIFT.
A tecla SHIFT realiza a função da tecla A, no exemplo que citei. É esta tecla que muda o valor da variável que se usa como referência pra mudar o mapeamento das outras teclas. A tecla SHIFT pode ter dezenas de condições diferentes, por exemplo, a cada toque o valor muda numa escala de 0, 1, 2, 3 até 20, e depois volta a zero. Isso significa que qualquer outro botão pode ter 20 funções diferentes, dependendo da condição da SHIFT.
No passado, os mapeamentos tinham funções específicas para a tecla SHIFT, por exemplo, set "myvar" 1 é uma função que define a SHIFT entre somente dois valores (zero e um).
Em casos que que a SHIFT tinha mais de duas condições, levava outras teclas de função dupla ou até mesmo tripla a ter actions muito grandes.
Mas atualmente houve um avanço e me parece que esta função da SHIFT é definida no DEFINITION MAPPER do controlador, bem como as funções normais de cada tecla, e as teclas que funcionam associadas à tecla SHIFT tem a descrição modificada e somente é mapeada a função alternativa, por exemplo, SHIFT_PLAY ou SHIFT_FLANGER
 

发表时间 Wed 25 Nov 15 @ 1:16 am
Consegui! \o/

Foi só procurar o que tu falou aqui http://www.virtualdj.com/wiki/VDJScript_pt.html. Tentei a função set $myvar e não funcionava, $myshift também não. Aí usando a mesma lógica de $myshift eu imaginei que a variável deveria ter o mesmo nome do botão a que ela está associado, e aí $mysync funcionou. (Parece tão simples depois que a gente sabe).

No mapper ficou assim (KEY = Action):
SYNC = set $mysync while_pressed
HOTCUE_1 = var $mysync ? loop_half : loop_in
HOTCUE_2 = var $mysync ? loop_double : loop_out

E pra quem estava pensando em como ia viver sem o SYNC:
PLAY = var $mysync ? sync : play_pause

Um detalhe importante é a ordem dos comandos (comando1 : comando2). O comando1 vai ser ativado quando o botão SYNC for mantido pressionado, o comando2 quando o botão for pressionado normalmente.

Bom, assim eu dobrei o número de funções possíveis da minha controladora, deve servir pra outras também. Fica aí como contribuição pra comunidade.

Obrigado de novo pela ajuda.
 

发表时间 Wed 25 Nov 15 @ 12:19 pm
Speedy53PRO InfinityModeratorMember since 2008
Eu que agradeço usa contribuição para a comunidade.
 

发表时间 Fri 27 Nov 15 @ 12:30 am


(陈旧帖子或论坛版块会自动关闭)