Saltar al contenido principal
MIDI Mapping, mods y homebrew

Cómo crear una capa SHIFT personalizada en tu mapping

Una capa SHIFT multiplica las funciones de tu controladora sin añadir botones. Los dos métodos para montarla, sus trampas y el aviso que evita saltos de valor.

  • Intermedio
  • DJ · Técnico
  • 7 min de lectura
  • Revisado el 29/09/2026

Una capa SHIFT es la forma más rentable de sacarle más partido a una controladora que ya tienes. Ni compras nada, ni abres el equipo, ni instalas firmware: el mismo botón hace dos cosas distintas según un estado.

Es también una de las ideas peor explicadas en los foros, porque casi siempre se cuenta desde una interfaz concreta en lugar de desde el concepto. Aquí vamos al concepto primero; después, cómo se traduce a cada programa.

La idea de fondo: un estado que cambia el significado

Olvida por un momento los botones y piensa en esto:

Una capa es un estado. Mientras ese estado está activo, los mismos controles significan otra cosa.

No hay nada más. Todo lo demás son formas de implementar esa frase:

  • Un botón SHIFT es el interruptor de ese estado.
  • Los modificadores de un software son variables donde se guarda ese estado.
  • Las funciones de tus controles son las que deciden qué hacer según el estado.

Y la consecuencia más importante: la capa no añade controles físicos, añade significados. Si tu controladora tiene 16 botones y montas dos capas, pasas a tener 32 funciones. Por eso es tan popular: es la única forma de multiplicar sin comprar.

Un aviso antes de empezar

Muchas controladoras ya envían mensajes distintos mientras mantienes SHIFT pulsado. Si es tu caso, puede que no necesites programar nada: basta con declarar en el XML que ese mensaje activa esa otra función.

Es decir: comprueba primero si tu equipo ya lo hace. La documentación de Mixxx lo plantea en ese orden —si la controladora envía señales distintas con SHIFT, quizá no haga falta JavaScript— y ahorra trabajo a mucha gente que se pone a programar capas cuando no le hacen falta.

Solo cuando el equipo no distingue los mensajes, o cuando quieres un comportamiento propio que el hardware no envía, entras al terreno del script.

Los modificadores en Traktor

En Traktor las capas tienen nombre propio: modificadores. Son tipos de control que definen condiciones para otras asignaciones.

Sus reglas, según la documentación oficial:

  • Hay ocho modificadores, y cada uno puede tomar distintos valores según el elemento de hardware al que esté mapeado.
  • Una asignación puede exigir condiciones, por ejemplo M1 = 0 y M2 = 1. Solo se ejecuta si se cumplen todas.
  • Eso permite que un mismo control tenga varias asignaciones, de las que solo una estará activa en cada momento.
  • Su valor actual se consulta en el panel Modifier State.

Ese panel es más importante de lo que parece: cuando un mapping con capas «no funciona», la causa más común es que un modificador está en un estado que no esperabas. Mirarlo es el primer paso para depurar.

Y el ejemplo que da la propia documentación es exactamente una capa SHIFT: un botón modificador que alterna entre dos valores, al que se le cuelgan dos asignaciones del mismo botón de Play/Pause para que actúe sobre el Deck A o sobre el Deck B.

El consejo que conviene tomar en serio

Traktor lo advierte sin rodeos: los mappings con modificadores se vuelven complejos y difíciles de diagnosticar rápidamente, y recomienda no usarlos si el problema se puede resolver sin ellos.

No es una advertencia de manual. Un mapping con cinco modificadores encadenados es imposible de depurar en directo. Si puedes resolverlo sin capas, resuélvelo sin capas.

Dos formas de implementar una capa SHIFT

Cuando el hardware no te lo da hecho, hay dos métodos. Ambos funcionan, y la elección depende de tu escala.

Método 1: una variable de estado

Declaras una variable de estado y la activas con el botón SHIFT. Después, cada función consulta esa variable antes de decidir qué hacer.

Es directo y funciona muy bien para lo simple. Su problema aparece en cuanto crece: si consultas la variable en veinte funciones, mantenerlo se vuelve pesado, y con más de dos modos empieza a ser difícil seguir mentalmente qué pasa en cada uno. Ese es el motivo por el que la documentación lo describe como un enfoque que «puede funcionar bien para casos simples».

