Zona de discusión para los usuarios de habla hispana.
8 posts
Page 1 of 1
Copio de un post que yo mismo escribí en Hispasonic
Buenas a todos, hace tiempo que me decidí a aprovechar al máximo las capacidades de control de mi BCR y creo haber llegado al punto en que no veo por donde seguir (ahora toca sacar provecho del trabajo...).
Lo comento por aquí por si alguien se atreve a enzarzarse con la pelea y le apetece mejorar mi esquema, o simplemente por el hecho de que otros se puedan aprovechar de mi trabajo, dado que no ha sido poco hasta ahora. También comentaré un poco la tarea de asignar TouchOSC a las funciones del mezclador, puesto que tras mi nueva tablet de 10" (30€ usada, muy lenta para internet, totalmente operativa para control)

Para empezar, mi manera de trabajar en Studio One es casi siempre usando VSTi's (sea para controlar plugins o hardware MIDI mediante Ctrlr http://www.Ctrlr.org) y pistas de audio con inserciones de plug-ins. Creo que lo estándard.
También suele ser recurrente que use instrumentos VA, y me hace especial ilusión poder controlar esos instrumentos desde la BCR.
Así que por un lado tengo ya todo un esquema de control de síntesis en la BCR (lo cambié últimamente) de manera que todos los plugins y todo el hardware lo controlo con el mismo interfaz.

A partir de ahí, que es la parte fácil, me encuentro con el problema de que no puedo asignar fácilmente macros o tener una asignación fija de los faders del mezclador con la misma comodidad con que asigno parámetros de un plug-in una vez y me olvido... Studio One no "preasigna" los faders a nuestro controlador MIDI, hay que hacerlo manualmente y hay que hacerlo en cada tema. Se pueden crear plantillas, pero existe la posibilidad de que éstos ya esten preasignados... como?
Creando una "device".

Y aquí empieza la parte oscura.
Primero hay que localizar el directorio de "devices" de Studio One.
En mi caso:
C:\Audio\Studio One\devices

Ahí sale la lista de "fabricantes".

Para un fabricante XXX tendremos una carpeta XXX
C:\Audio\Studio One\devices\XXX

En mi caso, ya existe la Behringer BCR2000, pero el controlador deja bastante que desear, sólo permite usar 32 encoders y 28 botones, cuando podemos usar 56 encoders y 60 botones... comorrr??? Bueno, la cosa es sacar provecho a los 4 bancos de control, así que hay que modificar la "device".

En el caso de TouchOSC, hay que crear una carpeta y una subcarpeta en ella.
Carpeta: Fabricante
Subcarpeta: Modelo

Por ejemplo, démosle al controlador que nos inventaremos el nombre TouchME (éste y la marca, TouchOSC, son de libre elección...)
C:\Audio\Studio One\devices\TouchOSC\TouchME

Hasta aquí, fácil... veamos, qué hay en cada carpeta? Pues entre 3 y 5 archivos, normalmente...
Todos los podremos editar en nuestro Notepad o Write... evitad Office u otras suites. También pueden ser útiles los editores de código, sobretodo para el XML.

TouchME.device
TouchME.png
TouchME.txt
TouchME.surface.xml
XXXXX.js

TouchME.device
Contiene información respecto a qué archivos contienen la información. Un índice...
<?xml version="1.0" encoding="UTF-8"?>
<DeviceDefinition
classID="{4BD69047-D52D-4F50-8761-03424504055C}"
category="Keyboard"
vendor="TouchOSC"
name="TouchME"
surfacePlacementSize="16"
nativeCode="ControlSurfaceDevice"
surfaceFile="TouchME.surface.xml"
/>
El valor ClassID hay que inventárselo, y no tener la mala suerte de que haya otro dispositivo con el mismo número.
En Presonus no he encontrado directrices para ajustar éste valor, pero modificando los últimos 4 valores ("055C") suele funcionar.
Categoría: Creo que no tiene incidencia en el comportamiento, por si acaso, no tocar.
Vendor: fabricante
Name: Modelo
Native code: no editar.
Surfacefile: nombre del archivo donde va la programación/listado XML. Si no está escrito correctamente, no encontrará nada...

TouchME.png
Una imagen para mostrar, tomad la de base como referencia para medidas y hacedla a placer. Es un PNG con transparencia.

