Error Mensaje sysex Roland

mikelh2so4
#1 por mikelh2so4 el 26/04/2020
Hola

Estoy intentando mapear controles para cambiar parametros de un modulo de efectos Roland con un novation remote, En otras ocasiones he conseguido mapear parámetros de sintetizadores con facilidad pero en el caso de este modulo ( es una reverb) tiene tantos parámetros disponibles que me estoy perdiendo en la elaboración del mensaje que debo enviar y el módulo me acaba mandando un Receiving Error

Adjunto capturas de la implementación midi. Según el manual debo sumar la dirección del bloque con la direccion offset, asi que poniendo como ejemplo que quiera mapear el parámetro EZ EDIT: REV TIME A y suponiendo que la direccion de bloque sea 10 00 00 00H y la de offset 00 00 00 0E en teoria me llevaría a este mensaje midi que supongo no es acertado:

F0 41 06 00 12 11 10 00 00 0E DV CS F7

Llevo ya varios dias dandole vueltas y no consigo figurarme cómo resolverlo, se que hay algo mal en los bytes del mensaje pero no se qué es.

¿Alguien podría ayudarme a elaborar un ejemplo de mensaje individual para esta unidad? Ya se que no es un sintetizador pero no sabía en que categoría del foro postear mi duda.
Archivos adjuntos ( para descargar)
srvsysex.png
srvsysex2.png
Subir
pablofcid mod
#2 por pablofcid el 26/04/2020
De momento al menos veo un error: tienes que usar el comando 12 (data set) y no el 11 (data request). Y ojito con como calculas el checksum, que hay varias formas posibles.
Y también comprueba el Device ID,el que uses en tu mensaje tiene que coincidir con el que está ajustado en el equipo.
Subir
pablofcid mod
#3 por pablofcid el 26/04/2020
Ese 06 implica que el Device ID no lo tienes en el habitual. ¿Qué Device ID tienes en el sinte? Roland suele numerarlos en la pantalla del equipo empezando en 1, pero en los mensajes empezando en 0, así que 06 en el mensaje correspondería a Device ID = 7 en la pantalla del equipo.
Subir
pablofcid mod
#4 por pablofcid el 26/04/2020
Lo mejor es que te asegures del formato del mensaje usando algo que te permita enviar sysex en bruto, pasando del remote. Y cuando lo tengas claro usas lo pasas al remote.
Por ej en cubase puedes escribir sysex 'a pelo' y enviarlos. Y como también los graba y los muestra, puedes grabar en un pista mientras retoca ese parámetro y ves el formato exacto que envía. Para verlo te vale cualquier visor de mensajes, un MIDI Monitor.
Subir
mikelh2so4
#5 por mikelh2so4 el 26/04/2020
#2

Gracias Pablo, en ti estaba pensando justamente mientras me releia tus artículos sobre Sysex aqui mismo.

Acerca del checksum, he visto alguna utilidad para su cálculo mientras buscaba ayuda estos dias por la red, no se que tal resultará. ¿Pero se ha de calcular para cada parámetro? Es la primera vez que tendría que calcularlo, tengo ahora mapeado un Alpha Juno para el que no lo he necesitado, aunque claro es mucho más sencillo que esta reverb en cuanto a diversidad y cantidad de parametros.

Sobre el comando dataset probé con el 12 y no obtenia respuesta alguna desde el módulo, aunque ya suponía que con el 11 estaba mal, tomé la respuesta de error del modulo como un comienzo.

Y sobre el Device ID está en el correcto, es el 7 cómo bien apuntas

Un saludo
Subir
mikelh2so4
#6 por mikelh2so4 el 26/04/2020
#4

He usado midi-ox para comprobar los mensajes de la maquina haciendo un dump de un programa individual, es así como me di cuenta del tema del device id (que el 6 del mensaje correspondía al 7 en el módulo).

Sin embargo lo que obtengo no acaba de aclararme para elaborar mi mensaje midi. Esto es lo que obtengo al volcar lo que el módulo llama Temp program, que supongo que es el programa que está en el buffer de edición:


F0 41 06 00 12 12 20 00 00 00 00 60 F7


