Set tempo via MIDI

Ok it’s a little bit complicated...

Is there an online ressource that easily calculate that XOR ... if I want to know for the hex sequence for any bpm ?

I’ve tried many online ressources but the XOR I get is always wrong :((
 
Is there an online ressource that easily calculate that XOR ... if I want to know for the hex sequence for any bpm ?

I’ve tried many online ressources but the XOR I get is always wrong :((
Google "xor calculator". Click on the first link. :)
 
He didn't always copy the results from one line correctly onto the next line, but his XOR values are correct.

Yes you are right !

I just don’t get the last part of explanation... when 79 finally become the XOR... not so good at maths... sorry :(
 
Yes you are right !

I just don’t get the last part of explanation... when 79 finally become the XOR... not so good at maths... sorry :(
Hex is shorthand for binary. F9 is 1111 1001 in binary (each group of 4 binary digits becomes one hex digit). Since the highest bit must be 0 we change 1111 to 0111 which is 7. That’s how F9 becomes 79.
 
It is working fine for some bpm... but if I take 90 (90 is 5A in hex) my string would be F0 00 01 74 10 14 5A 00

I calculate 81 XOR 5A = DB = 1101 1011

I change 1101 for 0101 AND 1011 for 0011

It gives me 5 and 3

So my XOR checksum would be 53...

Total string would be : F0 00 01 74 10 14 5A 00 53 F7

It is not working :(

Also, in the following exemple :

F0 00 01 74 10 14 02 01 02 F7 sends 130

I see that 130bpm is represented in hexadeximal by 02 01 in the exemple string... but my online converter tell me 130 is 82 and not 0102. But that string is working in my AxeFX3.

Maybe I'm missing something, someone would help please ?
 
You don't need to change the B, only the D. The B represents the lower 4 bits. Think of it as digits in a number, you're turning an 8-digit number into a 7-digit.

The tempo bytes look like they are simply swapped. So it's 01 * 128 + 02 = 130. For 127 bpm the tempo bytes are it 7F 00 so it would be 00 * 128 + 7F (127) = 127.
 
Last edited:
It is working fine for some bpm... but if I take 90 (90 is 5A in hex) my string would be F0 00 01 74 10 14 5A 00
I calculate 81 XOR 5A = DB = 1101 1011
I change 1101 for 0101 AND 1011 for 0011
It gives me 5 and 3
So my XOR checksum would be 53...
Total string would be : F0 00 01 74 10 14 5A 00 53 F7

So my '90' BPM is this string. Works on my III, no idea why.

F0 00 01 74 10 14 5A 00 5B F7
 
I think it should work for FM3 if you replace the 10 with an 11, or is the format different? I just made it based on what I saw in this thread :)
Oh actually it would need a different checksum... I'll add something for this.
 
Ok I think it should work for FM3 now as well, assuming the SysEx is similar. Haven't tried it on actual hardware yet.
 
Last edited:
Yes Kamil, thanks a lot for your help... So valuable !

I have edited the Axe html file to make it compatible for FM3.

It is now working flawlessly !

Everything was tested with succes using BANDHELPER (big thanks to zionplayer) with Yamaha MD-BT01 BlueTooth adapter.

Now I cand send Sysex Tempo to my FM3 wirelessly with my Iphone and use the Metronome in conjunction with the Looper.

With that setup, the Looper stay synchro with the Metronome (using the Quantize function)...

I join to this message a ZIP file including the FM3 and Axe SYSEX message for any BPM.

Thanks again :) !
 

Attachments

  • AxeBPM.zip
    1.9 KB · Views: 25
Back
Top Bottom