TouchME.txt
Una descripción o mensaje que queráis leer sobre cómo instalar, qué patron de referencia hay que tomar para controlar, poner vuestro teléfono, mote, alias... etc..

TouchME.surface.XML
El cáliz de la sabiduría. Aquí se concentran TODOS los valores, funciones y programación.
Supongo que hay funciones avanzadas, pero Presonus no ha publicado ningun manual al respecto, así que hay que buscarse las garrofas y analizar los archivos ya existentes.
Aquí va un ejemplo muy simplificado

<?xml version="1.0" encoding="UTF-8"?>
<ControlSurface>
<Controls>
<Control name="controlb0001" title="Control1" type="knob" options="receive transmit nofeedback public">
<MidiMessage status="#B0" channel="0" address="#1"/>
</Control>

<Control name="Level[0]" title="Level[0]" type="knob" options="receive transmit nofeedback public">
<MidiMessage status="#B0" channel="1" address="#0"/>
</Control>
</Controls>

<Templates>
<Template name="ChannelStrip">
</Template>
</Templates>

<Mappings>
<Global>
</Global>

<!-- MIXER MAPPING -->
<DeviceMapping device="MixerConsole">
<PlacementBank target="RemoteBank" pagesize="16">
<!-- The Channel Strips -->
<foreach variable="$channel" count="16">
<Strip>
<Value control="Level[$channel]" param="volume"/>
<Value control="Pan[$channel]" param="pan"/>
<Value control="Solo[$channel]" param="solo"/>
<Value control="Mute[$channel]" param="mute"/>
<Value control="Rec[$channel]" param="recordArmed"/>
</Strip>
</foreach>
</PlacementBank>
</DeviceMapping>

<!-- TRANSPORT MAPPING -->
<DeviceMapping device="TransportPanel">

<Toggle control="Control128" param="start"/>
<Value control="playLED" param="start"/>
</Variant>
</DeviceMapping>

</Mappings>
</ControlSurface>


XXXX.js
Desde los comandos del XML se pueden hacer llamadas a funciones más complejas integradas en archivos java auxiliares, pero ahí no he llegado, porque las ventajas son mayormente para dispositivos que integran funciones de control de displays como el Faderport o la MackieControl, para la BCR, ésto no tiene demasiado uso ya que lo hace casi todo por CC's (aunque si alguien valiente se atreve, soporta sysex...)
User avatar
by wikter on Sun Aug 16, 2015 1:29 am
Paso 2... si nos centramos en la parte <controls> del XML veremos que en cualquier archivo que abramos hay diferentes maneras de escribir los valores y no todos son imprescindibles...
Veamos uno básico:


<Control name="Level[0]" title="Level[0]" type="knob" options="receive transmit nofeedback public">
<MidiMessage status="#B0" channel="1" address="#0"/>
</Control>

Bloque 1
<Control name="Level[0]" title="Level[0]" type="knob" options="receive transmit nofeedback public">
<Control - inicio de definición de un control.
name="Level[0]" - Para uso interno. Es importante el valor entre corchetes para posterior asignación de canales
title="Level[0]" - El valor que veremos en pantalla. Puede ser title="EG1>Cutoff" si ya sabemos que va a ir asignado a ese parámetro. Por defecto (con mi BCR así está ajustado...)
type="knob" - El aspecto con que será representado en la visualización del controlador
options="receive transmit nofeedback public" - No hay demasiada información al respecto, pero está claro que receive y transmit son la opciones para enviar y recibir los valores, tal cual está servirá para la mayoría de tareas.

Bloque 2
<MidiMessage status="#B0" channel="1" address="#0"/>

<MidiMessage - inicio...
status="#B0" - En éste caso nos encontramos con la representación del parámetro de control en forma hexadecimal. Ojo. Puede darse de diferentes maneras, mediante texto, hexagesimal. Veamos:
<MidiMessage status="Controller" address="3"/>
La opción más fácil si sabemos algo de MIDI, será poner el mensaje en Hex y los controles en decimal para no tener que estar pensando en hexadecimal.
channel="1" - En algunos casos encontraremos discriminación por canal, supongo que si no se especifica, perdemos la opción de usar los canales a modo diferenciante. Es decir, nos quedamos con 6% de posibilidades. Vale la pena especificarlo, sobretodo para TouchOSC.
address="#0" . El número de parámetro, si usamos CC's (#90) no es más que el número de controlador, por ejemplo, el típico 74 para el cutoff... o era el 71? Da igual, podréis asignar el que os vaya mejor en función de vuestra distribución de control.

