Sintetizadores

MIDI: cambios de programa y selección de bancos

[Publi] Pablo Fernández-Cid organiza en su academia de Madrid cursos de iniciación a la síntesis (10 horas) y seminarios de una tarde en temas como MIDI, síntesis FM, controladores MIDI, efectos audio, uso de diversos sintes software y otros. Más información en cicloquintas.es

Cambiar de sonido en un sinte o entre programas de cualquier aparato. Algo tán fácil en el propio panel del equipo, y que sin embargo vía MIDI se les resiste a algunos. No conocer los mensajes implicados también puede dificultar la cosa a la hora de configurar en el DAW o un controlador la selección de sonidos. Hoy revisamos en detalle esta cuestión.

Si ves que nos hemos dejado algo o que te queda alguna duda sobre algún caso concreto, pregunta en los comentarios.

 

Lo más básico: program change

Los sintetizadores y equipos musicales electrónicos en general disponen de una serie de memorias de sonidos o configuraciones (llamados genéricamente programas, presets, patches, etc.) que determinan cómo han de sonar/actuar. Estas memorias están ordenadas internamente formando una lista numerada. Es posible solicitar vía MIDI el paso a usar la configuración descrita en una de esas memorias. Basta un mensaje que indica el número de la posición de esa lista en donde está el programa que queremos usar. Existe en MIDI un tipo de mensaje pensado específicamente para esta función y se llama mensaje de cambio de programa (Program Change, PC).

Es un mensaje ‘de canal’, lo que quiere decir que el mensaje va etiquetado con uno de los 16 posibles números de canal y que será por ello posible enviar cambios de programa distintos para cada uno de los 16 canales, con lo que podremos seleccionar un sonido diferente en cada uno de ellos.

Para sentiros cómodos y no perderos cuando entréis en las profundidades de vuestros equipos y DAWs, es útil saber cómo es el formato íntimo de estos mensajes. Ojalá la vida fuera más fácil, pero, ya lo sabéis: ‘buscáis la fama, pero la fama cuesta’.

El formato del mensaje Prog. Change, presentado en binario, es

   1100nnnn 0ppppppp

  • 1100 es una cabecera que indica que se trata del mensaje de cambio de programa,
  • nnnn sería la indicación del canal (0000 es para el canal MIDI 1, 0001 para el 2, 0010 para el 3, y así hasta llegar al 1111 para el canal 16)
  • 0ppppppp es el byte donde va el número de programa deseado, y tiene 7 bits útiles (el primer bit del byte a la fuerza debe ser 0). Con 7 bits, es posible identificar hasta 128 combinaciones y por tanto seleccionar hasta 128 sonidos, con números desde 0 hasta 127 (aunque en el display de muchos sintes los veamos referidos como 1 a 128, por aquello de evitar ese horror que a algunos les produce el cero).

A menudo lo veréis escrito en hexadecimal como   Cn pp    (podéis revisar la explicación sobre bits, bytes y hexadecimal que se hicimos en un anexo de otro tutorial). Por ejemplo C0 00 selecciona en el canal 1 el primer programa, mientras C3 05 selecciona el sexto programa del canal 4, y un mensaje C0 10 selecciona el sonido décimoséptimo en el canal 1 (ten en cuenta que ‘10’ en hexadecimal es el valor 16 decimal y sería por tanto el sonido decimoséptimo contando con el 0).

Ánimo. No es tanto lío, sólo cuestión de acostumbrarse. Si has sobrevivido a esta primera bofetada, tienes garantizado sobrevivir al resto del artículo.

 

DAWs: números y nombres de programa

Aquí tenéis una imagen en Cubase (sería equivalente en otros DAWs) en la que en la cabecera de cada pista MIDI hemos podido elegir un sonido, especificando un nº de banco (hablamos de ellos luego) y un número de programa entre 0 y 127. Realmente el DAW lo que hará es enviar en el arranque del tema un mensaje Progr. Change por cada pista para así preparar la carga del sonido necesario en cada equipo. Sencillo.

Algunos DAW muestran el valor entre 0 y 127, otros lo muestran desde 1 a 128, pero en ambos casos lo que importa es que el valor más bajo corresponde al ‘primer’ sonido y el valor más alto al ‘último’ de la colección de los 128 sonidos que pueden alcanzarse con un mensaje de cambio de programa.

