Sintetizadores

SysEx (III): módulos multitímbricos (1)

Acceso a la serie completa de 5 tutoriales dedicados a MIDI SysEx.

A la hora de entender su especificación SysEx, un sinte/módulo multitímbrico ofrece nuevos retos que ayudamos a superar en este artículo y el próximo. Avanzamos así en el entendimiento de las especificaciones SysEx de los equipos realmente complejos a los que nos enfrentamos hoy en día.

En inglés ‘complex’ significa compuesto (reunión de varios elementos, conjunto de dos o más cosas). En español contamos adicionalmente con una segunda acepción: ‘complicado’. Quizá por ello tendemos a creer que todo lo complejo es difícil. No necesariamente tiene que ser así. La especificación sysex de un sistema actual suele extenderse en varias decenas de páginas. Desmitificar la lectura de esas páginas, hacerla accesible, es lo que vamos a pretender en esta entrega y la siguiente (con la que cerraremos al menos temporalmente el ciclo).

Objetivo

En la anterior entrega revisábamos la especificación SysEx de un Roland MKS-50. Era un sintetizador ‘elemental’ en el que el único efecto disponible era un chorus (y sólo con ajuste on/off) y la estructura del motor de síntesis era igualmente básica (DCO, HPF, LPF, VCA, ENV, LFO) como quedaba reflejado en que con sólo 36 parámetros quedaba descrito plenamente un ‘Tone’ (la descripción de un sonido en ese sinte).
La llegada en los 80 de la síntesis digital al mercado masivo (ya no sólo en prototipos de investigación y centros de composición) supuso en esos años una escalada de complejidad (en el sentido no de ‘dificultad’ sino de ‘hecho de muchas partes’) uno de cuyos ejemplos es la aparición de módulos GM (y posteriores GS y XG), o cualquier otro tipo de sintetizador multitímbrico actual.

Estudiaremos la especificación SysEx de un sistema multitímbrico, en el convencimiento de que así nos preparamos para entender mejor los SysEx de cualquier sistema actual.
Tal como decíamos en la parte segunda de esta serie, necesitaremos conocer:

  • Cómo es la arquitectura del sistema (motor de síntesis, efectos: sus parámetros, etc.)
  • Cómo están dispuestos los parámetros en el mapa de memoria
  • Uso de sysex para acceder y actuar sobre los parámetros en el mapa de memoria

Caso de estudio: Roland SonicCell

