Este es un tema que ya se ha mencionado antes en el foro, pero creo que quizás no lo suficiente, puesto que se trata de algo de Live relativamente fácil de configurar y en lo cual merece mucho la pena invertir 3/4 de hora.
MIDI Remote Script: Fichero "UserCOnfiguration.txt"
Fuente: http://createdigitalmusic.com/2009/07/29/ableton-live-midi-remote-scripting-how-to-custom-korg-nanoseries-control/ (aquí se pone como ejemplo un nanokontrol y un nanopad como "pseudo-superficies de control" para Live, pero en principio sirve cualquier controlador). Lo que sigue es prácticamente una traducción/adaptación de este link.
¿A quien está dirigido? A aquellos que tengan un controlador no soportado por Live como superficie de control.
¿Para qué sirve?Para asignar dinámicamente parámetros de Live a un controlador cualquiera. En concreto:
- Los volúmenes y los 2 primeros envíos de las pistas 1 a 8 (y por desgracia solo estas), y el volúmen de master.
(Para explicar con un ejemplo que implica dinámicamente: Tened en cuenta que por defecto tendremos asignados 8 faders de nuestro controlador a los volúmenes de las pistas 1-8. Si cambiamos, por ejemplo, la posición de las pistas 2 y 7, entonces el mapeado dinámico reasignará los valores de control de manera que el 2º fader siempre moverá la 2ª pista y el 7º fader moverá la 7ª pista.)
- Todos los parámetros de un dispositivo VST seleccionados mediante "configure" se asignarán dinámicamente con el mismo orden a 8 potenciómetros de nuestro controlador, pudiendo controlar simultáneamente 8 de ellos. También podemos elegir "controlar los 8 siguientes parámetros" (y sucesivos, pues estos se organizan en "bancos" de 8 ). Esta asignación dinámica también se aplica a instrumentos y efectos propios de Live
-Asignar pads o switchs para manipular rápidamente el cambio de "bancos de 8" que se acaba de mencionar.
-Asignar pads o switchs para armado (grabación) de las pistas 1 a 8. Lo bueno de esto es que armando una pista el interface nos saltará directamente a ella y podremos, sin más, empezar a utilizar los controles asigandos dinámicamente en esa pista (sin usar el ratón en ningún momento).
- Asignáción dinámica de controles de transporte: play, stop, rec, botón loop, avance y retroceso.
- Asignación dianámica de los 16 Pads visibles del Drumrack a 16 pad de nuestro controlador (esto personalmente creo que es una chorrada, pues bastaba hacer una plantilla de notas midi en nuestro drumpad).
-------------------------------------------------------------------------------------------------------------
¿Como se hace esto? En la "fuente" está perfectamente documentado (eso sí, en inglés). Básicamente lo que hay que hacer es lo siguiente:
- Localizar el fichero "UserConfiguration.txt" (que es una plantilla o formulario).
(-Para XP: [Windows boot drive] > Documents and Settings > "tu nombre"> Datos de programa > Ableton > Live [o tu versión] > > Preferences > User Remote Scripts
-Para Vista/Windows 7: [Windows boot drive] > Users > "tu nombre"> AppData > Roaming > Ableton > Live 8.04 [o tu versión] > Preferences > User Remote Scripts
-Para Mac: [Library folder] > Preferences > Ableton > Live 8.04 [or your version] > User Remote Scripts)
- Crear una carpeta (dentro de la misma carpeta donde hayamos localizado el fichero .txt) y darle a esta nueva carpeta el nombre que queramos usar para nuestra nueva superficie de control.
- Copiar el .txt y pegarlo dentro de nuestrea nueva carpeta, sin modificar su nombre (es decir, dejarlo como "UserConfiguration.txt" )
- Abrirlo y rellenar el formulario. Se trata de unas líneas de código (python?, c?, c++?... ni idea!). Lo importante es que las líneas que empiezan por "# " es como si no existiesen, y nosotros podemos variar todas demás, sustituyendo los valores "-1" (que vienen por defecto, y que significan "desactivado" ó "valor global") por los valores que deseemos.
Paso a paso:
GlobalChannel: 1 -> Aquí he sustituido "-1" por "1". Esto indica que usaremos en canal midi 1 del puerto de nuestro controlador para usarlo como superficie de control. Vosotros podeis poner el que querais (del 1 al 16, claro).
InputName: ControllerName -> Esto sirve para mandar midi del controlador a Live, para lo cual es necesario indicar porque puerto midi en concreto se va a hacer. Para saber por que nombre debemos sustituir "ControllerName", vamos a Live y en "Opciones/Preferencias/Midi Sync" nos fijamos en el nombre del puerto MIDI del controlador que deseemos usar y lo escribimos tal cual (sustituyendo a "ControllerName", ok?). No os precupueis si lo haceis mal; luego en Live ya habrá ocasión para corregirlo manualmente.
OutputName: ControllerName-> Esto sirve para mandar midi de Live al controlador. Si tu controlador no tiene faders motorizados, leds o una misera pantallita donde te ponga los valores de un potenciometro, supongo que te servirá de bien poco y podrás dejar este campo sin modificar.
Pad1Note: -1
Pad2Note: -1
etc... -> Sirve para definir la nota midi que disparará los pad del drumrack. Habrá que sustituir por tanto ese valor "-1" (que quiere decir "desactivado") por la nota que queramos. Por ejemplo "Pad1Note: 72" quiere decir que la nota C4 (cuyo numero asociado es 72) disparará el Pad 1. Por otro lado, en nuestro controlador, debemos asignar a un pad cualquiera esa nota midi (o esto tendrá poco efecto práctico).
NOTA 1: los pads están ordenados de esta manera:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
NOTA 2: Si queremos una lista de que número de nota se asocia a cada nombre de nota, abrimos un drumrack en live, le cargarmos por ejemplo un "simpler" en una ranura, seleccionamos "mostrar/ocultar listade cadenas" y luego "I-O" (ambos en el drumrack), pulsamos en el primer campo del simpler, donde aparece el nombre de la nota, y se desplegará una lista donde veremos las equivalencias Nombre de Nota/Número de Nota.
NOTA 3: Al parecer no es válido asignar solo unos cuantos pads y dejar el resto como desactivados (algo que personalmente no he probado).
Pad1Channel: -1
Pad2Channel: -1
...etc -> Esto sirve para determinar por que canal midi se dispararán las notas de los pads anteriores. Dejarlo en "-1" es indicarle que se usará el valor de "GlobalChannel" (que era el primer campo del formulario, os acordais?), algo perfectamente válido.
Encoder1: -1
Encoder2: -1
...etc -> Aquí nos da la posibilidad de asociar 8 potenciometro de nuestro controlador a estos "encoders", que serán los encargados de auto-mapearse a nuestros efectos y sintes VST y propios Live, como antes se comento. Hay que sustituir el "-1" por el valor de "CC" (Control Change) que usaremos para cada encoder. Al igual que con los Pads, aparte debemos asignar esos CC's a potenciometros de nuestro controlador.
EncoderChannel -> Sirve para indicar el canal de los encoders (se puede dejar en -1, valor global).
EncoderMapMode: Absolute -> Si no se sabe lo que es esto, dejarlo en absolute (en el manual de Live se habla un poco de este asunto).
Bank1Button: -1 -> sirve para que los encoders salten a controlar el banco número 1 del dispositivo (VST o de Live), es decir los 8 primeros parámetros. El "Bank2Button: -1 "será para que los encoders controlen el banco 2 (parámetros del del 9 al 16)...etc. Si se quiere usar hay que sustituir el "-1" por un CC. Es de esperar que en nuestro controlador asignemos un boton o pad a dicho controlador. Y lo mejor es que no sea en modo "togle" (en algunos controladores también llamado "latch") , sino "trigger" ("unlatch").
NextBankButton: -1
PrevBankButton: -1 -> Hace lo mismo, pero pasando los banco de uno en uno. Se configura del mismo modo.
LockButton: -1 -> Esto es curioso. Sirve para bloquear los encoders a un banco y dispositivo en concreto (quizás bastante útil para directos... lo mejor es probalo). Se configura del mismo modo.
VolumeSlider1: -1
...etc
Slider1Channel: -1
...etc -> lo mismo que los encoders, pero con estos solo moveremos los faders de las 8 primeras pistas (y solo estas ).
MasterVolumeSlider: -1
MasterSliderChannel: -1 -> Lo mismo para el Master.
Send1Knob1: -1
...etc.
Send2Knob1: -1
...etc -> lo mismo que los encoders, pero aplicados a los envios 1 y 2 de las 8 primeras pistas.
TrackArmButton1: -1
...etc -> Sirve para armar las pistas. Hay que asociarlas a un botón o pad (ya se sabe como). Aquí tampoco aconsejan el modo "togle" (cuestión de gustos y de lo que se quiera).
VolumeMapMode: Absolute
SendsMapMode: Absolute -> Lo mismo de antes. Si no se sabe lo que es dejarlo tal cual.
StopButton: -1
PlayButton: -1
RecButton: -1
LoopButton: -1
RwdButton: -1
FfwdButton: -1 -> Asigna CC's a botones o pads mejor en trig mode.
------------------------------------------------------------------------------------
Luego solo hay que ir a "Opciones/Preferencias/Midi Sync" y seleccionar nuestra nueva superficie de control. Y en su caso, reconfigurar la entrada (y la salida, si se usa).
----------------------------------------------------------------------
Un par de consideraciones.
1 -Si tenemos dos o más puertos MIDI en nuestro controlador (algo común), lo mejor sería usar el puerto "secundario" ("Puerto 2", ó "B") para estos fines (por comodidad lo digo).
2 -Lo que aquí se comenta no tiene NADA que ver con el script que hizo guillermoruiz para el Novation Nocturn (un currele seguro que muy serio), sino una aplicación que Live pone a nuestra disposición y que no es dificil de usar (aunque más limitada, sin duda).
Para ver lo de guillermo:
https://www.hispasonic.com/foros/script-para-controlar-live-8-desde-nocturn/277312
Un saludo!