Tempo changes

So how did you determine the hex number for cc106 and 107? Sorry if you already explained it. I can not seem to find that part.

I tried those hex codes in SLM raw data field and it changes the beat and the tempo still stayed the same. Iā€™m still trying to figure out how to determine the hex code for the cc 106 and 107. All very interesting to learn.

If you are using Windows, the easiest way to find the hex code for a decimal number is to start the calculator (calc.exe), switch to programmer mode from the menu, selected decimal then enter the number. On the Win 10 version it will just show you the hex value, on older versions you have to select hex to see the hex value.
The mathematical way is to divide the number by 16. the result is the left digit and the remainder is the right digit. Remember that numbers 10 through 15 are represented by the letters A through F.
So 106 divided by 16 = 6, remainder 10. 10 (in decimal) is the letter A in hex so the 106 in decimal becomes 6A in hex.

ok Thank you that is clearer. Now I just need to figure out why when using that hex code C9,6A,1
Followed by C9,6B,F change the beat instead of the tempo. Thank you for explaining that. I appreciate your help

I am an IDIOT!!!
Cn is program change, it should be Bn so try the following

B9,6A,1
Followed by
B9,6B,F

and if that works, apologies for my screw up!
I shall edit my earlier posts to reflect the correction so that anyone else reading it is not misled!

No apologies - if it works I will have to drive to where you live and buy you some drinks :slight_smile:
But although Iā€™m using my set up on an Andoid Platform and from Iā€™ve heard its limited in Midi support

I didnā€™t understand your need to enter hex data but then I took a look at the SLM documentation on CC commands so now I understand that for CC commands you have to enter the raw hex data, including the CC and channel part. If the previous incorrect stuff was causing a program change then the midi is getting through so I am sure the corrections will work now.
Once again, apologies for my error and the frustrations it must have caused you.

No frustration. All the info you type up for us was very interesting to me. I use to know Hex when I was studying in the Electronics field but forgot most of it over the past years.

Big E you are a smart guy. It worked perfectly. Thank you so much.

This is definitely the droid Iā€™ve been looking forā€¦ thanks Big E for the explanations. While grasping the whole bits bytes hex o decimal least and most and 1 times 10 and 1 is 12 stuff might take a while for my dinosaur brain to wrap around, at least now I have someplace to start. Thanks again.

If youā€™re using the Arduino midi library, donā€™t worry too much about all the hex stuff, you can code the values in decimal just fine.
It seems Set List Maker needs the whole command (including the CC command part) to be entered in hex, you can just work in decimal though in the arduino.
Understanding the hex is useful if you are looking at the raw data in a monitor.

It looks as though Arduino can send hex with the Serial library or decimal with the MIDI library.
To send a specific tempo (120 in the is case):

Serial Library:
Serial.write(0xB0,0x6A,0x0);
Serial.write(0xB0,0x6B,0x78);

MIDI library:
MIDI.sendControlChange(176,106,0);
MIDI.sendControlChange(176,107,120);

You can send hex with the midi library, itā€™s just a matter of notation and how you prefer to visualize it in the code:

MIDI.sendControlChange(176,106,0);
is the same as
MIDI.sendControlChange(0xB0,0x6A,0);

What goes down the wire ends up being the same.

So I experimented a little and it seems as though the BB is receiving mixed MIDI signals.

When I send this via an Arduino:
(channel,CC,MSB)
(channel,CC,LSB)

The BB doesnā€™t do anything.

When I send this:
(CC,MSB,channel)
(CC,LSB,channel) the BB responds as expected.

Am I crazy, doing something horribly wrong, or is it possible to switch the order of the bits around?

The order of operands on the MIDI.sendControlChange command is CC#,value,channel

You cannot swap them around.

Found a bit of knowledge. To increase or decrease BB tempo, simply send one of these MIDI commands:

[B]MIDI.sendControlChange(97,1,1); // (CC,MSB,channel) - decreases tempo by 1

MIDI.sendControlChange(96,1,1); // (CC,MSB,channel) - increases tempo by 1[/B]