En muchos casos la lista que se muestra podrá incluso ofrecer los nombres de los sonidos porque sean ya conocidos por el DAW para ese instrumento. Es muy habitual que esté disponible para su uso la lista de sonidos de los sintes ‘GM’ (los que siguen la norma General MIDI). En ellos hay una lista universal: las mismas posiciones/memorias corresponden a los mismos sonidos en todos los sintes cuando usan el modo GM.

En muchos DAWs podemos en uno de los menús (configuración de dispositivos MIDI en el caso de Cubase)  cargar o crear una lista con los nombres de los sonidos de cada uno de nuestros sintetizadores. Es sin duda cómodo y nos evita lidiar ‘a ciegas’ con números. Es más agradable ver y elegir por nombre.

Además del mapa de sonidos General MIDI (GM), suelen venir ya predefinidos otros para sintes populares y en caso necesario podemos crear (o buscar en Internet) la lista de otro sinte que tengamos. Basta elegir el instrumento y podremos ver los nombres. En esta otra imagen estáis viendo la lista de sonidos de un TX81Z, en la que aparece el clásico sonido ‘Lately Bass’.

Cuando hemos establecido qué sinte/lista de sonidos es la que estamos usando para una pista, en lugar de ver como antes banco y programa por nº lo que veremos es una lista, a menudo clasificada ya sea por familias de instrumentos (como en el ejemplo de GM) o por bancos del sinte (preset1, preset2, user1, user2, etc.)

En todo caso, cómodo como resulta todo esto de elegir por nombre en muchos casos la lista para nuestro DAW para un determinado sinte no está disponible y tampoco tenemos el tiempo / ganas de crearla por nosotros mismos y asumir el esfuerzo y tiempo que eso conlleva. En esos casos nos toca enfrentarnos a los números directamente.

Esquemas de numeración

Casi todos los sintetizadores numeran de forma que el primer sonido se llama 1 y el último 128. ¿Cómo casa eso con lo de los valores 0 a 127 en el mensaje Program Change o en la pantalla de nuestro DAW? Ya lo hemos mencionado: hay una correspondencia directa. Para elegir el sonido 1 de ese sinte necesitaríamos escoger el valor 0 en el desplegable del DAW y así sucesivamente. Siempre ‘restar uno’ en ese caso.

Pero no es el único problema que podemos encontrar relacionado con qué esquema de numeración se presenta al usuario en el panel o pantalla del equipo y cómo se corresponde con los valores 0 a 127 conocidos en MIDI. A veces hay algunas peculiaridades con los números de programa, y diferencias entre la representación que se muestra al usuario y la que se usa internamente y en los mensajes MIDI.

El nuevo JU-06 (la recreación del Juno-106 en la gama Roland Boutique) usa dos dígitos comprendidos entre 1 y 8 para disponer de 64 memorias. Con un dígito de decenas y otro de unidades, la numeración en pantalla recorre 11 a 88, pero no es un recorrido completo. Sólo son posible 64 valores por la ausencia de ceros y nueves. Una representación  que tiene que ver con cómo era la tecnología en los años del Juno-106, pero que se ha imitado aquí.

Detalle JU-06

De hecho, el Juno-106 original tenía más memorias que este nuevo JU-06. Tenía 128 memorias gracias a que además de esos pulsadores había otro que conmutaba entre dos conjuntos de sonidos A y B, completando así una cantidad de memorias que en aquellos años parecía gigantesca. ¿Quién podría querer más de 128 sonidos?

Detalle Juno-106

Si vais al panel del JX-03 (versión Boutique del JX-3P) veréis dos secciones (A y B) de sonidos prefijados y una tercera (C) de sonidos programables por el usuario. Cada una con 16 programas, y por tanto un total de 48 sonidos.

Detalle JX-03

Los dos Boutique mencionados, son ejemplos recientes de algo que era frecuente en los primeros 80s: no había tantas memorias en el sinte como para llenar 128 programas. En este caso, 64 en JU-06 o 48 en JX-03.

