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

Author Topic: BeatBuddy MIDI integration  (Read 2343 times)

arlo

  • Administrator
  • Senior Member
  • *****
  • Posts: 3504
  • Karma: +79/-3
BeatBuddy MIDI integration
« on: November 03, 2017, 12:30:14 AM »
The nice folks at Singular Sound sent me a BeatBuddy to test with, and I've been trying out some of the ways it can integrate with my apps. Here's a guide for how to send MIDI from BandHelper or Set List Maker to control your BeatBuddy.

General Setup

You'll only need to do this section once, to get everything ready.
  • On the BeatBuddy, press the Drum Set and Tempo buttons at the same time to open the settings.
  • Turn the Tempo knob to scroll down to the Main Pedal menu item, then press the knob to select it.
  • By turning and pressing the Tempo knob, navigate to MIDI Messages > MIDI Out > Sync > Disable.
  • Press the Drum Set button to go back, then press it to go back again.
  • Navigate to MIDI In > MIDI Channel Number and select a channel number. You'll want each of your MIDI devices to operate on a different channel.
  • Press the Drum Set button to go back until you exit the settings.
  • In BandHelper, navigate to Repertoire > MIDI Devices, or in Set List Maker, navigate to Settings > MIDI Devices.
  • Click the + button at the top of the list, then enter BeatBuddy as the device name.
  • Set the port if you need to use multiple MIDI interfaces at the same time. Otherwise, leave it set to All.
  • Set the channel to the same channel you set on the BeatBuddy.
  • Set the numbering to 1-128.
  • Click the back button in the top right and select Layouts.
  • Select the layout you want to use and click Edit Details.
  • In the Actions section, click Send MIDI and select Song Selection.

Selecting Songs

When you select a song in BandHelper or Set List Maker, you can make the BeatBuddy select the corresponding song automatically.
  • Find a song you want to select on the BeatBuddy, and note its folder and song number.
  • In BandHelper, navigate to Repertoire > MIDI Presets, or in Set List Maker, navigate to MIDI Presets.
  • Click the + button at the top of the list, then enter the BeatBuddy song name as the preset name.
  • On the BeatBuddy row in the Program Changes section, enter values into the three fields. If you have fewer than 128 folders, this is easy; just set the first field to 1, the second field to your folder number and the third field to your song number. If you have more than 128 folders, you need to increment the first field for each group of 128 folders, then set the second field to the remainder. So if the folder number is 280, you would set the first field to 2 (because 280 contains 2 groups of 128) and the second field to 24 (because subtracting 2 groups of 128 from 280 leaves you with 24). By the way, the BeatBuddy manual says to subtract 1 from your folder and song numbers, because MIDI values are often counted starting from 0. This isn't necessary in my apps, thanks to the 1-128 setting you selected in the device setup.
  • Click the back button and navigate to the Songs list.
  • Select the song in my app that corresponds to the song you want to select on the BeatBuddy.
  • Scroll down to the MIDI Presets section and click Add MIDI Presets.
  • Select the preset you just created.
  • Click the back button and navigate to a set list that contains this song.
  • Select the layout you edited in the setup section above, then select the song you added the preset to.
  • You should see the MIDI icon in the top toolbar blink, and the song should now be selected on the BeatBuddy.
  • Repeat these steps for each song!

Setting the tempo and playing the selected song

Now that a song is selected, you have two options for playing it at your defined tempo. The first option sends a tempo value to the BeatBuddy and starts it, but makes no attempt to keep the app's flashing tempo button in sync with the BeatBuddy. This would create a more stable tempo on the BeatBuddy and is best if you don't mind the app flash potentially drifting out of sync. Also, this stops the playback with a final fill.
  • In the app, navigate to Settings > Tempo & Pitch.
  • Turn on Send Tempo To BeatBuddy, and set Send To BeatBuddy Channel to the input channel you set on the BeatBuddy.
  • Navigate to the Songs list and select the song you want to control the BeatBuddy from.
  • Scroll down to the Tempo field and enter your desired tempo.
  • Navigate back to the Songs list, or navigate to a set list that contains the song, and click the song's tempo button (metronome icon).
  • The BeatBuddy will start playing at the tempo you entered. Click the tempo button again to stop it.

