En ese caso, lo dicho: Antes de nada, para sysex mirad los artículos que escribí en su día. Aunque sean ejemplos con otros equipos, ayudan a estar en mejor situación para entender lo de ahora.
Sed un poco generosos al leer (porque para ser más rápido no soy riguroso al escribir: hay cosas que no puedo contar desde cero cada vez, porque sería larguísimo). Por ejemplo lo de que XX está representando un byte o dos caracteres hex. Y luego a veces uso representación en bits 00000000 o lo que sea (como esos 00x00yz) cuando me interesa indicarte qué papel juega cada bit de ese byte.
Esencialmente: lo de activar/desactivar los efectos de inserción pensadlo como que tienes 16+1 interruptores (el 1 es para la parte A/D). Son 17 interruptores pero tienes que autolimitarte a activar sólo 8 a la vez.
Esos 17 interruptores están repartidos a lo largo de 3 bytes.
En MIDI los bytes de datos sólo tienen 7 bits útiles. Por eso se usan 7 bits de un byte, otros 7 de otro y te faltan aún 3 que aporta el tercer byte.
Tres bytes con sólo siete bits útiles cada uno serían algo de este tipo:
0acbdefg 0hijklmn 0opqrstu
Por las cosas del sysex y de Yamaha, esos 3 bytes van acompañados de otro que los precede y que tiene que ser todo ceros:
00000000 0acbdefg 0hijklmn 0opqrstu
Cuando decía más arriba que el mensaje sería tipo:
F0 43 10 7F 1C 00 36 00 4C WW XX YY ZZ F7
Me refería a (permíteme que ponga unos en hex otros binarios por claridad)
F0 43 10 7F 1C 00 (la 'cabecera' para referirse al MOXF)
36 00 4C (la dirección donde están esos bytes)
00000000 0acbdefg 0hijklmn 0opqrstu (los propios bytes)
F7
Pues bien, resulta que en 0abcdefg en realidad sólo hay tres bits útiles que pueden valer cero o uno (el resto son siempre cero), y realmente tendríamos algo así:
00000000 00c000fg 0hijklmn 0opqrstu
Ahora ya tenemos a la vista los 16+1 'interruptores'
c es el bit que establece si activas o no el efecto sobre A/D
f es el bit para activar o no el efecto sobre part 16
g es el bit para activar o no el efecto sobre part 15
h sobre part 14
i sobre part 13
j sobre part 12
k sobre part 11
l sobre part 10
m sobre part 9
n sobre part 8
o sobre part 7
p sobre part 6
q sobre part 5
r sobre part 4
s sobre part 3
t sobre part 2
u sobre part 1
Todo un lío, pero son cosas que entiendes una vez (con esfuerzo), pruebas cinco o seis veces (hasta tenerlo todo 'fetén'), y luego ya lo usas de por vida (al menos hasta que vendas el MOXF).
Yo con el SonicCell (que vendí para coger el MOXF) tenía un buen montón de mensajes y plantillas sysex (en controladores hardware y en iPad) para hacer perrerías y vivir cómodamente en los directos, sin tener ni que acercarme a los equipos y disparando todo remotamente.
Si os parece dejamos aquí ya la discusión de sysex, salvo que tengáis curiosidad específica por algo, y cuando dentro de un tiempo (no corto) ya haya arrancado con el MOXF y me haya empezado a hacer plantillas, las comparto y así veis los mensajes que uso, qué utilidad les doy, etc.
Por si acaso, la miniserie: eran 5 entregas. Os paso enlace a la última (tiene enlaces a las anteriores). Empezad por la primera, claro, y no por esta última.
https://www.hispasonic.com/tutoriales/sysex-v-modulos-multitimbricos-3/37992
Sysex exige una cierta vocación hacia lo técnico, para llegar a entender bien las cosas.
Es más clara la redacción de Roland en la parte de especificaciones SysEx del SonicCell que el manual del Yamaha MOXF, así que si es vuestra primera incursión en sysex, tomadlo con calma y mejor entended primero los artículos de la serie. A cambio, por suerte, en Yamaha el mensaje para modificar un parámetro no lleva 'checksum', cosa que sí aparece en Roland y otros que es un engorro innecesario para mensajes tan cortos.