Before posting, please read: When to use this forum, when to submit a help ticket

Accessing a specific CC?

Started by pingber, October 15, 2017, 11:55:07 AM

Previous topic - Next topic

pingber

I understand he's w to get folder/song selection working...as well as how to send out the beat clock.  I'm using a BeatBuddy pedal and want it to respond to tempo via CC 106 and 107.  I have no idea how to set the values in these locations using SLM. The answer to this will also solve similar issues for quite a few of the BB users.  Hopefully, you can help.

Examples...


MSB (CC-106).  LSB (CC-107).  Tempo
0.                     100.                 100
1.                      0.                    128
1.                      25.                   153

Thanks a lot in advance

arlo

#1
Assuming you want to send on channel 1, put this into the Raw MIDI field to set the tempo to 120:

B0 6B 78

Or to set to 140:

B0 6A 01
B0 6B 0C

Here's how it breaks down:

B = control change
0 = channel 1 (numbered from 0)
6A or 6B = controller number 106 or 107 (in hexadecimal)
01 + 0C = 128 + 12 (the desired tempo value, broken into two parts)

In the next app version scheduled for release on Nov. 1, you will have some fields that you can enter control change messages into directly, instead of converting to hex and using the Raw MIDI field, so you might want to wait until then.

Also, I wasn't able to get this to work with my BeatBuddy on the first attempt, but I need to give it another try.

Uwe


pingber

Wow!  Thanks a lot for the assist!

arlo

#4
I'm looking at the BeatBuddy manual again and I think you have to send some additional MIDI messages before and after these tempo change messages. The manual kind of suggests that but doesn't say it explicitly. This could be why it didn't work when I tried it earlier. I think you need to add this before your tempo messages:

B0 63 6A
B0 62 6B

And this after:

B0 63 7F
B0 62 7F

So the complete code to set the tempo to 140 would be:

B0 63 6A // set up MSB
B0 62 6B // set up LSB
B0 6A 01 // set MSB (00 for below 128, 01 for 128 and above)
B0 6B 0C // set LSB (subtract 128 if 128 and above)
B0 63 7F // reset MSB
B0 62 7F // reset LSB

Fortunately, the only numbers you'll have to change here are the third bits of lines 3 and 4, to indicate your desired tempo in BPM. And I'm glad BeatBuddy is using standard MIDI functionality here rather than creating their own non-standard shortcuts.

Unfortunately, the new control change fields in the next app version will only support sending one control change at a time to each device, so you wouldn't be able to send all six control changes needed here. So there's no reason to wait for that as I suggested earlier.

But I will add to my wish list to generate these six control change messages automatically based on the tempo you enter on the song edit page.

pingber

Hey.... it works beautifully! Thanks.  Now I have to remember my hex code.  Believe it or not, I used to teach AP Comp Sci until I retired 8 years ago.  Out of sight out of mind!

Phil

pingber

So now I need to ask or maybe clarify something.  When I specify a tempo in the tempo field and turn on SEND TEMPO in the layout, what i'm really doing is setting the beat clock for the beat buddy pedal, not really the same as the tempo for the song (which is what you described above), am I correct?

Phil

arlo

If you just turn on Play Tempo in the layout, that will just flash the tempo on the screen and optionally play the click sound. If you also turn on Settings > Tempo & Pitch > Send MIDI Beat Clock, then it will also send the beat clock messages that the BeatBuddy can sync with. That is different than telling the BeatBuddy to set itself to a particular tempo. Does that answer your question?

pingber

Yes it does..... absolutely.

If you don't mind one more.... the opening and closing two lines of hexcode from above.... aside from the CC location, will they work to set ANY CC value?

And VERY sorry to keep bothering you, but good solid info is sometimes hard to get..

Phil


arlo

You can use a 3-bit string like that to send any control change message. The second bit is the controller number and the third bit is the value.

arlo

Okay, most of what I wrote above is now moot since the new app versions were released earlier this week. The apps will now automatically generate all the control changes needed to set a tempo and start/stop its playback, and they have fields for entering control changes directly if you want to trigger other functions. I just posted a guide for integrating common functions between my apps and the BeatBuddy:

http://forum.arlomedia.com/index.php/topic,1794.0.html