Resolve an issue where the value was incorrectly treated as a signed integer during multiplication/division. This was causing fluctuations in volume, with levels varying up and down.
The original code reads the envelopeEnd(1 and 2) value as a byte, extends it to a word then ANDs it with 0x00FF before multiplying/dividing.
MKID_BE relied on unspecified behavior of the C++ compiler,
and as such was always a bit unsafe. The new MKTAG macro
is slightly less elegant, but does no longer depend on the
behavior of the compiler.
Inspired by FFmpeg, which has an almost identical macro.