Alternatively, this method will sync the app's tempo flash in sync with the BeatBuddy, but might be less stable because of the additional MIDI communication. Also, this method stops the playback immediately.
  • In the app, navigate to Settings > Tempo & Pitch.
  • Turn on Send MIDI Beat Clock, and set Send Beat Clock To Port if you are using multiple MIDI interfaces at the same time.
  • Navigate to the Songs list and select the song you want to control the BeatBuddy from.
  • Scroll down to the Tempo field and enter your desired tempo.
  • Navigate back to the Songs list, or navigate to a set list that contains the song, and click the song's tempo button (metronome icon).
  • The BeatBuddy will start playing at the tempo you entered. Click the tempo button again to stop it.

Setting the tempo WITHOUT playing the selected song

Some people might want to send a message to the BeatBuddy to only set its tempo, then start playback from the BeatBuddy itself. I didn't build support for this directly into my apps, but you can create MIDI presets to do this. You will need to create one MIDI preset for each different tempo that you want to use. This example will set a tempo of 120, with the BeatBuddy on channel 1.
  • Navigate to the MIDI Presets list.
  • Click the + button and enter BeatBuddy: 140bpm as the name.
  • In the Raw MIDI field, enter B0 63 6A on the first line.
  • Enter B0 62 6B on the next line.
  • Enter B0 6A 00 on the next line. For tempos 128 and above, the last bit would be 01.
  • Enter B0 6B 78 on the next line. The last bit is your tempo of 120 in hexadecimal. For tempos 128 and above, subtract 128 from your value.
  • Enter B0 63 7F on the next line.
  • Enter B0 62 7F on the next line.
  • Navigate to the Songs list and select the song you want to set this tempo from.
  • Scroll down to the MIDI Presets section, click Add MIDI Presets and select the preset you just created.
  • Navigate to a set list and view the song you just edited.
  • Send the MIDI button for the song, and you should see the tempo update on the BeatBuddy.

Setting the tempo in real time with Tap Tempo

Instead of setting a tempo in your songs, you can send Tap Tempo messages to the BeatBuddy.
  • Navigate to the MIDI Presets list.
  • Click the + button and enter BeatBuddy: Tap Tempo as the name.
  • On the BeatBuddy row in the Control Changes section, set the first field to 118 and the second field to 128.
  • Navigate to the Layouts list and select the More Controls layout, or any layout that contains the Multiple MIDI Buttons item.
  • Scroll down to the MIDI Presets section and click Add MIDI Presets.
  • Select the BeatBuddy: Tap Tempo preset you just created.
  • Navigate to a set list and view it with this layout, then select any song.
  • In the list of MIDI buttons, you'll see BeatBuddy: Tap Tempo at the end. Click this preset repeatedly to set the BeatBuddy tempo.

Triggering events in real time on the BeatBuddy