Método 2: reasignar las funciones

En lugar de consultar un estado en cada función, defines las funciones de cada capa por separado y el botón SHIFT intercambia qué conjunto está activo.

La ventaja es que cada función queda limpia: no lleva dentro comprobaciones de estado, porque la capa ya decide cuál se ejecuta. Y crece mucho mejor, porque organizas el código por capas en lugar de repartir condiciones por todas partes.

A cambio, exige estructura. Hay que agrupar las funciones de cada capa de forma coherente, y eso es un trabajo de diseño que se hace antes de escribir la primera línea.

Dos formas de implementar una capa SHIFT
Método Cómo funciona Cuándo conviene Inconveniente
Variable de estado Una variable booleana que se activa con el botón SHIFT; cada función la consulta antes de actuar.Dos capas y pocos controles.Se vuelve incómoda si la consultas en muchas funciones.
Reasignar funciones Se guardan las funciones de cada capa en grupos y el botón SHIFT intercambia qué grupo está activo.Tres o más capas, o muchos controles compartidos.Más estructura: hay que organizar bien el código.
Mensajes distintos por hardware La propia controladora envía mensajes distintos al mantener SHIFT.Si tu equipo ya lo hace.Ninguno: puede resolverse solo con XML.

Las dos funcionan. La elección depende de cuántas capas quieras y de cuántos controles compartan esas capas.

Cómo elegir entre los dos

Una regla práctica y suficiente:

  • Una capa, dos estados, pocos controles compartidos → variable de estado.
  • Tres o más capas, o muchos controles que cambian → reasignar funciones.
  • El hardware ya envía mensajes distintos → ni una ni otra: resuélvelo en el XML.

El detalle que rompe las capas: el salto de valor

Aquí está la trampa que arruina más mappings de capas, y conecta directamente con la guía anterior.

Los controles físicos con topes (knobs y faders) tienen una posición. El parámetro que controlan tiene otra. Cuando cambias de capa, el mando físico pasa a controlar un parámetro distinto, y ese nuevo parámetro puede estar en cualquier posición.

El resultado es el salto clásico: pulsas SHIFT, tocas el knob y el valor se planta de golpe donde estaba el mando.

Para evitarlo hay que hacer dos cosas, y la segunda se olvida siempre:

  1. Activar soft takeover en los mandos con topes que compartan capas.
  2. Avisar al software de qué mando físico estás manipulando cada vez que cambias su funcionalidad. Sin ese aviso, al volver a la capa anterior el valor salta de nuevo, porque el software cree que el mando sigue en la posición de la otra capa.

Ese segundo punto es lo que distingue una capa que funciona de una que da saltos en ambos sentidos.

Buenas prácticas de diseño

Lo que separa un mapping de capas que usas de uno que abandonas:

  • Diseña en papel primero. Qué control hace qué en cada capa, antes de tocar código.
  • Agrupa por función, no por capa arbitraria. Si una capa mezcla loops, EQ y navegación, no la recordarás.
  • Mantén la capa base completa. La capa sin SHIFT debe cubrir tu forma normal de pinchar; SHIFT es lo excepcional.
  • No uses capas para lo que usas constantemente. Si tocas algo cada dos minutos, no puede estar detrás de SHIFT.
  • Documenta tu propio mapping. Un comentario por asignación te salva la vida seis meses después.
  • Prueba el ciclo completo. Activar capa, mover un mando, volver a la capa anterior: ahí es donde aparecen los saltos.

Cuándo NO usar capas

Es la sección que casi nunca se escribe, y es la más útil:

  • Cuando el hardware ya envía mensajes distintos y te basta con declararlo.
  • Cuando la función es crítica y de uso constante. Los saltos y la carga mental no compensan.
  • Cuando el software ya ofrece la función en su interfaz y la usas poco. Para algo esporádico, un clic no es un problema.
  • Cuando no puedes probarlas antes de un bolo. Una capa sin rodaje es una capa que en directo te hace dudar.

La advertencia de Traktor apunta a lo mismo desde otro lado: la complejidad tiene un coste, y el coste se paga en la peor cabina posible.