Bloque 3
</Control> - Final de descriptor de control. Por lo visto, no hay nada que editar aquí...

Cuando nos pongamos manos a la obra con los controles es importante ser ordenado y esquemático, incluso ayudarse de una hoja de excel para generar los valores. Usar las tabulaciones para ver claramente cada valor asignado a cada parámetro también es de gran ayuda. Si tenemos una pantalla ancha, usar un editor que no nos ajuste el texto a la hoja también puede ser de gran ayuda.

<Control name="Level[0]" title="Cutoff" type="knob" options="receive transmit nofeedback public"><MidiMessage status="#B0" channel="1" address="#0"/></Control>
<Control name="Level[1]" title="Resonance" type="knob" options="receive transmit nofeedback public"><MidiMessage status="#B0" channel="1" address="#1"/></Control>
<Control name="Level[2]" title="EGMod" type="knob" options="receive transmit nofeedback public"><MidiMessage status="#B0" channel="1" address="#2"/></Control>

También hay que recordar que el primer canal MIDI es el 0, no el 1... y que los valores empiezan por el 000. Hasta aquí, los controles...
User avatar
by wikter on Sun Aug 16, 2015 1:32 am
Paso 3: Mixer Mapping!
Aunque Studio One permite sacar provecho de botones para asignar a funciones de transporte, comandos de teclado y demás, (uno muy útil sería el LEARN / Alt+M) ahora lo importante es controlar los parámetros del mezclador, que como todos sabemos serán variables en funcion de las pistas que tenga cada arreglo. Así que lo práctico sería que el propio DAW asignase esos controles a los canales y no tener que hacerlo nosotros uno a uno. Ventajas? Obvias. Desventajas? Que si cambiamos la posición de un instrumento, pista de audio o canal de efecto/bus se nos desmontará el chiringuito momentáneamente, así que nuevamente hay que ser ordenados.

Veamos la verborrea empleada:
<!-- MIXER MAPPING -->
<DeviceMapping device="MixerConsole">
<PlacementBank target="RemoteBank" pagesize="16">
<!-- The Channel Strips -->
<foreach variable="$channel" count="16">
<Strip>
<Value control="Level[$channel]" param="volume"/>
<Value control="Pan[$channel]" param="pan"/>
<Value control="Solo[$channel]" param="solo"/>
<Value control="Mute[$channel]" param="mute"/>
<Value control="Rec[$channel]" param="recordArmed"/>
</Strip>
</foreach>
</PlacementBank>
</DeviceMapping>

Vamos a ver los importantes...
<!-- MIXER MAPPING --> Rótulo... entre <-- --> podréis poner lo que os venga en gusto y os sea útil para posteriores ediciones.

<PlacementBank target="RemoteBank" pagesize="16"> - Éste parámetro nos permitirá "amontonar" dispositivos, de manera que si añadimos dispositivos, éstos controlaran los canales siguientes: 1-16, 17-32, 33-48... Aunque ésto sólo será útil en estudios donde tienen el espacio necesario para amontonar éstos dispositivos, ya que a día de hoy hacerse con un par de tablets no es nada caro.

<foreach variable="$channel" count="16"> junto con <Strip> es la función que autoasigna nuestro interfaz a los valores en pantalla.
Requiere de la asignación previa del CC a un name="Control[X]" como ya se ha comentado en la asignación de controles.
Nuevamente, el primer fader del mezclador es el 0, no el 1...

<Value control="Level[$channel]" param="volume"/> - El control asignado al parámetro del mezclador, que son, según he recopilado:
volume
pan
solo
mute
recordArmed

Hasta el momento no he conseguido encontrar el parámetro para monitorizar, aunque hay más como "trackselect" que no tengo a mano. Es cuestión de tiempo que Presonus publique algo en condiciones pero, si habeis llegado hasta aquí, sereis capaces de editar o crear el archivo necesario para controlar desde vuestro disposivo.

De hecho, desde la BCR tengo la botonera lateral asignada a:
1- mostrar plugin
2- mostrar instrumento
3- anterior plugin/instrumento
4- siguiente plugin/instrumento