These steps will create a collection of MIDI presets you can use to trigger various BeatBuddy events as you play. You can skip any you don't expect to use.
  • Navigate to the MIDI Presets list and click the + button. Enter BeatBuddy: Start as the name. Scroll down to the Raw MIDI field and enter FA.
  • Navigate to the MIDI Presets list and click the + button. Enter BeatBuddy: Stop as the name. Scroll down to the Raw MIDI field and enter FA.
  • Navigate to the MIDI Presets list and click the + button. Enter BeatBuddy: Accent Hit as the name. On the BeatBuddy row in the Control Changes section, set the first field to 111 and the second field to 128.
  • Navigate to the MIDI Presets list and click the + button. Enter BeatBuddy: Drum Fill as the name. On the BeatBuddy row in the Control Changes section, set the first field to 113 and the second field to 128.
  • Navigate to the MIDI Presets list and click the + button. Enter BeatBuddy: Transition 1 as the name. On the BeatBuddy row in the Control Changes section, set the first field to 114 and the second field to 2.
  • Navigate to the MIDI Presets list and click the + button. Enter BeatBuddy: Transition 2 as the name. On the BeatBuddy row in the Control Changes section, set the first field to 114 and the second field to 3.
  • Navigate to the MIDI Presets list and click the + button. Enter BeatBuddy: Transition 3 as the name. On the BeatBuddy row in the Control Changes section, set the first field to 114 and the second field to 4.
  • Navigate to the MIDI Presets list and click the + button. Enter BeatBuddy: Next Transition as the name. On the BeatBuddy row in the Control Changes section, set the first field to 114 and the second field to 128.
  • Navigate to the MIDI Presets list and click the + button. Enter BeatBuddy: Outro as the name. On the BeatBuddy row in the Control Changes section, set the first field to 116 and the second field to 128.
  • Navigate to the Layouts list and select the More Controls layout, or any layout that contains the Multiple MIDI Buttons item.
  • Scroll down to the MIDI Presets section and click Add MIDI Presets.
  • Select all the presets you just created. Then drag them into the order in which you want to view them.
  • Navigate to a set list and view it with this layout, then select any song.
  • In the list of MIDI buttons, you'll see your BeatBuddy presets at the end. Click them to see what they do.
« Last Edit: February 07, 2018, 01:15:11 PM by arlo »

Troubador

  • Regular Member
  • ***
  • Posts: 10
  • Karma: +0/-0
Re: BeatBuddy MIDI integration
« Reply #1 on: January 06, 2018, 06:26:10 PM »
This is sweet.

I got a BeatBuddy Mini for Christmas.

Will the instructions above work for the Mini? I think not ... but no harm in asking! :)

arlo

  • Administrator
  • Senior Member
  • *****
  • Posts: 3504
  • Karma: +79/-3
Re: BeatBuddy MIDI integration
« Reply #2 on: January 08, 2018, 08:39:02 AM »
I don't think so ... I don't see a MIDI jack on there.

Here's a comparison video: https://www.youtube.com/watch?v=_ewILejnB_M

Troubador

  • Regular Member
  • ***
  • Posts: 10
  • Karma: +0/-0
Re: BeatBuddy MIDI integration
« Reply #3 on: January 11, 2018, 03:25:10 PM »
Ahhh ... that's right ... the Mini has no MIDI!!  ;)

sibster

  • Regular Member
  • ***
  • Posts: 11
  • Karma: +0/-0
Re: BeatBuddy MIDI integration
« Reply #4 on: February 07, 2018, 11:22:20 AM »
Hey Arlo

I don't seem to be able to get the Tap Tempo working as you describe.

I think maybe there is a Bandhelper bug in how it is applying the Numbering setting selected for the MIDI Device to a CC number
With Numbering at 1-128 I had to set CC to 118.

I think for Tap Tempo CC also its not necessary to have a value, but I guess the Numbering setting should apply to the value and not the CC itself?

I assume  there will be the same issue with the other trigger event CCs you describe

I am using an ipad 3.3 on ios 9.3.5 with app version 3.2.8

thanks :)
« Last Edit: February 07, 2018, 12:21:00 PM by sibster »

arlo

  • Administrator
  • Senior Member
  • *****
  • Posts: 3504
  • Karma: +79/-3
Re: BeatBuddy MIDI integration
« Reply #5 on: February 07, 2018, 01:17:40 PM »
You're right, I recommended the 1-128 numbering to make it easier to calculate song numbers, but then I forgot to increment all the controller numbers accordingly. I just updated the instructions to fix that.

The BeatBuddy might respond to a tap tempo control message without a value, but I would include it to conform to the MIDI specification, which says that control change messages always include a value.

sibster

  • Regular Member
  • ***
  • Posts: 11
  • Karma: +0/-0
Re: BeatBuddy MIDI integration
« Reply #6 on: February 07, 2018, 01:31:27 PM »
Thanks