Errores frecuentes

  • Ponerte a programar capas sin comprobar si tu controladora ya lo envía.
  • Olvidar el aviso de cambio de funcionalidad, con lo que el valor salta al volver a la capa base.
  • No activar soft takeover en mandos compartidos.
  • Diseñar capas que no puedes recordar sin pensar.
  • Confiar en Modifier State solo cuando algo falla. Míralo mientras diseñas: te dice si la lógica es la que creías.
  • Encadenar demasiados modificadores. Es el punto en el que el mapping deja de ser depurable.
  • Montar la capa la noche antes del bolo.

Siguiente paso

Ya sabes montar capas sin caerte en los saltos. La siguiente pieza de un mapping que se siente profesional no está en los controles, sino en lo que te devuelve información: los LEDs. Un mapping con feedback de estado se maneja a oscuras; uno sin él te obliga a mirar la pantalla. Es la siguiente guía.

Preguntas frecuentes

¿Qué es una capa SHIFT en un mapping?

Es un estado que cambia el significado de otros controles. Mientras el estado está activo, los mismos botones y mandos hacen cosas distintas, así que multiplicas funciones sin añadir hardware.

¿Mi controladora ya trae SHIFT? ¿Necesito mapearlo?

Muchas controladoras ya envían mensajes distintos al mantener SHIFT, y en ese caso puede bastar con XML. Solo hace falta scripting cuando el equipo no lo hace por sí solo o cuando quieres un comportamiento propio.

¿Qué son los modificadores de Traktor?

Son condiciones que decides cuándo se cumplen. Hay ocho, cada uno con sus valores, y una asignación puede exigir que se cumplan valores concretos para ejecutarse. Es el mecanismo que hay detrás de un botón SHIFT.

¿Por qué el valor salta cuando cambio de capa?

Porque un mando físico con topes tiene una posición y el parámetro de la nueva capa tiene otra. Hay que avisar al software de qué mando estás manipulando al cambiar de funcionalidad, o el valor saltará al volver.

¿Cuál es la mejor forma de implementar capas?

Depende de cuántas capas tengas. Con dos capas, una variable de estado suele bastar. A partir de tres, o si un control debe comportarse distinto en varias, resulta mucho más manejable reasignar funciones por capa.

¿Cuántas capas conviene montar?

Las que puedas recordar sin pensar. Una capa que tienes que consultar mentalmente en cabina no la vas a usar, y encima compite por un mando que necesitas para otra cosa.

Continúa aprendiendo

Siguiente lecciónCómo controlar LEDs y colores desde un mapping

Los LEDs son asignaciones de salida, no de entrada. Cómo se iluminan, cómo se les da color, cómo mantenerlos sincronizados con el software y por qué fallan.

Fuentes

  1. Mixxx Wiki — MIDI Scripting (Controller Scripting) Comunidad (señal complementaria) Mixxx (proyecto de código abierto) · consultado el 29/09/2026

    Fuente principal de los dos métodos. Explica que muchas controladoras envían señales MIDI distintas mientras un botón SHIFT está pulsado, y que en ese caso puede no hacer falta JavaScript y bastar con el XML; y que cuando no es así, hay que usar JavaScript. Documenta dos enfoques: declarar una variable booleana de estado que se consulta desde otras funciones, y reasignar las funciones de entrada por capa guardándolas en objetos. Avisa de que el primer enfoque se vuelve incómodo cuando se consulta en muchas funciones y difícil de seguir con más de dos modos. Incluye también el aviso de que, al cambiar la funcionalidad de un control absoluto con soft-takeover activo, hay que indicar qué mando físico se está manipulando para que el valor no salte al volver.

  2. How to Use the Controller Manager in Traktor Documentación oficial Native Instruments · consultado el 29/09/2026

    Documenta los modificadores como el mecanismo de capas del programa: son tipos de control que definen condiciones para otras asignaciones, su valor puede tomar distintos valores según el elemento de hardware al que estén mapeados, y su estado actual se ve en el panel Modifier State. Una asignación solo se ejecuta si se cumplen todas sus condiciones, lo que permite que un mismo control tenga varias asignaciones de las que solo una esté activa. Menciona explícitamente el caso del botón SHIFT y ofrece un ejemplo paso a paso de un botón modificador para alternar entre Deck A y Deck B. Advierte de que los mappings con modificadores se vuelven complejos y difíciles de diagnosticar, y recomienda no usarlos si el problema se puede resolver sin ellos.

Última revisión técnica: 29/09/2026. Si detectas un error, indícalo para corregirlo.