Y actualmente uso la BCR para editar plugins/instrumentos y TouchOSC para controlar solos, mutes, volúmenes. Me faltaría averiguar el tema de los auxiliares, monitorización de canal y un sinfín de funciones, pero no hay tiempo para todo.
También os diré que TODAS las asignaciones quedan grabadas al cerrar Studio One. Así que siempre que hagais una asignación de controles cerrad Studio One, porque aunque se cuelga muy poco, si no se cierra, se pierde todo lo asignado en la sesión.
Importante saber que esos datos de asignaciones se mantienen si eliminamos el dispositivo del menú de Studio One.
Importante también que ess datos estan en la carpeta de usuario... generalmente en

C:\Users\USUARIO\AppData\Roaming\PreSonus\Studio One 2\Surface Data

Y nos puede ser muy útil si por ejemplo os encontráis con un plugin rebelde como EXS24, que es casi imposible automatizar porque los parámetros mostrados no coinciden con los parámetros editados.
También sería muy útil si todos usásemos los mismos archivos de control... pero eso sería un proyecto ya muy complicado.
User avatar
by wikter on Sun Aug 16, 2015 1:42 am
Tendría que mirar de extraer la configuración de mi BCR porque por ejemplo, al tener asignados los knobs de la primera fila a valores que en un sintetizador me interesa resetear a valores diferentes a 0/127 como son el volumen (100) y el tono, desafinación o PW (64) es espcialmente útil a quien quiera sacar provecho de todo ésto.
Lo explico por encima, porque no es demasiado difícil de entender:

La primera fila de enconders tiene cuatro bancos.
Les he asignado CC 1-8, 9-16, 17-24, 25-32

Cada botón de cada encoder de la primera fila (son "puchcoders" se puedeen girar y presionar) lleva CC diferentes a los encoders.
Les he asignado CC 33-40, 41-48, 49-56, 57-64

Botones normales, 2 filas de 8
Les he asignado CC65-72 y 73-80 respectivamente

Tres filas de encoders
CC: 81-88, 89-96, 97-104

Cuatro botones
CC: 105 y 106 a la fila superior (para mostrar/ocultar editor sintetizador y plugins)
CC: 107 y 108 la inferior (para mostrar anterior/siguiente plugin/sinte)

Luego, para aprovechar que Studio One permite ser controlado con variaos dispositivos a la vez, he reproducido el entorno de la BCR en TouchOSC (así puedo copiar las asignaciones que hago en el BCR al archivo de asignaciones de TouchOSC, sin tener que reasignar con cada plugin) y he añadido un entorno de mezcla adicional en que todos los controles son emitidos por el canal 2, de manera que no interfiera con la edición de plugins y sintetizador.
Creo que va siendo hora de colgar un par de fotos...

Image
Image

Attachments
BCR2K+TouchOSC Studio One.zip
(71.27 KiB) Downloaded 701 times
User avatar
by wikter on Sun Aug 16, 2015 1:49 am
Aquí estan los archivos:
El Sysex de la BCR, incorporable a vuestra propia BCR con el editor que behringer proporciona (mediante Cargar Sysex)

download/file.php?id=3269

El archivo de TouchOSC, que habría que cargarlo en TouchOSC o MyOSC (en éste último requerirá modificaciones y no funcionará igual).

Los archivos de asignaciones de StudioONE y las Devices correspondientes a la BCR (BCR2K) y Touch by Wikter... o algo así.

Suerte!
by -Luis- on Sun Aug 16, 2015 11:29 am
Hola wikter primero que nada bienvenido,mil gracias por crear esta excelente guía, estoy seguro que sera de mucha ayuda para todos aquellos que decidan editar sus controladores :thumbup:
User avatar
by wikter on Mon Aug 17, 2015 12:26 am
Muy buenas! y gracias.
Por cierto, que no haya encontrado documentación al respecto no quiere decir que no la haya.
Si alguien sabe de alguna fuente, página o descarga, sea de Presonus o externa, sería de gran utilidad que la compartiese...
User avatar
by wikter on Sat Aug 29, 2015 3:15 am
Estamos dándole vueltas a una APC40 de Akai. tenemos algun que otro problemilla, pero es totlamente testeable y mejora cualquier dispositivo creado por un usuario.

Akai APC40 MkI

8 posts
Page 1 of 1

Who is online

Users browsing this forum: No registered users and 4 guests