But I actually think that's confusing. It would make sense to me to just not apply the Numbering setting to the CC because Tap Tempo is actually 117 not 118. In fact it has me rethinking the numbering altogether and going back to 0-127 which is what I used  for the song changes prior to reading your notes. Raw MIDI Hex Code avoids the problem altogether but that of course is not so user friendly. Any chance of an update to fix for the next app release please? I assume this is not a beatbuddy specific issue.

I also think another good enhancement would be to have an option to send the tempo to the beatbuddy on song selection and not start playing in Bandhelper. Whilst I understand what is currently possible, the fact that the first option does not keep the flashing of the app in sync with beatbuddy, and with the second option it means you don't get the beatbuddy outro, neither are really ideal and you may as well follow instructions to send Raw MIDI codes for tempo setting without playback but that is convoluted to create a range of tempo variations, so a built in option to send the exact tempo on song selection would be better IMHO.

Thinking about the Tap Tempo again, one of the challenges with beatbuddy is to be able to slow down or speed up during play - the Tap Tempo can achieve that but I find it incredibly difficult to get right via bandhelper. Also you can set the beatbuddy external footswitch for this purpose. So instead I have created two additional MIDI presets to attach to my layout called "Tempo+" and "Tempo-" that increase/decrease tempo by 1bpm at a time. I wonder if these might be worth adding to your instructions?....


For details on Tempo increment/decrements see page 15 of the BeatBuddy MIDI Controls manual.

