MIDI DESIGNER
The only MIDI controller for iPad, iPhone, and Mac


Talk to other MIDI Designer users about MIDI Designer, iOS MIDI and related topics. Or share layouts, pages, and ideas.

Check out our Facebook Group.

Of course, if you want to send us an email, feel free.

ā˜ž Open problem reports

ā˜ž Summary of user requests
Can undefined CC 106 and 107 access 14-Bit option in order to implement BeatBuddy Tempo? - MIDI Designer Q&A
0 votes
in Advanced by robertjbegingmail-com (170 points)
edited by robertjbegingmail-com

1 Answer

+1 vote
The MIDI spec defines two types of 14 bit Ccs
- 32 14 bit Ccs pairs, separated by 32 (20H), from 00/32 (20h), bank select MSB / LSB 32 , up through 1F / 3F (Undefined MSB / LSB)
- 2 14 bit Cc pairs, RPN and NRPN, separated by one number, with LSB lower (98 / 99 = NRPN LSB / MSB, 100 / 101 = RPN LSB / MSB)

MIDI Designer
- allows the 20h 14 bit pairing through the entire range, allowing selection of 14bit Ccs up through the 5F/7F pair
- implements NRPN (but not RPN)

Despite not having native implementation of this Beat Buddy implementation, MIDI Designer gives you ability to implement this with two Cc controls and one supercontrol.

I am presuming the 14 bit MIDI value goes from 40 - 300, directly encoding the tempo value.

For MSB, make a knob, Cc 106, 261 ticks, use named ticks - see below.  Repeat for LSB with Cc 107.

Make a third knob to be the supercontrol, choose 14 bit Cc (specific Cc doesn't matter since it is a supercontrol), 261 ticks, Display Min 40, Max 300, make a supercontrol of MSB and LSB knobs (ensure MSB is listed first)

Best to build the named ticks in a spreadsheet

Value  MSB  LSB
040      0       40
041      0       41
...
127      0      127
128      1       0
...
299      2       43
300      2       44

Paste the MSB column in named ticks field for MSB, similar for LSB.
by jkhiser (22.5k points)
Thanks allot - works like a charm!
My option was to reduce the range to less than 127 and just ofset by 50 to make the range more useable. I went from 50 to 177. My stream byter code just sets the MSB depending on what the tempo slider is sending. Shame that we are working on same prob independently.... how many hours did this take you? Took me the occassional hour of thinking over several weeks before I came up with my offset idea : - )

See my layout if it helps:
https://mididesigner.com/qa/9439/layout-control-buddy-tempo-slider-preview-songs-from-your-ipad

(you'll see my SB code embedded in teh layout but happy to share if that's easier)
Yes I had downloaded your layout prior to posting my question. I really wanted to implement tempo slider from 40 to 300 and it does work great with the 2 knobs + 1 supercontrol solution and as a bonus StreamByter is not required. I also added slider for the mix and the phones volumes on your layout!

Cheers!
Did you hide the two subs (eg Hide in play mode - advanced)? I've done that in a few places in my layout... super is only item on display. I also did 'send on release only' (advanced) for the slider so things don't go crazy while you're scrolling to new tempo value!
I did hide the 2 subs and the functionality is great. What would be even greater is if the BPM Label could be bidirectional. (i.e. when physical knob is turned on BB or when a preset on layout is selected) Should be possible with the add on, maybe this can be achieved with StreamByter ? thoughts ?
We can use SB to put the two messages back together into a single message which can drive the supercontrol.  If you need help, prolly going to be a few days until I can get to it.
@jkhiser, if I wanted to increase or decrease this super with yet another two steppers, is this possible? I'd love to be able to have a button either side or above this super slider that added 10 to the current slider value (tempo), or subtracted 10  from current tempo. I can only see a way (so far) of having specific tempos in these buttons (requires a lot of buttons). Is there a relative or incremental solution, where the stepper just says to slider 'increase by 10', say?
Or is this going to be part of an SB solution (ie supercontrol value kept in an SB variable, stepper sends arbritrary value which opens an if statement in SB to drive supercontrol to new value?)
BeatBuddy has CC for each INC/DEC by 1 or any reasonable value (10) relative to current BB BPM
Just researching a bit. Issue is gonna be that BB (like many devices) doesn't report its tempo to MIDI out. It just sends a newly timed MIDI clock. But, SB code can determine that new tempo by counting the clock, eg:
https://audeonic.boards.net/thread/504/tempo-number-mf-dynamic-clock

I guess this could periodically update the supercontrol to detected values (without sending back to BB)?

Complicated, but could be worth the effort?
I'm sending the increment/decrement CC to BB already, but, doesn't update the temp slider. Either could update the tempo slider... or have it bi-directional as you (@robertjbegingmail-com) suggested??
I tested this code (https://audeonic.boards.net/thread/504/tempo-number-mf-dynamic-clock) with StreamByter and Midimittr :

IF LOAD
  ASS L0 = 0 # tick counter
END
IF M0 == F8 # got tick
  MAT L1 = L0 % 18 # if on 24 tick boundary
  IF L1 == 0
    MAT L2 = EA60 / T0 # calculate+show bpm
    SET LB0 L2 +D
    # convert bpm in L2 to DC sysex
    MAT I0 = L2 / 64 # get hundreds
    MAT I1 = L2 % 64 # strip hundreds
    MAT I1 = I1 / A  # get tens
    MAT I1 = I1 * 10 # shift left
    MAT I2 = L2 % A  # get units
    MAT I1 = I1 + I2 # add units to tens
    SND F0 5A I0 I1 00 F7 #will need to adjust frequency of this midi send message with mod function.
  END
  MAT L0 = L0 + 1 # increment tick counter
END

...

Bottom line is that this method is unreliable probably due to Bluetooth latency. The reported BPM fluctuates by +/- 1

In my opinion, Singular Sound should send tempo as a regular SYSEX message much like they do with the time signature. That would be the simplest solution.
I've asked Brennan at Singular sound where to report bugs (I've found some) and would also be good to put this as a feature request... but I don't know where on their forums... do you?
I commented here:

https://forum.singularsound.com/t/bb-midi-out-tempo/26845

But I’m not holding my breath.
...