Ya en la primera entrega os lo mostré en funcionamiento y lo usamos para algún ejemplo en vídeo. El SonicCell de Roland sorprende por todo lo que lleva en su pequeño tamaño y peso, como sucede con tantos otros sistemas actuales de los distintos fabricantes. Será su especificación sysex la que estudiemos como ejemplo en esta entrega (si queréis la podéis descargar en http://www.roland.com/support/article/?q=manuals&p=SONIC%20CELL&id=1810906).

Lo he escogido porque es habitual que Roland detalle extraordinariamente las especificaciones MIDI de sus equipos, y eso ayuda a poderlas entender. Además, dado que Roland fue el origen de la especificaciones General MIDI y GS (incluyendo la especificación Sysex de GM y GS) muchos de los sistemas GM y en general multitímbricos han adoptado soluciones muy semejantes a la hora de organizar la gestión de los sonidos, efectos, y demás elementos y su control vía SysEx.
Aún siendo una documentación técnica, este manual incluye suficientes explicaciones e incluso ejemplos que hacen abordable la lectura (si se le dedica el esfuerzo oportuno).

Arquitectura del SonicCell

Os resumo algunas características del SonicCell (no todas porque esto no es un anuncio) que iremos luego cotejando y contrastando desde la perspectiva de su acceso a través de SysEx. La arquitectura es la ya clásica de Roland (evolución de la que ya presentaba en su día el D50 y que se ha mejorado sucesivamente hasta sus Fantoms).

Es a la vez un potente sinte multitímbrico con una amplia dotación de efectos, un interfaz E/S de audio hacia USB, un reproductor de ficheros MIDI y Audio desde lápiz USB, y puede aplicar también efectos sobre una entrada de audio externa. No está mal para su tamaño tipo folio y su peso de poco más de un kilo.

Tone
Su polifonía como sinte es de 128 voces y cuenta para cada una de ellas con una arquitectura de síntesis de tipo ‘clásico’ que se denomina ‘Tone’  (el mismo nombre que ya usaba Roland en tiempos del MKS50, pero ahora con más riqueza de posibilidades de ajuste).

Patch
Pero los sonidos se forman realmente reuniendo hasta 4 Tones, constituyendo así un ‘Patch’ (un sonido básico, un ‘programa’ de los que podríamos reclamar con mensajes de cambios de programa). La combinación de los 4 Tones no es sólo una mezcla, sino que incluye posibilidades de reubicar en serie/paralelo sus filtros, modulación en anillo, aplicación de booster (una saturación) en diferentes puntos de la arquitectura de voz,…
Un patch también define (contiene los ajustes) para la ejecución que incluyen cosas como nivel, transposición, microafinación de la escala,  programación de los efectos, respuesta a MIDI, fuentes y destinos de control (la clásica matriz de modulación), etc.

Performance
Estos patches pueden usarse ‘tal cual’ en el modo Patch (cuando queremos tocar un sonido individual -llamémoslo modo ‘monotímbrico’, pese a que combina esos 4 Tones-) o bien podemos usar el modo Performance, que es un modo multitímbrico en el que pueden combinarse hasta 16 patches.

Extras
El SonicCell contiene también un reproductor de MIDI files, WAVs y MP3 desde lápiz USB, así como un interfaz E/S Audio USB que admite señales de línea, instrumento y micro y para el que existe una unidad de efecto dedicada. Hay también un efecto ‘mastering’ en la salida audio (un compresor multibanda programable). Con todo ello la arquitectura más o menos completa sería la de figura.

Este gráfico intenta recrear lo que podría ser la estructura del ‘motor de síntesis’, es decir, de la parte que realmente genera y/o procesa audio y MIDI.

Pero falta otra parte por detallar: cómo se guarda toda la programación. La manera en la que un sintetizador es capaz de guardar la definición de múltiples sonidos para poder contener una ‘biblioteca’ de programas disponibles para ser reclamados casi instantáneamente es conservar en memoria no volátil el ajuste de los parámetros. Y es esa la parte que nosotros tocamos al crear y modificar sonidos (aunque está íntimamente relacionada con el motor de síntesis).

Mapa de memoria del SonicCell

En un MiniMoog los parámetros son los que tenemos disponibles para su ajuste mediante potenciómetros y controles (y si es de los originales de los 70s hay que escribir un croquis de los controles en papel para conservar ‘memoria’ de un sonido).
En el MKS50 que usamos en la parte II de la serie, vimos los 36 parámetros  que constituían un Tone y los localizamos en las especificaciones sysex: dentro del mensaje un nº de parámetro (entre 0 y 35, que escribíamos en hexadecimal como 00h a 23h) era suficiente para aclarar a qué parámetro nos dirigíamos.
En el SonicCell, de idéntica manera, tenemos todos los parámetros accesibles, pero ahora pasan a ser cientos para un único sonido y es necesario estructurarlos, no podemos concebirlos en una lista única.

Estos parámetros (o cualquier otro) son editables en el panel frontal a base de navegar por menús. Alternativamente podemos aprovechar la comodidad de un software de edición que los muestre en pantalla de un ordenador -como vimos en vídeo en la parte I-. Pero también están esperándonos para ajustarlos vía sysex, como aprenderemos en lo que sigue.

Por ejemplo el filtro de un Tone tiene estos parámetros (no muestro los 15 adicionales que establecen la envolvente del filtro y su respuesta a la velocidad):

TVF Filter Type (varios paso bajo, paso alto, y otros)
TVF Cutoff Frequency
TVF Cutoff Keyfollow
TVF Cutoff Velocity Curve
TVF Cutoff Velocity Sens
TVF Resonance
TVF Resonance Velocity Sens


Esos 7+15 parámetros son sólo el filtro de un ‘Tone’. Pensad que hay 4 ‘Tones’ por Patch, pensad que además de los módulos de sintetizador están las unidades de efecto (y tal como vimos en la parte I, un Leslie en el SonicCell tiene, él solo, decenas de parámetros)… Marea un poco ¿no? Al completo, un simple Tone cuenta con aprox. 200 parámetros él solo, y un Patch ronda el millar.

Si pusiéramos en orden, uno detrás de otro, los parámetros de cada una de las performances, patches, etc. que son editables por el usuario, estaríamos definiendo el mapa de memoria del SonicCell. No hace falta que lo hagamos nosotros : es una de las partes que detalla en manual.

Desde una perspectiva global (el qué, pero no todavía el cómo), esta podría ser una representación de la memoria que tiene un SonicCell (leed las leyendas del gráfico recorriéndolo de izquierda a derecha y de arriba a abajo, como cualquier texto). Pensad que cuando hablo de un Patch o de una Performance, ahora estoy hablando de unos cuantos cientos o miles de bytes (que puedan albergar el valor de parámetros como los que hemos visto del TVF).
 

 

En la figura destaco:

  • La existencia de memoria de presets, que como tal no es editable, y por tanto no nos preocupa aquí.
  • La existencia de una parte de la memoria dedicada a datos del ‘sistema’ que se refiere a parámetros muy globales.
  • La existencia de espacio en memoria modificable por el usuario (‘user’) para poder guardar sus propias definiciones de nuevos sonidos, performances, etc.
  • Y, muy especialmente, la presencia de una zona de memoria que he llamado ‘de trabajo’ o ‘en uso’. Es en ella donde el motor de síntesis y audio va a leer para saber qué queremos que haga en cada momento.

Es en ella donde cada vez que invocamos un Patch o Performance (sea ‘preset’ o ‘user’) se copian los valores de los parámetros de ese Patch o Performance para que lo use el sintetizador interno. Y es por tanto también ahí donde deberemos apuntar nuestros mensajes SysEx para poder tocar el sonido que se está produciendo ‘en vivo’ sin afectar a los sonidos memorizados. Tendremos que hacer que actúen sobre ese espacio reflejado en verde en la figura.

Con estas pistas, debería resultar más sencillo entender el mapa de memoria del SonicCell, que aparece detallado en varias páginas del manual. Se ofrece a lo largo de varias tablas. La primera es una especie de índice, que establece las grandes ‘secciones’ dentro de la memoria. Posteriormente cada sección se detalla en nuevas tablas y subtablas.
 

El ‘índice’ de la memoria del SonicCell

Contrastad esta tabla ‘en bruto’ que ofrece el manual (al comienzo del apartado ‘Parameter Address Map’) con la gráfica anterior que os ofrecía yo. Veréis cómo se corresponden perfectamente (salvo porque aquí no aparecen los contenidos ‘preset’).

 

Cada elemento de la tabla viene acompañado de un valor numérico que es la dirección del mapa de memoria en donde arrancan los parámetros de ese elemento (start address). En el caso del SonicCell las direcciones se componen de 4 bytes.

Aparecen dos secciones (Setup y System) que son para parámetros muy globales del SonicCell. Arrancan respectivamente en las direcciones 01h 00h 00h 00h y 02h 00h 00h 00h. Uno de los parámetros que existe (por ejemplo) es el que permite decidir si el SonicCell estará funcionando en modo ‘monotímbrico’ (modo Patch) o en modo ‘multitímbrico’ (modo Performance), luego veremos otros.

Aparece una sección de memoria ‘temporal’ (la que yo denominaba ‘de trabajo’ o ‘en uso’ y que coloreaba en verde) dentro de la que podemos identificar a su vez:

  • A partir de 10h 00h 00h 00h los parámetros que definen la Performance que se aplica cuando se usa el modo multitímbrico.
  • El espacio reservado para albergar las definiciones de los 16 Patches (o Rhythm Sets) que se usan en la Performance
  • En la dirección 1Fh 00h 00h 00h están los parámetros que definen el Patch que se usa cuando se opta por el modo monotímbrico en vez del de Performance

Y a continuación aparece el espacio para las 64 Performances, los 256 Patches y los 32 Rhythm Sets programables por el usuario, que serían los que interesarían a quien estuviera programando una aplicación para trasferir o editar bancos de sonidos, pero no en nuestro caso.
 

Tablas de detalle

Ya sabemos dónde arrancan los ‘grandes bloques’ pero aún tenemos que andar un poco de camino para llegar a algún parámetro final. Vamos a empezar con lo fácil: miremos por ejemplo la tabla que detalla los contenidos de la sección ‘System’ y que es esta:


Vemos tres subsecciones: una que contiene parámetros ‘globales’ o comunes del SonicCell, otra dedicada a ajustar un procesador de mástering que contiene el SonicCell (un compresor multibanda que puede activarse y ajustarse a voluntad), y finalmente una tercera subsección en la que residen los parámetros que definen el tratamiento de la entrada de audio externo que tiene el SonicCell.

Pero llama la atención una cosa: en lugar de indicar los 4 bytes de la dirección sólo se indican tres (los tres últimos). Es así porque lo que están especificando el el ‘offset’ de cada subsección respecto al arranque de la sección (desplazamiento o distancia respecto a la dirección de arranque de toda la sección System). Combinarlos es fácil.

Dado que la sección System arrancaba en 02 00 00 00, podemos obtener las direcciones completas en las que arrancan estas tres subsecciones son:

     02 00 00 00    para System Common
     02 00 02 00    para System Mastering
     02 00 03 00    para System External Input

Si yo fuera a usar la entrada ‘external’ para un micro o una guitarra, me gustaría tener un control fácil de su volumen, de la cantidad de reverb, etc. Imposible en el panel frontal (salvo con un larguísimo toqueteo de botones que lo hace inviable en directo). SysEx al rescate: mirad los parámetros que hay en la subsección ‘System External Input’ (sólo muestro los primeros):

 

Tenéis el control del envío de señal hacia LR, hacia el chorus y reverb general, la posibilidad de dirigir la señal hacia alguna de las unidades de efecto (por ejemplo si quisiéramos aplicar un emulador de ampli -disponible en el SonicCell- a la guitarra), podemos también elegir uno entre seis tipos de efecto de inserción que pueden situarse en la entrada de audio externa (puerta, compresor, etc.), podemos incluso editar uno a uno (no lo he reflejado) los 20 parámetros de ese efecto insertado… y aún dejo sin mencionar otras cosas.

Lo que tenemos que aprender es a obtener la dirección en la que está el parámetro deseado.

Pero ya hemos visto cómo combinar la dirección base y los sucesivos 'offsets', así que estos serían unos ejemplo:

  • La dirección para controlar el nivel de la señal ‘externa’ en la salida LR sería 02 00 03 00
  • Para controlar su envío a chorus 02 00 03 01, el envío a reverb en 02 00 03 02, etc.

Y el resto de la película lo conocéis: podré usar los pots y faders de mi controlador físico para manejar con comodidad estos u otros parámetros (enseguida vemos cómo es el mensaje).

Normalmente muchos parámetros usan para su valor sólo el rango 0 a 127 (o el equivalente -64 a 63, cuando se trata de especificar un valor relativo). También es habitual usar una parte de ese recorrido (en la tabla anterior para escoger ‘External Output MFX Select’, que sólo puede valer MFX1, MFX2, MFX3, bastan los valores 0, 1 y 2 respectivamente)...
En definitiva, el mapa de memoria (como ya vimos en la parte II sobre el caso simple de un MKS50) nos dice dónde encontraremos cada parámetro y qué rango de valores admite.

Y con eso podemos pensar ya en crear los mensajes oportunos.

Estructura de un mensaje SysEx para el SonicCell

La amplia sección dedicada en los apéndices del manual del SonicCell a la implementación MIDI es muy rica en detalles (casi un curso de MIDI en sí misma).
Al llegar a la parte de sistema exclusivo es igualmente generoso en explicaciones. Aparecen primero los mensajes Universal SysEx (como los que comentamos en la parte I) y luego los mensajes realmente ‘exclusivos’ del Roland SonicCell.

Con dispositivos tan complejos, necesariamente la sección sobre SysEx en los manuales es larga. El formato de los mensajes queda descrito en poco espacio, lo que más abulta es el detalle del mapa de memoria.
En esencia se trata de crear un mensaje SysEx que identifique al fabricante y modelo, la dirección del mapa de memoria sobre la que queremos actuar y finalmente el valor que queremos depositar en esa dirección de memoria.

Vamos por tanto con el mensaje sysex que permite retocar un parámetro del SonicCell y que podéis localizar en el manual:


La estructura que muestra este mensaje es la habitual en SysEx ‘moderno’ (y que es una evolución de lo que en la parte II vimos que usaban sintes de los primeros ochenta). Lo desgranamos (casi copiando traducido lo que cuenta el propio manual) y a continuación lo comentamos:

F0    41    dev     00  00  25    12     aa  bb  cc  dd     ee…ff    sum     F7


F0H  Inicio de mensaje SysEx

 

41H  ID de fabricante (Roland)  (como ya vimos en la parte I hay códigos para distinguir los mensajes de cada fabricante y 41h es el código de Roland)

 

dev  Nº de dispositivo (dev: puede valer entre 00H y 1FH o bien 7FH)
Muchos fabricantes (por no decir todos) permiten usar un número de dispositivo que viene a ser algo así como lo que supone el número de canal en otros mensajes MIDI. SLos mensajes que lleven un cierto nº de dispositivo (device) sólo serán oídos por aquellos dispositivos que hayan sido configurados con ese nº de dispositivo (al igual que configuramos un número de canal MIDI, los sistemas MIDI duelen tener un lugar donde se configura su nº de ‘device’).
Si recordáis, en la parte II, vimos que el MKS50 usaba un byte 0n (que valía entre 00h y 0Fh) para este mismo propósito. En el SonicCell el mensaje admite 00h hasta 1Fh (y permitiría distinguir por tanto hasta 32 SonicCells diferentes), más un valor comodín (el 7Fh) que se usa para que lo oiga cualquier SonicCell conectado.

 

00H  Los tres bytes siguientes identifican el modelo de equipo
00H Para el SonicCell tienen que valer 00h 00h 25h
25H  Otros modelos de Roland tendrán otros valores (lógicamente)

 

12H  Tras el nº de modelo, el siguiente byte en los SysEx Roland describe el tipo de mensaje, y el manual nos informa de que es 12h el valor para representar el comando DT1: Data set 1, que es el necesario para ajustar parámetros)

 

