[Bug report] Midi Machine Control Goto -implementation inaccurate

Hey there,

Just thought I’d point out that it seems that the juce::MidiMessage class’ function implementations related to the MMC Goto-command are inaccurate.
The MMC Goto-command’s hours-byte actually also holds the type-info (i.e. frame rate), similarily as in MTC.

I noticed this parsing a MMC Goto/Locate command with isMidiMachineControlGoto() sent from Logic Pro X. The hours-field Logic was sending was 0, but I was receiving 8.
This was due to the function being implemented as:
hours = data[7] % 24;
rather than:
hours = (data[7] & 0x1f) % 24;

So the function could also extract the MidiMessage::SmpteTimecodeType field as does the MTC getFullFrameParameters() function - and would be better off having the same function signature. The SmpteTimecodeType could be extracted as in getFullFrameParameters() as follows:
timecodeType = (SmpteTimecodeType) (data[7] >> 5);

Therefore also the midiMachineControlGoto() message creation function could be more complete by allowing a SmpteTimecodeType-parameter and encoding it into the hours field.

Does that all make sense?

Best,
antwan