Volcados datos sysex Alesis, cómo descodificar/desempaquetar

xfargassss
#1 por xfargassss hace 2 semanas
Pregunto aquí como último recurso porque ya hace algunos días que ando buscando la fórmula o algún código que me permita interpretar/leer correctamente los archivos sysex que genera Alesis en los volcados de datos, en concreto el S4+ que equivale al Quadrasynth v2.

Las especificaciones midi de Alesis son concisas en este apartado.

<data> is in a packed format in order to optimize data transfer. Eight MIDI bytes are used to transmit each block of 7 Quadrasynth data bytes. If the 7 data bytes are looked at as one 56-bit word, the format for transmission is eight 7-bit words beginning with the most significant bit of the first byte, as follows:

Cuya traducción sería:
Los datos están en un formato empaquetado para optimizar la transferencia de datos. Se utilizan 8 bytes MIDI para transmitir cada bloque de 7 bytes de datos de Quadrasynth. Si los 7 bytes de datos se consideran como una palabra de 56 bits, el formato para la transmisión es de 8 palabras de 7 bits comenzando con el bit más significativo del primer byte (no estoy muy de acuerdo con esta parte de la traducción), de la siguiente manera:

  • SEVEN QUADRASYNTH BYTES:
  • 0: A7 A6 A5 A4 A3 A2 A1 A0
  • 1: B7 B6 B5 B4 B3 B2 B1 B0
  • 2: C7 C6 C5 C4 C3 C2 C1 C0
  • 3: D7 D6 D5 D4 D3 D2 D1 D0
  • 4: E7 E6 E5 E4 E3 E2 E1 E0
  • 5: F7 F6 F5 F4 F3 F2 F1 F0
  • 6: G7 G6 G5 G4 G3 G2 G1 G0


  • TRANSMITTED AS:
  • 0: 0 A6 A5 A4 A3 A2 A1 A0
  • 1: 0 B5 B4 B3 B2 B1 B0 A7
  • 2: 0 C4 C3 C2 C1 C0 B7 B6
  • 3: 0 D3 D2 D1 D0 C7 C6 C5
  • 4: 0 E2 E1 E0 D7 D6 D5 D4
  • 5: 0 F1 F0 E7 E6 E5 E4 E3
  • 6: 0 G0 F7 F6 F5 F4 F3 F2
  • 7: 0 G7 G6 G5 G4 G3 G2 G1


Parece algo lioso y al principio no lo entendía, había algunos conceptos que se me escapaban, pero después de darle muchas vueltas y hacer muchas consultas (gracias iA) por fin creo que lo he comprendido.

El caso es que al intentar ponerlo en práctica y programar algún código para desempaquetar los dichosos volcados sysex, los resultados no son los esperados... y no consigo dar con la clave. Incluso apoyándome con la iA no he conseguido salir del atolladero. 🤔

Encontré este hilo:
https://stackoverflow.com/questions/330085/alesis-qs-midi-sysex-data-conversion
en donde un usuario preguntaba exactamente lo mismo, cómo leer corectamente los datos empaquetados que Alesis envía. Hay algunas respuestas pero ninguna definitiva que solucione el problema, incluso hay algún que otro código... pero ninguno funciona debidamente.

De ahí que ahora pregunte a la comunidad en la que sé que hay gurús y eminencias de la informática musical por si alguien conoce la solución a este problema en concreto, o pueda darme alguna pista que se me está escapando.
Subir
OFERTAS Ver todas
  • -13%
    Roland Fantom-07 B-Stock
    1.390 €
    Ver oferta
  • -19%
    Behringer X-Touch Compact
    259 €
    Ver oferta
  • -12%
    Roland GAIA 2 B-Stock
    629 €
    Ver oferta
Endre
#2 por Endre hace 2 semanas
Hola. Recuerdo haber sufrido un poco para mapear un S4 a través del Novation Remote. Si necesitas que nos pongamos a repasar el modo en que se organiza el sistema exclusivo del S4, le echamos un vistazo, pero si buscas algún parámetro en concreto, dímelo, porque tengo las envolventes, los filtros, LFOs y alguna cosa más mapeada. Sólo tendría que mirar las cadenas sysex.
Subir
1
xfargassss
#3 por xfargassss hace 2 semanas
#2  

Muchas gracias por tu respuesta y ofrecimiento, pero el problema no está (al menos el mío) en los mensajes sysex a enviar a Alesis para hacer una u otra operación. Esos mensajes que tú me indicas son específicos y su dificultad radica en cómo identificar/mapear cada uno de los parámetros para que Alesis los entienda, que no es moco de pavo supongo.

El problema que yo tengo es otro. Cuando Alesis responde con un volcado de datos tras una petición/request (de un patch o una performance por ejemplo), esos datos que te llegan están empaquetados de la forma que indico al principio del hilo. Para poder leer e interpretar esa información, como el propio nombre del patch o los parámetros y valores que lo configuran, primero hay que desempaquetar dicho volcado... y ese es el meollo de la cuestión, no logro hacer ese paso, sólo obtengo basura ilegible.
Subir
Endre
#4 por Endre hace 2 semanas
Puedes usar un editor y te ahorras la cuestión de comprender las cadenas de sistema exclusivo. 

A fin de cuentas, el editor si que las interpreta y las muestra como parámetros. 
Subir
xfargassss
#5 por xfargassss hace 2 semanas
#4  
Ya, pero quiero procesar de forma masiva cientos de performances para registrar todos los programas que intervienen en cada una de ellas y hacerlo de una en una es inviable. Ya desarrollé sin demasiados problemas rutinas parecidas en otros sintetizadores como Korg y Yamaha para hacer lo mismo, incluso Roland con su famoso (y maldito) cheksum me tuvo loco un tiempo pero al final cayó... supongo que con Alesis es cuestión de ir probando y depurando el código que he hecho hasta que se me encienda la luz 😀
Subir
Hilos similares
Nuevo post

Regístrate o para poder postear en este hilo