Tempo increments and decrements are made via a combination of the NPRN Register and standard Data INC/DEC messages. The following MIDI presets should first be created and then these will be combined to create tempo adjustment presets. Note that CC numbers and corresponding values may need adjusting by 1 if your MIDI Device Numbering setting is set to 1-128.


  • Navigate to the MIDI Presets list and click the + button. Enter "BeatBuddy: NRPN Tempo MSB" as the name. On the BeatBuddy row in the Control Changes section, set the first field to 99 and the second field to 106
  • Navigate to the MIDI Presets list and click the + button. Enter "BeatBuddy: NRPN Tempo LSB" as the name. On the BeatBuddy row in the Control Changes section, set the first field to 98 and the second field to 107
  • Navigate to the MIDI Presets list and click the + button. Enter "BeatBuddy: INC" as the name. On the BeatBuddy row in the Control Changes section, set the first field to 96 and the second field to 1. Note that this adjusts the bpm by +1, if you would like to increment by larger steps then instead of a Control Change, Raw MIDI has to be used: set MIDI Device to BeatBuddy, enter as the Hex Code B0 60 01 and repeat this code for each increment required (for example, for +2bpm enter B0 60 01 B0 60 01
  • Navigate to the MIDI Presets list and click the + button. Enter "BeatBuddy: DEC" as the name. On the BeatBuddy row in the Control Changes section, set the first field to 97 and the second field to 1. Not that this adjusts the bpm by -1, if you would like to increment by larger steps then instead of a Control Change, Raw MIDI has to be used: set MIDI Device to BeatBuddy, enter as the Hex Code B0 61 01 and repeat this code for each increment required (for example, for +2bpm enter B0 61 01 B0 61 01
  • Navigate to the MIDI Presets list and click the + button. Enter "BeatBuddy: NRPN MSB Clear" as the name. On the BeatBuddy row in the Control Changes section, set the first field to 99 and the second field to 127.
  • Navigate to the MIDI Presets list and click the + button. Enter "BeatBuddy: NRPN LSB Clear" as the name. On the BeatBuddy row in the Control Changes section, set the first field to 98 and the second field to 127.
  • Navigate to the MIDI Presets list and click the + button. Enter "BeatBuddy: Tempo+" as the name. Under Send Additional Presets add in the following order; "BeatBuddy: NRPN Tempo MSB", "BeatBuddy: NRPN Tempo LSB","BeatBuddy: INC","BeatBuddy: NRPN MSB Clear", "BeatBuddy: NRPN LSB Clear"
  • Navigate to the MIDI Presets list and click the + button. Enter "BeatBuddy: Tempo-" as the name. Under Send Additional Presets add in the following order; "BeatBuddy: NRPN Tempo MSB", "BeatBuddy: NRPN Tempo LSB","BeatBuddy: DEC","BeatBuddy: NRPN MSB Clear", "BeatBuddy: NRPN LSB Clear"
  • Finally add the Tempo+ and Tempo- presets to the desired layouts and ensure the layout is set to show multiple MIDI preset buttons.

HTH
« Last Edit: February 07, 2018, 02:12:21 PM by sibster »

sibster

  • Regular Member
  • ***
  • Posts: 11
  • Karma: +0/-0
Re: BeatBuddy MIDI integration
« Reply #7 on: February 07, 2018, 02:15:52 PM »
Actually just realised also, you can switch back and forth between the numbering options depending on what you are entering, since once you have a midi preset defined going back and changing the numbering setting automatically adjusts the preset. I didn't realise that until just now :)

arlo

  • Administrator
  • Senior Member
  • *****
  • Posts: 3504
  • Karma: +79/-3
Re: BeatBuddy MIDI integration
« Reply #8 on: February 07, 2018, 04:56:17 PM »
Quote
But I actually think that's confusing. It would make sense to me to just not apply the Numbering setting to the CC because Tap Tempo is actually 117 not 118. In fact it has me rethinking the numbering altogether and going back to 0-127 which is what I used  for the song changes prior to reading your notes. Raw MIDI Hex Code avoids the problem altogether but that of course is not so user friendly. Any chance of an update to fix for the next app release please? I assume this is not a beatbuddy specific issue.

There's nothing to fix; the app works correctly either way. It's just a matter of what setup is easier for writing instructions. Since the math to divide song numbers is already somewhat confusing, I didn't want to add the 0-127 numbering to make it even more confusing. But if you are cross-referencing the instructions above with BeatBuddy's manual, which uses 0-127 numbering, that could be confusing. Ultimately there's no perfect solution to this oddity of the MIDI specification.

Quote
I also think another good enhancement would be to have an option to send the tempo to the beatbuddy on song selection and not start playing in Bandhelper.

I'll add that to my wish list.

Quote
Thinking about the Tap Tempo again, one of the challenges with beatbuddy is to be able to slow down or speed up during play - the Tap Tempo can achieve that but I find it incredibly difficult to get right via bandhelper. Also you can set the beatbuddy external footswitch for this purpose. So instead I have created two additional MIDI presets to attach to my layout called "Tempo+" and "Tempo-" that increase/decrease tempo by 1bpm at a time. I wonder if these might be worth adding to your instructions?....

Thanks for the contribution! A more streamlined alternative (fewer presets) would be to create a single preset for up and another for down, containing all the control changes necessary, in the Raw MIDI field. You could use the instructions in the "Setting the tempo without playing the selected song" section above as a starting point.

sibster

  • Regular Member
  • ***
  • Posts: 11
  • Karma: +0/-0
Re: BeatBuddy MIDI integration
« Reply #9 on: February 10, 2018, 05:46:28 PM »
Thanks Arlo.

Re. The tempo+/- I started out as above because it matched the Beatbuddy explanation in their midi manual and when you load the preset in Bandhelper i thought it clearer to show what it was doing. In the end, before you suggested it, I did decide to program into one preset with one string of  raw midi hex code 😁.... I just wished all this midi coding was more easily human readable and all the hex codes are like writing  in morse code or something! 🙄

--- .... / .-- . .-.. .-.. !
« Last Edit: February 10, 2018, 05:49:46 PM by sibster »

Deano

  • Newbie
  • **
  • Posts: 1
  • Karma: +0/-0
Re: BeatBuddy MIDI integration
« Reply #10 on: March 02, 2018, 11:46:29 AM »
Hi Arlo

We use Bandhelper and have just invested in a BeatBuddy and an FCB 1010.  Our thinking was to control the FCB1010 via Bandhelper to select the patch (when selecting a song) with the selection loading up the corrrect patch in the FCB1010,  so we can use all the footswitches on the FCB1010 to control the Beatbuddy.  Have you any experience of that approach.

Thanks

Colin

kenardo

  • Regular Member
  • ***
  • Posts: 9
  • Karma: +0/-0
Re: BeatBuddy MIDI integration
« Reply #11 on: March 25, 2018, 03:37:48 PM »
Hi,

I'm Using BeatBuddy & Bandhelper... I have lots of songs set-up this way and it works well...
But would like to simplify the process a little if possible...
I currently use 2 Midi presets to select the Drum Style & Tempo for each song.
I have several different tempo's & Drum sets for each song & select the style & Tempo per band & Gig.
I would like to be able to select one of my midi presets... Tempo & Style as the default? for each song?
and still have my other options  available to use as needed? any suggestions?

thanks,
kenardo
« Last Edit: March 25, 2018, 08:18:33 PM by kenardo »

arlo

  • Administrator
  • Senior Member
  • *****
  • Posts: 3504
  • Karma: +79/-3
Re: BeatBuddy MIDI integration
« Reply #12 on: March 26, 2018, 11:57:58 AM »
You can drag the MIDI presets attached to a song into a different order, and the first preset in the list will be the default. However, if you want to set a default tempo AND style, you essentially need two defaults. I can think of a few ways to accomplish that:

1) Combine your separate tempo and style presets into a single preset, so instead of a "70 bpm" preset and a "Jazz Swing" preset, you have a single "Jazz Swing 70 bpm" preset. Then position that preset first to make it your default. As a variation of this, you can keep your existing two presets, then add a third preset and attach your existing two to it. Then only attach the third, parent preset to your song. This could be more convenient if you're doing a lot of mixing and matching between styles and tempos.

2) Record an automation track that sends your two default presets, then play the automation track to set the defaults.

