Skip to content

MIDI and SysEx

martinzw edited this page Aug 17, 2021 · 1 revision

MIDI is a communication protocol and a hardware standard for electronic musical instruments. In the beginning MIDI used special DIN 5/180° standard plugs and cables. A fully equipped device had 3 jacks called "MIDI IN", "MIDI OUT" and "MIDI THROUGH".

Nowadays the MIDI data is often send over USB. Being a bus IN and OUT can use the same physical wire for USB-MIDI. The THRII has got a USB-Type B socket on its back side. This is used for standard USB audio interfacing but also as a USB-MIDI connection to a PC application called "THR-Remote". With this program every parameter of the amplifier's effect units can be modified.

For musical purposes mostly messages of the types "Note on / Note off", "Control Change", "Aftertouch", "Program Change" and "Pitch Bending" are used. These message types are a well documented standard and work for all instruments and for all manufactures in the same way. There also are "System Real Time" messages for synchronization and for Time Code, Start, Stop, Reset etc.

But also a message type "System Exclusive" exists. This one begins with a F0 byte and ends with a F7 byte as delimiters and it has some formal rules. But what happens between the delimiters is up to each manufacturer. Often manufacturers deliver a "MIDI implementation chart" for their devices including the protocol of possible System Exclusive messages (called "SysEx").

Yamaha and Line6 (integrated since 2013) do not publish their SysEx protocol for the THRII family however.

For the classical THR-series some guys including me had quickly found out the protocol and programmed own apps for THR-control. Having used THR10 for years I had programmed a foot controller using SysEx already.

(I used an Arduino Due controller and a small ILI9341 display.)

But then I sold my THR10 device and bought the new THR30II not knowing, that unfortuntely a completely different communications protocol is working under the similar looking hood!

So i restarted from scratch. Yamaha denied sending me MIDI implementation charts. For classical THR10 this was no real problem because it's protocol is quite easy and straight forward. Not so for THRII. As far as I know, nobody else has yet successfully analyzed and documented the new THRII's protocol. There are first approaches however (e.g. warmans/go-THR )

After more than a year I can say, that I understand perhaps 90% of the protocol. At least this is enough to suit my purposes.

Clone this wiki locally