Да скорее всего здесь именно контроллер и буферный элемент, это стандартная схема, контроллер формирует 2 миди команды "program change" на 2 канала, поскольку кнопки не программируются. Можно и проще, без буферного элемента. А в то, что здесь не миди протокол, я верю слабо, зачем заморачиваться, поскольку у них есть контроллеры и побольше и пофункциональнее, а там выдумывать свой протокол уже геморр.
Кстати, прошивку на такой простой миди-контроллер написать очень просто.