aaH Los cuatro bytes aa bb cc dd componen una dirección dentro del mapa de memoria (del tipo que hemos tratado)
bbH
ccH
ddH 

 

eeH  Datos: el valor o valores que deben llevarse a esa dirección. Pueden enviarse varios en un único mensaje si corresponden a direcciones consecutivas a partir de la dirección aa bb cc dd
: :
ffH
 

sum  Checksum: se trata de un valor que acompaña a los datos como comprobación (para detectar posible errores ál estilo de la paridad y los checksum habituales en comunicaciones digitales-). No todos los fabricantes hacen uso de este tipo de comprobaciones (muchos envían los mensajes SysEx sin mayor protección, pero en el caso de Roland, de algunos otros fabricantes y del estándar GM, sí aparece. La explicación detallada la tenéis (por ejemplo) en el manual del SonicCell. A nuestros efectos lo que nos importa es saber que si existe este valor en el formato SysEx de nuestro equipo, tendremos que usar controladores que sepan calcular ese código de comprobación. Nuevamente los Remote y los A800Pro, así como TB MIDI Stuff soportan diferentes variantes de códigos de comprobación que se han usado por los fabricantes (y de nuevo en este terreno es más ‘excelente’ una solución software como TB MIDI Stuff, aunque los controladores hardware contemplan las opciones más habituales).

 

F7H  End Of Exclusive (EOX, final del SysEx)

 

Ejemplos de mensajes sysex para el SonicCell

Nos queda pues cerrar el círculo de lo aprendido hoy. Vaya pues la continuación de los ejemplos (aquí ‘Valor’ representa el valor del potenciómetro o fader entre 0 y 127, CSum es el resultado del cálculo del checksum que sería realizado por el controlador):

Control del nivel de la señal ‘externa’ hacia la salida LR (dirección 02 00 03 00):

  • F0    41    7F     00  00  25    12     02   00   03   00    Valor    CSum     F7

Envío de señal ‘externa’ a chorus (dirección 02 00 03 01)

  • F0    41    7F     00  00  25    12     02   00   03   01    Valor    CSum     F7

Envío de señal ‘externa’ a reverb (dirección 02 00 03 02)

  • F0    41    7F     00  00  25    12     02   00   03   02    Valor    CSum     F7

 

Ya es bastante por hoy

Realmente el asunto complejo de hoy no es sólo 'compuesto', también es un poco 'complicado'. Pero pensad que es el precio a pagar por mundos que se abren. Poder usar el propio SonicCell para unir un micro o una guitarra y procesarla, facilitando el control de la mezcla y el procesamiento desde pots y faders externos como hemos hecho hoy incrementa la utilidad del módulo y puede salvarnos en alguna ocasión. Y nos falta continuar.

Como ha quedado ya una presentación extensa y densa, os dejo leyéndola y pendientes de la siguiente entrega. Hemos podido llegar a ver cómo ajustar parámetros ‘globales’ (los de la sección ‘system’). La próxima entrega se centra en los Tones, Patches y Performances.

Estará entonces a nuestro alcance poder gobernar al 100% en vivo el Leslie y la distorsión sobre un sonido de órgano o el wha wha en un clav, etc. que son parte esencial de una buena interpretación, si no queremos usar los equipos como meras cajas de presets planos y sin vida. La vida que toma un mero delay cuando se retocan sus parámetros en vivo no tiene que depender de unidades de efecto externas cuando tenemos el potencial en nuestros propios sintes.
De igual manera poder recuperar el manejo de los parámetros de la síntesis desde controles físicos es otro deseo que podremos ver cumplido.

Etiquetas: Tutorial SysEx
Pablo Fernández-Cid
EL AUTOR

Pablo no puede callar cuando se habla de tecnologías audio/música. Doctor en teleco. Ha creado diversos dispositivos hard y soft y realizado programaciones para músicos y audiovisuales. Toca ocasionalmente en grupo por Madrid (teclados, claro).

¿Te gustó este artículo?
29
Comentarios
  • 1
  • 2
  • #1 por teclas123 el 18/03/2013
    Por fin! Aquí esta! Esperando estaba como agua de mayo!! :plasplas:
  • avatar
    #2 por --86908-- el 18/03/2013
    muy buenos articulos, me los estoy guardando en un pdf, muchas gracias por el trabajo :)
  • #3 por Eleztrik el 18/03/2013
    Gracias por este gran aporte!!
  • #4 por teclas123 el 18/03/2013
    Genial artículo!! En el fondo no parece tan difícil, no? Quiero decir, es leer con atención lo que dice el manual y programar los mensajes SysEx (como decías, casi con saber copiar y pegar es suficiente)

    Muchísimas gracias!
  • #5 por Albert MadStein el 18/03/2013
    Lo voy a intentar de nuevo con el Miniak a ver si lo consigo. Muchas gracias por estos grandes artículos. Si alguien puede/quiere ayudarme he abierto un hilo en el foro http://www.hispasonic.com/foros/akai-miniak-controlador-midi-sysex
    Gracias! :)
  • #6 por pablofcid el 18/03/2013
    #4
    Es esencial saber en profundidad qué es lo que tiene tu sinte (haberse leído el manual) para que luego te suene lo que veas en la parte sysex.
    Y ya en la parte sysex, no es difícil, pero hay que ser muy metódico para no perderse. Intentaré no retrasar tanto la siguiente parte y así completáis el ciclo.
    No sabía que el miniak generara sysex ¿nos lo confirmas? ¿puedes comentar algo al respecto, aunque sea breve? Pasaré por el hilo, quizá allí encuentre el detalle
    1
  • #7 por pablofcid el 18/03/2013
    #5
    El enlace que has dado respecto al miniak no parece funcionar, revísalo, por favor. Me interesa saber si genera sysex, y qué tal funciona en ese apartado, etc.
    1
  • #8 por pablofcid el 18/03/2013
    #5
    Disculpa, me había liado con uno de los controladores de Akai. Ya he visto que el miniak es un sinte/vocoder.
    Si tienes pegas con algo al intentarlo dímelo y le hecho yo un vistazo al manual y te paso algún ejemplo.
    1
  • #9 por Albert MadStein el 18/03/2013
    Perdón el link es este : http://www.hispasonic.com/foros/akai-miniak-controlador-midi-sysex/426880#post3529343 . Se agradece que haya gente como tú, voy a echarle un ojo al manual y a ver si me salgo con la mía! Gracias por la ayuda, no dudes en que te preguntaré! jajaja si puedes comentar en el hilo sería de gran ayuda. ¿En principio una mpd 24? puede servir perfectamente ¿No?.
    Muchas gracias :)
  • #10 por pablofcid el 18/03/2013
    Yo akai lo trabajo poco, así que prefiero que nos lo aclare algún voluntario que sí tenga más experiencia.
    1
  • #11 por pablofcid el 18/03/2013
    #9
    Por lo que he visto en el manual del MPD24, sus botones, pads y sliders sólo envían notas, cambios de programa, aftertouch y cambios de controlador, pero no pueden configurarse para generar sysex. Lo que sí hace es un volcado o dump de su propia configuración vía sysex, pero no tiene capacidad para ser un controlador sysex de otros equipos.
    En cuanto al miniak, estoy leyendo su manual de referencia pero no veo el apartado detallado de especificación MIDI y sysex. ¿Lo tienes tú o sabes un enlace? Quizá sea que como el sinte es el micron / ion de Alesis lo que hay que hacer es irse directamente a leer las especificaciones de estos últimos. ¿Sabes algo al respecto?
    Lo digo por echar un vistazo y darte un par de ejemplos que te faciliten la tarea.
    1
  • #12 por Albert MadStein el 18/03/2013
    No hay un apartado detallado de especificación MIDI y sysex en el manual...quizás he pecado de novato y no se puede, pero desde luego si se puede no lo ponen fácil. En principio el Miniak es idéntico, al micron y al Ion, incluso se pueden intercambiar presests entre ellos, pero los mensajes sysex (secuencias, ritmos y multis) que envía el miniak sólo son compatible con el Micron. No sé que tengo que hacer y creo que estoy más perdido de lo que me pensaba ¿Que especificaciones debo leer?. Por ciero ¿Remote Zero sólo tiene salida usb no? ¿Cómo lo conectas sin utilizar el ordenador? Ya que veo que necesitare un controlador nuevo, este me llama. Gracias por la ayuda!
  • #13 por pablofcid el 18/03/2013
    Remote Zero tiene USB y MIDI 'tradicional' (DIN 5 puntas).
    He mirado lo del micron (también he dejado una consulta en 'support' de Akai).
    Parece que, por lo que he leído, en lugar de Sysex están usando NRPNs (sobre los que he comprometido escribir otro artículo). Lo digo por lo que he visto en los manuales de especificación MIDI del Micron. Viene la correspondencia de cada uno de los parámetros internos con números de NRPN, pero no hay nada sobre sysex (salvo que sí usan sysex para volcar -dump- programas, ritmos, patrones, etc. enteros). Para el toqueteo de parámetros individuales usan NRPN, una moda que algunos fabricantes están aplicando (eso de usar NRPNs en vez de Sysex) que personalmente no me gusta gran cosa.
    Te emplazo a ese futuro artículo y allí nos vemos para hablar de NRPNs y cómo programarlos. La ventaja con los NRPNs es que hay más controladores con capacidad NRPN que con capacidad sysex (porque son mensajes más sencillos y más universales), pero yo sigo considerando superiores en varios aspectos los sysex.
    En todo caso si el miniak / micron usa NRPN eso es lo que tendrás que prender y aplicar.
  • #14 por Albert MadStein el 18/03/2013
    Muchas gracias! Acabas de evitarme muchas horas de dolores de cabeza inútiles! Nos vemos en tu próximo articulo ¿Con Remote se pueden enviar mensajes NRPN? Voy a investigar a ver si puedo sacarle más jugo al miniak. De nuevo mil gracias! :)
  • #15 por pablofcid el 18/03/2013
    #14
    Sí, un Remote te permite definir y enviar NRPNs desde cada control.
    Esencialmente con los NRPNs podrás gobernar desde un control físico cualquier parámetro del sinte, los patrones, etc. Tienes la lista de todo si vas a la web de Alesis, buscas producto Micron, vas a documentación y descargas la ' 'MIDI Specification'. Son dos PDFs, uno de ellos tiene la lista de asignación de NRPNs a parámetros que aplica el Micron (y por tanto compatible con el Miniak).

    Sysex y NRPNs son dos estrategias diferentes de codificar mensajes, pero para lo que te interesa la buena noticia es que en tu Miniak mediante los NRPNs podrás tener el mismo tipo de control detallado y completo que en esta seríe estoy comentando desde la perspectiva de los Sysex.

    Si me acuerdo cuando escriba sobre NRPNs pongo algún ejemplo con Micron / Miniak (y si se me pasa me lo recuerdas, y lo añado en los comentarios al artículo).
    1
  • #16 por Rod el 19/03/2013
    Felicidades otro gran artículo , en este ya entras en más profundidad y en concreto nombras el checksum , error con el cual me e topado a lo largo de. Mi vida y sinceramente , nunca di con la solución y en concreto fue con aparatos de Roland
  • #18 por Astropop el 19/03/2013
    Otro artículo para la saca :D

    Creo recordar que el cálculo de Cheksum se especificaba en algunos manuales de Roland, junto con el resto de información sobre SysEx.

    Son simplemente algunas operaciones matemáticas en las que se usaban los bytes de direcciones y valores, si mal no recuerdo.

    Pablo lo podrá confirmar y explicar en algún momento.

    Saludos.
  • #19 por pablofcid el 19/03/2013
    Del checksum hablaré en el próximo artículo. No os preocupéis mucho por ello: la definición del cálculo sólo interesa si vais a crear un programar (en el sentido informático, no en el de creación de sonidos). Lo que interesa es saber qué tipos hay y alguna cosilla más, porque los sistemas de control (como los que siempre cito Novation Remote, Roland A800Pro y semejantes, o apps para iPad como TB MIDI Stuff) ya hacen el cálculo, y te dejan elegir entre diferentes tipos de checksum.
    Lo aprenderemos sin mucho problema. Posiblemente os lo enseñe en vídeo (aunque me toca grabarlos en casa de noche y por eso siempre me oís hablar bajito).
    1
  • #20 por BlahBlah el 19/03/2013
    El más extraño de los cálculos de checksum que he visto nunca es el de la familia VZ de Casio...

    Utiliza nibbles para hacer la suma, y además la hace complementando a 2 los valores, con lo que al final es más práctico hacer la operación c= 128 - c o algo parecido si no recuerdo mal.
  • #21 por pablofcid el 19/03/2013
    Por cierto, el checksum no es sólo en Roland. Varios fabricantes lo usan. Es una forma de detectar si por alguna causa ha llegado el mensaje corrompido y hay que descartarlo (para evitar modificar incorrectamente algo). Se basa en una especie de 'suma' (pero especialita) de los bytes que componen el mensaje.
    1
  • #22 por Rod el 19/03/2013
    Bien explicado , no me lo podíais decir mejor , ya stoy con ansia a la espera del siguiente artículo , como vengó diciendo excelentes Tutoriales
    Muchas gracias por tu dedicación
  • #23 por Rod el 19/03/2013
    Entonces sin ir más lejos quiero hacerte una pregunta.

    Un Roland Jd-990
    Tienes varios canales , en los cuales tienes diferentes instrumentos
    A los que a un instrumento le quieres modificar el brillo y la reverb y el sustain

    Y al los demás un parámetro diferente a cada no

    Para poder hacer eso como lo e de hacer desde logic?

    O esto ya lo explicarás más adelante
    Saludos
  • #24 por pablofcid el 19/03/2013
    Pues eso es justo lo que tengo previsto usar como ejemplo para la siguiente (aunque lo enseño sobre mi SonicCell, la arquitectura es esencialmente igual a los JD, los fantom, y tantos otros Roland 'genéricos').
    Eso que dices es lo que yo llevo para directo (desde controladores en vez de desde ordenador+logic) y es súper útil.

    Si no recuerdo mal (yo soy Cubasero y no uso Logic) existe en Logic algo parecido a los MixerMaps de Cubase: la posibilidad de crear una pantalla llena de pots, fader, botones, etc. en los que puedes configurar el mensaje que necesitas que envíen. Vete mirando eso y en la próxima entrega verás como crear los mensajes sysex que necesitas para lo que dices.

    Está muy bien, porque si usas (yo lo hago mucho) layers y splits en un único canal MIDI (aprovechando el caracter multitímbrico no para tener un sonido en cada canal sino para superponer varios sonidos en un único canal) sysex te permite que pese a que coexisten en un canal puedas retocar los parámetros de cada parte, de cada sonido, individualemente. Una gozada, ya verás.
    1
  • #25 por Rod el 19/03/2013
    Perfectísimo muchas gracias por tu aclaración
    :grin: :grin: :ook:
  • 1
  • 2