En este tipo de casos encontraréis a veces ‘rarezas’ en la numeración cara a los mensajes de cambio de programa. Ha habido sintes que ante un esquema como el del JU-06 (de tipo 11-88 para 64 sonidos en total) han optado por usar los 64 primeros mensajes de cambio de programa (los valores 0 a 63). Pero otros fabricantes lo que han hecho es usar directamente el número en pantalla. Aquí veis esas dos alternativas:

 

Pantalla                Prog.Ch.                 Prog.Ch.

11                           0                             11

12                           1                             12

88                           63                           88

 

Hay otros que han sido el colmo de la rareza y han usado otros tipos de correspondencia más estrambótica (como llevar cada uno de esos dígitos a un ‘niblle’ del byte de número de programa). En definitiva, cuidado con la numeración ‘a la vista’ en pantalla / panel, y con la numeración que se aplica en los mensajes Progr. Change. Nada complicado normalmente, pero sí algo que atender y mirar en el manual.

Antes casos de ese tipo, ¿qué hacer con los mensajes de número que no existen en el equipo? Pensemos de nuevo en 64 memorias. Ha habido fabricantes que han optado por atender sólo los cambios de programa 0 a 63 y no reaccionar ante los 64 a 127 (si llega un mensaje de una posición desocupada no cambian de sonido), pero otros lo que han hecho es ‘extender’ para cubrir todo el rango, repitiendo el mapeo de memorias. En ese esquema tanto el cambio al programa 0 como al 64 llevarían a seleccionar el primer sonido (los número 0 a 63 tienen el mismo resultado que los 64 a 127).

Variantes de numeración puede haber muchas.  

Aquí tenéis la pantalla de mi MOXF, en la parte en la que se escogen sonidos. Se eligen mediante una letra A-H y un número entre 1 y 16. Podríamos llamarlo esquema tipo A1-16, H1-16. Si hacéis cuentas, no por casualidad, 8 letras y 16 números dan lugar a 128 posibles combinaciones. Y la correspondencia la imagináis. El Progr. Change 0 es el sonido A1 y el 127 corresponde al H16.

Detalle MOXF

Pero MOXF tiene en realidad miles de sonidos internos… ¿cómo acceder a ellos vía MIDI? No os he mostrado que hay otros dos botones (bank +, bank -) que permiten rotar entre una amplia colección de juegos de 128 sonidos cada uno, pero eso es desde el propio panel. ¿Y vía MIDI? Bienvenidos a los bancos.

 

128 no es suficiente: mensajes de selección de banco

A día de hoy 128 programas se quedan cortos frente a las colecciones de cientos (o más) sonidos que podemos encontrar en un sintetizador cualquiera. Por ello se ha estandarizado una forma de ir más allá de 128, mediante el concepto ‘banco de programas’.

Un banco de programas es una colección de hasta 128 programas. Disponiendo varios bancos tenemos acceso a un número de sonidos mayor de 128. Lo que se necesita es una forma de comunicar vía MIDI el banco del que deben tomarse los sonidos, antes de enviar (con un program change) el mensaje que dice cuál sonido de ese banco queremos usar.

Para ello se han establecido dos mensajes de controlador [tenéis dentro de otro tutorial contados los mensajes de controlador]. Los mensajes de controlador tienen el formato (lo muestro en hexadecimal):  Bn cc vv , donde Bn es el arranque del mensaje (‘B’ indica que es un mensaje de controlador y ‘n’ el número de canal), cc el número del controlador entre 0 y 127 (distingue cada tipo: rueda de modulación, breath control, pedal sustain…), y vv entre 0 y 127 el valor que adopta ese controlador.

Para definir qué banco escogemos usar en un canal MIDI se usan el controlador 0 (Bank Select MSB) y el controlador 32 (Bank Select LSB). Con 7 bits cada uno son capaces conjuntamente de representar 14 bit, es decir más de 16000 bancos… y no olvidemos que en cada uno podemos contar con 128 sonidos.

Por ejemplo,    B0 00 01     B0 20 07      C0 05   sería la forma de indicar en el canal MIDI 1, que debe elegirse el programa 5 del banco señalado con el MSB 1 y el LSB 7 (sería el banco 128+7 = 135).

En vuestros manuales veréis las listas de nº de banco y nº de programa necesarios para llegar a cada sonido. Generalmente el nº de banco vendrá tanto escrito tanto fraccionado en MSB y LSB como agregado en un único valor (lo del 1 y 7 o el 135).

