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.