3) Make some smart copies of the song, then change the presets attached to the smart copies versus the original copy. Then add one of the smart copies to your set list, depending on which combination of presets you want to use in that set list.

kenardo

  • Regular Member
  • ***
  • Posts: 9
  • Karma: +0/-0
Re: BeatBuddy MIDI integration
« Reply #13 on: March 26, 2018, 12:41:50 PM »
Thanks Arlo,

I'll try placing the "Default" style first in the list and see how that works.
I have over 200 songs & don't think I'm quite ready to write new apps for each "song/style/tempo" combo yet.

If the default Style works as explained It'll save half the picks for each song,
and I'll possibly look for a BeatBuddy tempo/pedal solution.

I'll also look into the other suggestions & see if they'll work.
Otherwise I'll wait for the default preset "buttons"... ;D

Thanks, ken
.................
UPDATE:

I ended up using the (alt option#1) ... As a variation of this, you can keep your existing two presets, then add a third preset and attach your existing two to it. Then only attach the third, parent preset to your song. This could be more convenient if you're doing a lot of mixing and matching between styles and tempos.

Once I had the Default Presets activating properly the new "Parent Preset" with the attached "existing Presets" worked great...

Thanks...ken
« Last Edit: March 29, 2018, 11:20:51 AM by kenardo »

treceveu

  • Newbie
  • **
  • Posts: 1
  • Karma: +0/-0
Re: BeatBuddy MIDI integration
« Reply #14 on: May 04, 2018, 10:16:40 PM »
For what it’s worth, I’m using BH on an iPad Pro and a Roland BK-7m arranger/backing module, not a Beat Buddy, but face the same issues.  I’m able to select song styles via BH MIDI presets, but can’t seem to make my ideal situation work, which would be to populate the BK7m tempo from the BH song selection while theBH MIDI preset selects the style, and then start the accompaniment via foot switch connected to the BK-7m.
  Perhaps it’s possible to use a Bluetooth switch with BH to start the accompaniment by simulating the push of the BH tempo icon/button after I’ve selected the song and MIDI pressetted style from the set list...?