El envío del mensaje de banco debe preceder al de cambio de programa, para que ya esté seleccionado el banco adecuado cuando llegue la indicación del nº de programa.

La especificación de un número de banco debe ser memorizada por el receptor, porque indica de qué banco deben tomarse los sonidos que indiquen todos los mensajes Program Change que vengan a continuación hasta que haya una nueva indicación de banco.

En definitiva, para especificar completamente la elección de un sonido se envía la selección de banco (con su MSB y su LSB) más el Program Change a continuación. Pero si los siguientes sonidos que vamos a reclamar son del mismo banco, podemos no enviar el ‘bank select’.

Un ejemplo de uso de bancos lo proporcionan las normas GS (General Standard) y XG (eXtended General) son unas ampliaciones de las especificaciones GM promovidas respectivamente por Roland y Yamaha. En cada una de ellas hay muchos más de 128 sonidos, gracias a que organizan sonidos en bancos. Por ejemplo aquí tenéis a la vista una parte de los sonidos que muestra Cubase usando para una pista una de las listas predefinidas con las que cuenta, precisamente para los sintes compatibles con XG:

Ejemplo XG

La imagen está tomada de la pantalla a través de la cual podemos definir (incluso creando nuestras listas a mano) qué sonidos tiene cada uno de nuestros sintes. Gracias a ello veis cómo aparecen los famosos códigos hexadecimales que os contaba. Por eso os decía que conocer un poco de esta jerga no viene mal. Así no nos mareamos al ver páginas como esta. En lugar de verla y cerrarla con horror, quizá ahora podáis animaros a aprovecharla (otro día os enseño si queréis cómo crear estas listas para un sinte nuevo en Cubase).

Ampliando más allá del mapa básico de 128 sonidos que se creó con el General MIDI inicial, las especificaciones GM2, GS y XG (y sus revisiones GS2, XG2) definen numerosos sonidos adicionales organizados en bancos. Debe estarse atento a lo que indiquen los manuales de cada instrumento, puesto que es frecuente (especialmente en GM / GS / XG) que los bancos no sean contiguos y que haya abundantes bancos en blanco o con pocos sonidos (que no tienen contenido salvo en una parte pequeña de sus 128 posibles programas).

Cualquier sintetizador / rompler / workstation reciente, con sus cientos o miles de sonidos, es otro ejemplo de uso de bancos. Id a sus manuales en busca de cómo organizan sus sonidos. Por ejemplo, GS y XG intentan mantener una agrupación semejante a la de GM, de tal forma que los 8 primeros sonidos de cualquier banco suelen ser pianos, de los cuales el primer sonido siempre es piano acústico. En la figura anterior los sonidos GrandPno, GrndPnoK, MelloGrP,… son todos el primer programa de otros tantos bancos. Así veis que MelloGrP usa el programa 0 del banco 18 (que corresponde a MSB 00 y LSB 12 en hexadecimal).

La lista que muestra en este caso Cubase está organizada por familias de instrumentos recopilando sonidos de varios bancos, en lugar de mostrar el contenido de cada banco en bruto.

 

En este otro ejemplo, con un MO de Yamaha, los nombres ‘MO PRE1’…’PRE4’ corresponden a varios juegos de sonidos distintos y propios de ese sinte (cada uno de ellos con 128 sonidos posibles) y ‘GM Voice’ es el juego de 128 sonidos GM. Veis además que podemos seleccionar incluso entre voces normales o de juegos de batería:  ‘MO PRE DRUM’ son juegos de sonidos de batería propios de MO y no falta el ‘GM DRUM’ que en este caso tiene un único juego (Stereo GM).

Ejemplo Yamaha MO

En otros casos también mediante algún banco específico podemos incluso seleccionar las clásicas ‘combis’, ‘multis’, o ‘performances’ en las que tenemos una combinación multitímbrica de varios sonidos a través del teclado, la velocidad o los diferentes canales MIDI. Una vez más, habrá que acudir al manual de cada equipo.

Hay diversidad de formas de representar al usuario la cuestión de los programas y bancos, pero teniendo claras las ideas troncales podremos enfrentarnos con éxito a cualquiera de ellas y aprovecharla vía MIDI.

 

