
Mon 30 Nov 09 @ 10:49 pm
VDJ script es un lenguaje en donde todos los comandos de VirtualDJ 6 deben escribirse.
para ser utilizados en las carátulas (skins), los atajos de teclado definidos en el controlador mediante mappers.
Este se ha diseñado para ser simple y corto cuando es utilizado para acciones sencillas, pero lo bastante versátil para manejar complejos scripts y macros.
En su forma mas simple, usted puede escribir comandos a su gusto "play", "pause", "goto_cue 1", "volume 70%", "pitch +0.5%", etc...
O usted puede escribir complejas macros a su agrado "play ? crossfader +12.3% & effect 'flanger' activate : deck 2 loop 4 & set $myvar 42"
Verbos
Los elementos básicos de VDJscript son "verbos".
Usted puede buscar una lista de verbos reconocidos por VirtualDJ en el puede observar también "Véase también" la caja de ajustes/Mapper, la cuál es una ventana de VirtualDJ.
O, alternativamente, usted puede abrir el archivo English.xml localizado en Documents/VirtualDJ/Languages/ folder, y verificar todos los verbos (y su respectiva descripción) debajo del elemento <action>.
Comandos
El comando más básico consistiría únicamente en un solo verbo (como "play" o "pause").
Optionalmente, este verbo puede ser acompañado por diferentes modificaciones y parámetros:
- deck: Usted puede especificar cuál deck tendrá una acción con solo agregar a este el parámetro indicado "deck xxx" al frente del verbo. xxx puede ser "1", "2", "left", "right", "default" o "active". ("1"/"left" y "2"/"right" son sinónimos).
- parameters: El verbo puede ser acompañado por uno o dos parámetros. La función de este parámetro depende mucho del verbo. Los parámetros pueden ser secuencias, porcentajes, números boleanos, tiempos, valores de números enteros, o valores decimales.
- effects: Para los verbos que actuan con efectos, Usted necesita anteponer al verbo la palabra clave "effect", seguido opcionalmente por el efecto, número del efecto o el nombre del efecto: "effect activate" o "effect 'flanger' slider 1 100%".
- sampler: Para los verbos que actuán con un sampler, Usted necesita anteponer al verbo la palabra clave "sampler", seguido opcionálmente por el sampler o el número del sampler: "sampler activate" o "sampler 3 volume 100%".
- queries: Algunas consultas especificas "queries" necesitan la palabra clave "get" antes del verbo, por ejemplo: "get time_ms".
- temporary action: Usted puede especificar que el verbo actué solo si es presionado el boton agregando "while_pressed" al final del comando: "volume 100% while_pressed".
- blinks: Para consultas (queries), usted puede añadir "blink" o "blinkfast" para obtener una respuesta boleana si cumple las condiciones entre lo verdadero y falso, si la respuesta original era cierta sería de la siguiente manera: "play blink"
La sintáxis completa de comandos es:
[deck [deck]] [sampler [slot] | effect [effectname/slot] | get] verb [param1] [param2] [blink | blinkfast] [while_pressed]
( [...] means : optional )
( | means : or )
Macros
Si usted requiere escribir mas complejas las macros, puede usar el operador "&" para una cadena de comandos, o los operadores "?" y ":" para escribir una condición de salto o cambio.
Utilizando "command1 & command2 & command3" el cuál **MOBILE CODE** es command1, el **MOBILE CODE** es command2, el command3.
Utilizando "command1 ? command2 : command3" el cuál command1 evaluá, y si el resultado es verdadero el **MOBILE CODE** será command2, caso contrario el **MOBILE CODE** será command3.
Por ejemplo:
Utilizando "action_deck 1? command1 : command2" el **MOBILE CODE** evaluador es command1, Si el botón del controlador estaba definido para trabajar con el deck 1 (see "definition" xml file) o el **MOBILE CODE** es command2 si el botón del controlador estaba definido para trabajar el deck 2
Acciones contra Consultas (Actions vs queries):
Los comandos se pueden utilizar ya sea como acciones o como consultas, dependiendo del contexto.
Por ejemplo, el comando "play" utilizados en un atajo de teclado, será una acción, y empezará a sonar la música cuando sea ejecutado.
El mismo comando "play" se utiliza como una asignación para un controlador de LED´S; será una consulta y devolverá un resultado verdadero si el tema está sonando, o falso si no lo está.
Algunos comandos pueden devolver un resultado boleano (verdadero o falso) o un valor, dependiendo de los parámetros:
- "crossfader" puede devolver un valor (entre 0.0 y 1.0) si se usa en una consulta.
- "crossfader 42%" puede devolver un resultado verdadero si el crossfader está en 42%, y falso si es lo contrario.
Comandos utilizados con la palabra clave "get" pueden devolver una cadena o un número dependiendo del verbo utilizado.
Parametros
VDJscript tiene 6 tipos de parámetros y son:
- texto: necesita estar encerrado por comillas simples (') o dobles comillas (") por ejemplo: "load 'myfile.mp3'"
- booleanos: pueden ser las palabras clave "on", "off" o "toggle". (que a menudo son equivalentes a los números enteros 1, 0 y -1 respectivamente) por ejemplo: "smart_play off"
- tiempos: se especifica mediante la adición de la palabra clave "ms" por ejemplo: "nudge +100ms"
- enteros: por ejemplo "effect select +1"
- decimales: por ejemplo "crossfader 0.5"
- porcentajes: por ejemplo "crossfader 50%"
La mayoría de las veces el tiempo, los decimales y porcentajes son usados de la misma forma (por supuesto después de dividir el 100%).
Existen unas excepciones, tal es el caso del verbo "pitch", donde "pitch 100%" establece el tono a la mitad, mientras que "pitch 1.0" establece el tono para el máximo de la barra de desplazamiento.
Tenga en cuenta también que "nudge +1" y "nudge +1.0" no son lo mismo. El primero se mueve un solo beat, mientras que el segundo es equivalente a "nudge +100%" que hace saltar al final de la canción. La mayoría de las veces se debe utilizar porcentajes en lugar de decimales, pero conviene escribir complejos scripts que valen la pena conocer.
Parámetros Implícitos
Cuando un comando se utiliza como una acción para controlar el deslizador (slider, knob, jogwheel, etc), el valor del deslizador (slider) se añadirá como un parámetro implícito.
Cuando un parámetro implícito es añadido, este se agregará al final del comando, como un parámetro adicional que viene justo después de los ya existentes.
Si su acción es "volume" y se asigna a un control deslizante que se mueve a 42%, la acción que enviará será de "volume 0.42".
Pero si su acción es "volume +10%", la acción que será enviada es "volume +10% 0.42" (y el segundo parámetro 0.42 será seguramente ignorado ya que el verbo "volume" reconoce únicamente un parametro).
Si usted necesita modificar un parámetro implícito, usted puede utilizar algunos verbos como "param_multiply", "param_add", etc...
por lo tanto "param_multiply 0.1 & volume" es el resultado de ajustar el volumen a 4.2%
Si usted tiene una macro con varios comandos, cada uno de ellos se obtendrá del parámetro implícito añadido.
Asi que si usted escribe "crossfader & loop" y asigna mapeando al control deslizador un movimiento de 42%, la acción que enviará será "crossfader 0.42 & loop 0.42".
Si desea evitar que el parámetro implícito actúe con algunos comandos, usted puede usar la palabra clave "value" para especificar que el parámetro implícito deje de funcionar.
por lo tanto "crossfader value & loop" enviará "crossfader 0.42 & loop".
(usted puede tener la precencia de varios "value" en su macro, cada uno de ellos será sustituido por el parámetro implícito.).
Además,vale la pena saber que a los controles deslizantes se les agrega un parámetro decimal ("crossfader" -> "crossfader 0.42"), jogwheel que añadir un decimal relativo ("crossfader" -> "crossfader +0.42", +1.0 será una revolución completa de la rueda), y los codificadores agregarán un número entero relacionado ("crossfader" -> "crossfader +1").
Si usted utiliza un codificador para un verbo esperado por el control deslizador, el entero se convertirá automáticamente en un decimal dividido este por 32 (de modo que uno necesita de 32 pasos para decodificar el movimiento del control deslizador de 0% a 100%). asi en el ejemplo anterior "crossfader +1" es equivalente a "crossfader +0.03125". Usted puede utilizar "param_multiply" si necesita de otra resolución.
Variables
VDJscript puede almacenar el estado de los numeros en variables internas.
Si el nombre de la variable empieza con un signo $ (like "set $myvar"), la variable es 'global' para los dos decks.
Si el nombre de la variable empieza con un signo % (like "set %myvar") o sin nada (like "set 'myvar'"), la variable será 'local' para este deck (y puede tener un valor distinto si es utilizado para el otro deck).
La variables son persistentes durante todo el tiempo en que VirtualDJ está corriendo (que no son locales para un controlador especifico o skin).
Para establecer una variable, puede usar verbos como "set", "toggle", "cycle".
Para leer una variable, puede utilizar verbos como "var", "var_equal", "var_smaller", etc...
Un ejemplo típico en el uso de variables es "set $myshift while_pressed" en el botón shift, y "var $myshift ? command1 : command2" en otro boton.
Wiki HOME
PD; Cualquier mejora en la traducccion por favor reportenla a un servidor para realizar los cambios necesarios.
Espero contar con la traduccion de los Verbos en VDJ v6 pronto pues ya empece a trabajar en ello...
