changing song or "patch" via midi?

Hi BB team and others. Is there any way to change the “song” or “patch” or make any other settings via midi. It would be AWESOM to be able to send midi messages with my iPhone to change songs or what ever. All that would be needed, I believe, is for the BB to accept and act upon these midi messages, and maybe send feedback.

I`ve asked for this very often, and Deafecator sayed this will probably come sometime…
But what happend with Deaf? He was not here for a long time now. Hope he did not get lost:(?

i got the beta 1.77 from the support and now i can switch to songs without bend down via midi.

the command is as follows:
C0 00 00
midi channel 1 / folder 1 / song 1

each folder is limited to 99 songs!


can you give us a more descriptive tutorial? You could That Guy Who Knows How To Change Songs Via Midi :slight_smile:

It uses the standard MIDI bank select and program change mechanisms (you can e.g. control it using MIDI-OX).

0xB0 0x00 0x00 (CC: Bank MSB message)
0xB0 0x20 [folder number] (CC: Bank LSB message)
0xC0 [song number] (Program Change message)

To select Folder 2, Song 3 you issue (bearing in mind they are 0-based):
0xB0 0x00 0x00
0xB0 0x20 0x01
0xC0 0x02

If you’re using the arduino MIDI library, this can be achieved using:
MIDI.send(ControlChange, 0x0, 0, 1);
MIDI.send(ControlChange, 0x20, folderNumber, 1);
MIDI.sendProgramChange(songNumber, 1);

—This just gets better all the time!! Great! Now, it’d be nice if we could just copy and paste instead of having to export and import but then again I have zilch for time and am overtly too lazy to do it correctly! LOL

Or more correctly stated…(as I believe BB is not using hex data)
CC 0 (value 0) CC32 (value 0) which is the first bank or folder then a value of between 0 and 127. In BB’s case I believe the max number in a folder is 99, so it would be 0-99 as the third value to select the song. CC0 and CC 32 are only bank selection tools
So to choose folder 1 song 10 it would be 0.0.10 (again making some assumptions on what conventions BB is adopting)

I have just received my MIDI cable so I can now program up some data on the iPad to send to BB :slight_smile:

Okay to confirm :
00.00.00 = folder 1 song 1
00.00.01 = folder 1 song 2 etc etc
00.01.00 = folder 2 song 1
00.01.01 = folder 2 song 2 etc etc
00.02.00 = folder 3 song 1
00.02.01 = folder 3 song 2 etc etc

where 00 is MSB, second 00 is LSB and third part is the patch number - remember midi numbering is zero based so 0=1, 1=2 etc etc :slight_smile:
I will post more numbers re tempos etc soon.

And courtesy of member ruairiau tempos can be set via CC’s 106 and 107 where 106 is multiples of 128 and 107 is mutiples of 1…examples…

CC106 : 0, CC107 : 90
This gives you 90 BPM. To get 128, you need to do the following…
CC106: 1, CC107 : 0
So to get 200bpm, use:
CC106 : 1, CC107 : 72

I have confirmed these commands all work.

The values I have written are the literal values that need to be sent, not in MIDI or BB notation, to ensure I was being explicit as to what values the BB expects. The notation used doesn’t change the values the BB actually uses, just ensures we all know what numbers we mean.

but you are using hex data, not decimal which could make it confusing. I am providing the decimal MIDI data which is, afaik, what BB accepts - perhaps the developers can chime in and confirm?

The beatbuddy receives MIDI data as binary data (essentially across a serial connection with a custom baud rate). Decimal 32 and hexadecimal 0x20 produce the same binary data - how the BB code chooses to represent the data when it receives and processes it is irrelevant. I do however concur that some people would prefer to read the values in MIDI notation rather than programmer speak :slight_smile:

haha! yes exactly gingercat…that was why I was doing it. I fully understand where you are coming from :slight_smile: re the “nuts and bolts” :slight_smile:

I am pretty sure OnSong will allow users to enter standard MIDI notation to enable a chart, when loaded, to change BB songs and settings. Personally I use Unrealbook, which only uses HEX - one can enter the data as decimal (standard MIDI notation) but it converts the text to hex. A bit annoying really, but it is a great app.

How do i have to write it in RAW Midi data?
[ATTACH=full]2152[/ATTACH] (see attached file)

If you’re entering hex (don’t know that software, it may or may not require the 0x prefix)
0xB0 0x6A 0x01
0xB0 0x6B 0x00

0xB0 0x6A 0x00
0xB0 0x6B 0x78

got it! Here my code for changing tempo 120 bpm
Thank you, Werner

Sorry Werner, I was away all day yesterday at work (I am in Oz) …seems like you figured it okay though - well done! btw usually MIDI data is referred to generally as HEX or Decimal, RAW is not really used anymore. You should be able to now figure this stuff out moving on. Just for interest sake here is one (of many haha) conversion sites

In Setlist maker the song settings page for each song has a field for tempo. Type in the desired tempo and enable “beat clock” in the settings menu. You don’t have to code in tempo as midi. It’s all done for you.