Bancos y programas ‘a pelo’

Hemos aprovechado la potencia de los DAW para presentar la cuestión de mensajes de programa y de banco. Esas listas con nombres son una gozada sin duda. Pero no pocas veces nos toca meternos ‘a pelo’ con los mensajes MIDI. Por ejemplo, cuando no tenemos ya creada la lista para nuestro DAW del sinte que acabamos de incorporar a nuestra colección y nos toca introducir a mano en el DAW los mensajes que seleccionen el sonido deseado.

También cuando tenemos que configurar un botón o un pad de un controlador MIDI que pensamos llevar a un directo y desde el que queremos poder seleccionar los sonidos deseados para cada tema. Yo lo he hecho a menudo: preparar en un controlador unos cuantos pads para tener a mano y ordenados los comandos que hacen que todos los sintes queden listos para cada tema que vayamos a interpretar. Evito así tener que ir uno por uno seleccionando sonidos y ser el último de los músicos en estar listo para el tema siguiente. Pulso un botón y acabé: soy el primero en mirar a los demás diciendo ‘¿ya estáis listos?’. Una comodiad que me deja disfrutar más tranquilo del directo, sin tantos agobios.

En el caso de los controladores normalmente para los botones y pads podéis elegir que al pulsarlos se genere un mensaje de selección de sonido y os permite especificar tanto el nº de banco como el nº de programa. En algunos casos os permitirá escribir el valor decimal, en otros tendréis que escribir en hexadecimal, … pero generalmente no es complicado.

Si vais a introducir a mano en un DAW esos mensajes: mirad primero si os basta algo como lo que mostrábamos al principio. Esos campos de la configuración de pista que permiten elegir un banco y un sonido. Sólo servirá para pistas que no cambien de sonido en todo el tema, pero es lo habitual y es el máximo de la sencillez.

 

Si queréis cambiar a mitad de tema:

Según cómo sea vuestro DAW es posible que permita en cada patrón o sección de la pista establecer una nueva elección de banco/programa con idéntica facilidad. Por ejemplo en Cubase completo era algo habitual.

Otra posibilidad es introducir los mensajes en el típico editor de lista de eventos. Recordad hacerlo en orden: banco MSB y LSB y sólo después el program change.

Ahora mismo sólo tengo un Cubase reducido que carece de esas facilidades (ni ajustes en cada fragmento de una pista ni lista de eventos). Sí, ya lo sé, lo que tendría que hacer es comprarme de una vez el full, pero me pasa como a muchos de vosotros. Hay que tirar con lo que hay. Y en Cubase AI os toca remangaros y hacer algo como esto (muestro los tres mensajes por separado):

Insertando mensajes de banco/programa en el editor de pianola

Como sólo está la edición en pianola, hay que ir a la parte inferior, que permite mostrar/editar mensajes de cosas que no sean notas. Por defecto sólo permite elegir entre unos pocos mensajes, pero con ‘configurar’ podéis añadir los que faltan: CC0 (bank select MSB) y CC32 (bank select LSB).

Una vez aceptada la nueva lista de mensajes que queréis poder visualizar, ya podréis introducir manualmente los mensajes como hacía un poco más arrina. Algo trabajoso de esta forma, pero posible. Y siempre manteniendo que el program change sea el último en salir, claro.

 

¿Favoritos? Mapeos de sonidos

Importante también en algunos casos conocer la existencia de listas de sonidos ‘favoritos’ en algunos sintes. Dos ejemplos, uno antiguo, otro más reciente.

EL TX81Z de Yamaha tenía 4 bancos (A, B, C, D) de 32 sonidos prefijados, con lo que ya se completaban los 128 programas. Pero además tenía otros 32 sonidos en un banco ‘I’ previsto para sonidos editados o cargados por el usuario. No usaba todavía el concepto de ‘bancos’ y sólo contaba con 128 programas alcanzables. ¿Cómo resolver el dilema de 128+32=160 sonidos, pero sólo 128 programas posibles en el mensaje de Programa Change? Se podía crear una lista que indicaba qué sonido de los 160 queríamos que se cargara al llegar cada uno de los 128 posibles Program Change. Una especie de lista de favoritos.