Con eso y todo voy dando palos de ciego, pese a llevar unos dias consultando recursos en la red y probando cuanto se me ocurría
Subir
pablofcid mod
#7 por pablofcid el 26/04/2020
El checksum no es un valor constante para el mensaje, varía con el valor que tenga el dato. Así que tienes que mirar el manual del remote.
Creo recordar, pero hablo de memoria, que el editor de Novation para remote no permitía ajustarlo. Tenías que hacerlo a mano en el propio remote.
Pero apostaría a que es un problema con el checksum.
Subir
1
pablofcid mod
#8 por pablofcid el 26/04/2020
Usa midi ox para ver qué mensajes te manda al alterar solo el parámetro ese que quieres mover en el ejemplo. Y pásamelo. Verás que a medida que el valor del. Parámetro sube el checksum. Baja
Subir
pablofcid mod
#9 por pablofcid el 26/04/2020
Ese mensaje que has dicho (F0 41 06 00 12 12 20 00 00 00 00 60 F7) no es el de temporary program. El de temp prog está en la dirección 10 00 00 00 y siguientes, como ya habías puesto en el comienzo del hilo.
Subir
pablofcid mod
#10 por pablofcid el 26/04/2020
No captures un volcado completo con todos los bytes del temp prog. Haz lo que te comentaba. Esta en pantalla un único parámetro y mira lo que te llega. Te va a ser más sencillo de interpretar y se parece más a lo que buscas hacer.
Subir
mikelh2so4
#11 por mikelh2so4 el 26/04/2020
pablofcid escribió:
Pero apostaría a que es un problema con el checksum.


Seguramente. Siempre mapeo a mano, nunca he usado el editor en el Novation remote.

Me he dado cuenta que el controlador cuando eliges sysex para el control en data type te ofrece tres opciones NONE, SINGLE y ROLAND como es un módulo Roland escojo esta ultima opción. Pensaba que ajustaría automaticamente el checksum ya que donde se ha de definir el checksum simplemente el controlador escribe CS y no se puede modificar su valor ( como digo escogiendo ROLAND en data type, con las otras opciones si me permite modificar el valor desde el novation)

pablofcid escribió:
Ese mensaje que has dicho (F0 41 06 00 12 12 20 00 00 00 00 60 F7) no es el de temporary program. El de temp prog está en la dirección 10 00 00 00 y siguientes, como ya habías puesto en el comienzo del hilo.


Lo sé, pero es lo que manda la unidad al hacer el volcado de "temp program" según su propio menú. También a mi me ha extrañado.


Haré como comentas pero no he logrado de momento obtener ningun mensaje sysex ajustando los parametros desde la misma unidad, es una de las cosas que ya había intentado. Voy a seguir probando a ver si consigo algo y me puedo guiar por ello...o te hago llegar el resultado si por mi mismo no puedo resolverlo

Muchas gracias por la orientación, veo que es un tema - en este caso- bastante más complejo de lo que esperaba
Subir
pablofcid mod
#12 por pablofcid el 26/04/2020
No desistas, que casi lo tienes. En remote hay un par de valores especiales para indicar donde comienza y donde acaba el cálculo del checksum. No basta que elijas el roland. Tienes que marcar donde debe empezar ese cálculo. Está en los manuales (es que no tengo ahora posibilidad de mirártelo).
Subir
mikelh2so4
#13 por mikelh2so4 el 26/04/2020
No te preocupes, ya miraré yo el manual. Faltaría más

Supongo que deben ser los parámetros LENGth y DATAPsn, que veo que están relacionados entre si y también lo están con el parámetro Datatype. Permitiendo introducir unos valores u otros depende de lo que esté seleccionado en éste último.

Hasta el momento en que lo has mencionado me había dado por pensar que Length era la cantidad de bytes que contenía el mensaje, pero veo que me va a tocar tirar de manual como bien dices para asegurarme de las funciones de esos dos valores.

Voy a hacer un descanso y retomarlo con la cabeza más clara y tus observaciones, porque de tanto darle vueltas estoy más que atascado en este momento. La verdad es que es más un capricho que algo que necesite -me gustaría acceder a más parametros sin tener que bucear tanto por los menús- y ahora que me he picado con ello no soy capaz de dejarlo de lado.

Un saludo y gracias de nuevo
Subir
pablofcid mod
#14 por pablofcid el 26/04/2020
Una cosa: como no tengo ese equipo... A qué se refiere los individual área y lo de bulk área?
Subir
pablofcid mod
#15 por pablofcid el 26/04/2020
Y otra recomendación: es más fácil si empiezas con un mensaje de la parte system. Por ejemplo intenta controlar lo de la intensidad del display.
Puedes generar dos mensajes fijos. Uno para ponerlo flojito y otro para ponerlo a tope. Lo digo porque así puedes escribir el valor del checksum calculado por tí sin depender de remote. Y si ves que va ok, ya has arrancado. No estoy seguro, pero ahora me vino a la memoria que con algún Roland moderno no me llegó al funcionsr el checksum de remote (lo pude solventar poniendo ese byte a cero, sin hacer checksum).
Subir
Hilos similares
Responder

Regístrate o para poder postear en este hilo