Go Down

Topic: Successfully sending MIDI CC over Bluetooth? (Not note on/off) (Read 935 times) previous topic - next topic


Hi there,

I recently got a few adafruit bluefruit feather LE boards as I read that they can send MIDI over USB:

I tried one and yes indeed, it sure can. However, it only seems to be able to send note values and not continuous control messages for pots/sliders etc..

The only examples I see of midi being sent are in these examples, and they only concern note on/off:

I have already posted on the Adafruit forum and no response so I'm just wondering if anyone on here has found a way to send CC over bluetooth?

p.s. if this post is not permitted as it's not an Arduino product then my apologies.

Thank you :)


CC messages are almost identical to note messages. Just replace the 0x8 or 0x9 status nibble (for note off and note on resp.) with the 0xB status nibble for CC. Data 1 is the controller number instead of the note number, and data 2 is the CC value instead of the velocity.



Thanks so much for your response. So, if I understand you correctly, the setup would not be like this?:

Code: [Select]
  // send note on
  midi.send(0x90, current_note, 0x64);

  // send note off
  midi.send(0x80, current_note, 0x64);

  // Send cc instead
  midi.send(0xB, contoller_number, ccvalue);

"midi.send" is the function used in the BLE library for the Adafruit controller


Almost, 0xB is the high nibble of the status byte. The low nibble is the channel (0x0 - 0xF for channels 1 - 16 respectively). So if you want to send on channel 1, you use 0xB0 as status byte, 0xB1 for channel 2, 0xB2 for channel 3, etc.


Great. Thanks so much for clearing that up:) I was used to using the midi serial midi library which has separate functions for notes and cc's. That's why I was confused.

I'll test this out asap and report back!


I am not the OP but I am having an issue sending CC messages using the adafruit blemidi library. I was able to successfully send a CC signal, but it is hit and miss. If I print my Cc value to the serial monitor, I can see that it is changing, so the hardware setup seems to be fine, but it only occasionally sends the signal (testing by controlling loopcommunity PRIME via midimittr). Is there a way to flush the midi commands to ensure they actually send?

Go Up