Me quedo de nuevo en Yamaha: los teclados recientes (Motif, MOX/MOXF, e incluso Montage) permite crear una lista de sonidos y/o combinaciones favoritos. Es posible llegar a ellos mediante un (o unos) bancos dedicados. Es decir, en su lista de bancos veréis bancos para llegar a cualquiera de sus voces, incluidas las de juegos de batería. Veréis también bancos para llegar a sus ‘performances’. Pero también veréis bancos para seleccionar una posición en la lista de favoritos.

 

SysEx como alternative a Program Change y Bank Select

No sería yo si no aprovecho para sacar a relucir los mensajes SysEx. Frente a todo el tema de bancos y programas, otra alternativa, que a veces es útil pero suele ser complicada para la mayoría de los usuarios, es usar mensajes de sistema exclusivos (SysEx) para hacer ese cambio entre unos y otros sonidos.

Si sabéis trabajar con sysex, tiene alguna posible ventaja. En particular, si tenéis dos o más sintes asociados a un mismo canal MIDI, la llegada de un cambio de banco/programa afectaría a ambos. Con el uso de mensajes sysex es posible dirigirse en particular a cada uno de esos sintes, aunque compartan canal MIDI, y elegir individualmente sonidos, sin que cambien ‘en bloque’. Desde luego podríais sencillamente duplicar la información MIDI y separarla en otras pistas/canales para que cada sinte, pero si al final se trata de que toque exactamente lo mismo hay algunas ventajas en no duplicar sólo por razón de la selección de sonidos: sacar las mismas notas (y mensajes de pitch bend, y de controles, etc.) por dos canales está duplicando la ocupación del cable MIDI, es más fácil que se llene. Además evitamos tener que editar por duplicado cada vez que queramos corregir alguna nota o realizar cualquier cambio.

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?
9
Comentarios
  • 1
  • 2
  • #1 por PedroAntonio el 13/05/2016
    Madre mia que recuerdos, esto de los cambios de programa me los empolle bien con la Pcmnania que tocaron el tema del midi y explicaron el MSB/LSB que de matemáticas aprendi !!!.

    Un saludo !!!
  • #2 por neomad el 13/05/2016
    Eso eso, que recuerdos ! me acuerdo lo del MSB/LSB y aun lo uso ! luego en Cubase, Logic y Cakewalk entre otros podiamos importar los 'mapeos' ya hechos (se sigue haciendo).
    Gracias Pablo !
  • #3 por f3rnan5u el 13/05/2016
    Jooooopeeeeeee! excelente!!!!!
    Miles y miles de gracias Pablo!
  • #4 por critical el 13/05/2016
    ¡Fantástico artículo, Pablo!

    P.D: Pero hay una errata cuando comentas esto: "nnnn sería la indicación del canal (0000 es para el canal MIDI 1, 0001 para el 2, 0010 para el 3, y así hasta llegar al 1111 para el canal 15)". En realidad es canales 0 (0000) a 15 (1111) desde el punto de vista técnico o canales MIDI 1 (0000) a 16 (1111) desde el punto de vista musical.
    1
  • #5 por pablofcid el 13/05/2016
    gracias, es el 16 claro. Corrijo.
  • #6 por clavinord el 13/05/2016
    Lo que no entiendo cómo puede haber daws que cuando cargan un tema no mandan,...por mucho que digan, cambios de program , volumen y pan al cargar el tema, y hablo de Logic
  • #7 por pablofcid el 14/05/2016
    #3
    Un amigo me llamó con una duda de este tipo de cosas. Tras cambiar de una versión a otra de un DAW no sabía cómo resolver un cambio de programa a mitad de tema que antes sí podía hacer. Y eso me recordó que tenía a medio escribír este tuto, sin rematar hace meses. En mi opinión, Al final conviene saber con un poco de profundidad para tener mayor autonomía y llegar a imaginar soluciones cuando nos sacan de nuestras rutinas, nos enfrentamos a entornos desconocidos, etc.

    #6
    No uso logic, así que lo desconozco. ¿No habrá algo en las 'preferencias' al respecto? Aunque ahí está también el sangrante caso de Ableton Live, que tras tantísimos años sigue sin soportar sysex. Ya les vale.
    1
  • #8 por critical el 14/05/2016
    Muy interesante lo de los esquemas de numeración, por cierto.

    Me gustaría añadir un aporte que no muchos conocerán porque este artículo viene al pelo de algunos trucos que se pueden emplear en algunos sintetizadores para sacar sonidos únicos:

    Hay sintes que no hacen dejar de sonar un preset cuando se cambia de uno a otro. Si tenéis uno de estos, probad a programar diferentes cambios de programa mientras hacéis sonar sus notas y veréis qué sonidos y efectos tan chulos salen!!!
  • #9 por JLC el 15/05/2016
    muchas gracias Pablo.

    A mi me ayudarías mucho, si me dijeras como se puede cambiar el banco del matrix 1000. Desde luego que yo sepa, no atiende ni al comando 00 ni 32, que sería lo suyo.

    muchas gracias
  • #10 por pablofcid el 15/05/2016
    #9
    El M1000 es previo a que se extendiera lo del tema de los bancos y usa otros procedimientos.
    Hay una forma fácil a través de SysEx, pero como SysEx no os gusta a todos, aquí va otra.
    [No tengo el M1000 así que no puedo probarlo, te tocará confirmarlo a tí, pero en el manual viene este procedimiento con mensajes normales]


    Por ejemplo para seleccionar el 231:
    Envías un mensaje de rueda de modulación a tope (127), eso hará que el siguiente cambio de programa se interprete como un cambio de banco.
    Envías el Program change con el num. de banco (p.ej. el 2)
    Envías rueda de modulación a 0
    Y ahora otro Program change con el num del sonido (p.ej. 31)

    Por cierto: cuidadito con enviar progr change al M1000 si la rueda no está en 0. Mejor hazlo siempre con la rueda previamente a 0 para que no te cambie de banco, porque en realidad cualquier prog change recibido mientras la rueda está más allá de la mitad, dará lugar al cambio de banco.

    Un poco atípico, pero es lo que hay.

    Espero que te sirva.
    1
  • #11 por JLC el 15/05/2016
    muchas gracias Pablo. Luego por la noche lo pruebo.

    Pero los bancos que están en la memoria interna, no se pueden cambiar, no?
  • #12 por pablofcid el 15/05/2016
    #11
    Los sonidos 000 hasta 199 son modificables, los 200 a 999 no.
    1
  • #13 por Pabl el 16/05/2016
    Genial, muchas gracias. La verdad es que nunca me había puesto con MSB/LSB porque no me había surgido la necesidad. Hasta hace poco, queriendo controlar cambios de programa del Minilogue desde el Nord Stage. Sólo consigo cambiar en los sonidos de 0 a 99. En el manual lo especifica (Program Change 0-99), pero por otro lado dice que sí recibe y transmite MSB/LSB... probaré a ver.
  • #14 por elpezs el 16/05/2016
    Este artículo me hacía mas falta que dormir.

    GRACIAS
  • #15 por pablofcid el 16/05/2016
    #14
    Me alegro. Gracias por comentarlo. así duermo yo hoy más feliz :-)
  • #16 por Julius@Wikter el 18/05/2016
    Muy buena explicación, aprovecho y añado algo que creo puede ser importante.
    1.- hay DAW como Studio One que usan un único mensaje de cambio de banco. Para poner el cambio deberemos hacer el siguiente cálculo: (MSBx128)+LSB
    2.- El comportamiento a los cambios de banco es totalmente irregular. Existen equipos que no responden al cambio de banco si no se envían MSB+LSB.
    Otros no responden si no se añade el cambio de programa.
    Algún equipo he tenido que no entendía la secuencia desordenada LSB y luego MSB. Había que hacerlo de una manera concreta. MSB, luego LSB.
    Hay equipos que no responden al cambio de programa cuando reciben un cambio de banco no reconocido previamente.
    Todo esto se manejaba bastante mejor en máquinas antiguas que permitían ajustar la respuesta, pero en la comunicación Yamaha MOX - Korg Electribe 2 los cambios de programa fallaban... La Electribe no respondía correctamente.
    El GEM Equinox por otra parte respondía a cualquier mensaje de banco o programa.
    Revisar la tabla de implementación MIDI siempre ayuda.
    1
  • #17 por pablofcid el 18/05/2016
    #16
    Bien apuntado.
    El cambio de banco por sí mismo no debería cambiar de sonido hasta que llegue un progr change que lo complete.
    El orden más seguro es MSB, LSB finalmente Progr Change (pero malas implementaciones que hacen otras cosas no son desconocidas aunque sí excepcionales, muy poco frecuentes).

    Casi todos los sintes sólo tienen contenido para unos cuantos bancos, no para todos (recordad que son más de 16000 bancos de 128 programas). En muchos casos los bancos con contenido no son contiguos, sino unos números determinados de banco.
    Además muchos de esos bancos sólo tienen contenido en parte de sus programas.
    Por ejemplos los GS y XG, tienen el clásico banco GM y luego varios bancos con variantes (más brillantes, más oscuros, etc.), pero no hay variantes de todos los tipos para todos los sonidos. Suele haber en GS y XG muchas variantes de piano acústico, de p. eléctrico, de órgano, guitarra, etc. pero no hay tantas variantes de koto o de gaita :-)

    Algunos equipos al seleccionar un banco para el que no tienen contenido o un programa inexistente de un banco incompletamente relleno usarán un sonido 'silencio', otros se quedarán en el que estaban sin cambiarlo, otros usarán el sonido del banco anterior más cercano que sí tiene ocupado ese número de programa...

    Así que lo de intentar controlar dos sintes diferentes en un mismo canal mediante cambios de banco/programa puede ser harto imposible (por lo que decía #16 de controlar la electribe desde el MOX).
  • #18 por Julius@Wikter el 18/05/2016
    Ah... Y el Kawai K5000W llevaba el tema de los cambios de banco al extremo. A pesar de contar con un número de presets normal (384 si mal no recuerdo), los cambios de banco se suceden en los cambios de preset. Soy incapaz de recordar las posiciones, pero sí que contaba con casi 16 bancos que aparecían de manera casi aleatoria.
    La correspondencia de cambio de programa es la correcta, pero en un mismo banco envía cambios de banco diferentes al cambiar de preset. (Edito)

    #17 La Electribe 2 es un poco rarita, la MX y la ER sí reconocen el cambio de programa enviado por el MOX (cambio de patrón, pues no tiene listado de programas)...
  • #19 por Fran el 18/05/2016
    Wow, fantástico. Hace unos días que me he metido en la implementación MIDI de mi set y el artículo me ha servido para clarificar algunos aspectos en los que me quedaba un poco pez... Felicidades!
    Una pequeña dudilla acerca de los Program Changes: Si el hardware en cuestión no acepta recibir datos en ese sentido, hay alguna forma de "sortear" ese enorme fallo en la implementación MIDI? Hablo por ejemplo del sampler Roland sp-606... Según el manual (y el rato que he estado peleándome con él) no recibe ni envía datos de Prog. Ch., y es un palo tener algunos aparatos que cambian a través del DAW y otros que no...
  • #20 por Julius@Wikter el 18/05/2016
    #19 Sysex, como ya se explica en el artículo.
    Aunque a veces usan otro tipo de mensajes, revisa la especificación MIDI completa.
    También es posible que no reconozca nada.
  • #21 por Fran el 18/05/2016
    Ok, pues tendré que perderle el miedo al SysEx entonces... gracias!
  • #22 por pablofcid el 18/05/2016
    Tienes una serie de 5 tutos sobre sysex que escribí aquí en hispa, es bastante completa.
  • #23 por Fran el 18/05/2016
    Ya la he empezado, mil gracias otra vez!
  • #24 por F7h el 19/05/2016
    F0h
    Para recordar que el viejo SY 77 de Yamaha usa Program Change para seleccionar bancos (creo que del 120 en adelante)
    El E-mu Vintage Key Plus usa un mapa de re-asignación como el me menciona pablocid en su artículo.
    En algunos secuenciadores se pueden editar las listas de programas para evitar calcuar el número de banco y tenerlos a a vista, Cubase, Nuendo tienen esa lista en formato xlm y sonar en formato de texto (.ins)
    Gran artículo que me hizo recordar mis viejas peleas con el cakewalk 3.0
    Gracias Pablo
    J.
  • #25 por JLC el 22/05/2016
    #10
    Pablo, eres un genio.

    funciona perfectamente
  • 1
  • 2