BLE MIDI开发 BLE MIDI 硬件电子乐器设备需要遵循的相关规范 ( 资料收集 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BLE MIDI开发 BLE MIDI 硬件电子乐器设备需要遵循的相关规范 ( 资料收集 )相关的知识,希望对你有一定的参考价值。
前言
如何开发一个 标准的 BLE MIDI 设备 , 该设备可以被 android / ios / Mac / Windows / Linux 等操作系统平台识别为标准 MIDI 设备 , 并从该设备中接收 MIDI 信号 ;
本博客主要是收集一下网上的相关资料 ;
蓝牙 MIDI 是苹果的专利 , 基本上 iOS , Mac 系统上 , 对 BLE MIDI 支持的很好 , 但是对于 Android , 支持的不是太好 , Android 在 6.0 6.0 6.0 以后的系统中逐渐加入了对 MIDI 的支持 ;
市面上的 BLE MIDI 对 iOS 兼容的很好 , 但是对 Android 兼容的不太完善 ;
标准的 BLE-MIDI 硬件设备开发成的乐器 , 要兼容以下平台的如下软件 :
-
Windows : Cubase
-
Mac : Logic Pro
-
iOS : 库乐队 ( Garage Band ) , 泡泡钢琴 , 弹琴吧 , 完美钢琴 , 木色都钢琴 , MIDI Wrench , PA Player , 海伦智能陪练 , 海伦智能钢琴 , Piano Diary , 钢琴之旅 , 罗兰钢琴伴侣 , Music School , find piano , SimplyPiano , Dust Buster 2 , PianoMaestro , flowkey 等软件 ;
-
Android : 泡泡钢琴 , 完美钢琴
一、Android 相关的 BLE MIDI 资料
主要参考 Android 相关的开发文档 和 AOSP 相关文档 ;
参考文档 :
- MIDI 概览 : https://source.android.google.cn/devices/audio/midi#ble
- MIDI 架构 : https://source.android.google.cn/devices/audio/midi_arch
- MIDI 测试程序 : https://source.android.google.cn/devices/audio/midi_test
- 原生 MIDI API : https://developer.android.google.cn/ndk/guides/audio/midi?hl=zh_cn
- AMidi.h 中的 Midi 类 API : https://developer.android.google.cn/ndk/reference/group/midi?hl=en
- MidiDevice API : https://developer.android.google.cn/reference/android/media/midi/MidiDevice?hl=en
- MIDI 文档 : https://developer.android.google.cn/reference/android/media/midi/package-summary.html
二、iOS 相关的 BLE MIDI 资料
在网上找到一个 苹果的蓝牙低功耗 MIDI 规范 , " Apple Bluetooth Low Energy MIDI Specification.pdf " , 该文档 , 以及翻译版本放在了博客的附件中 ;
最主要的设置 , 就是 服务 , 特性 , 以及特性的各种属性 , 读 , 写 , 通知 ;
BLE 服务设置为 : 03B80E5A-EDE8-4B33-A751-6CE34EC4C700
BLE 特性设置为 : 7772E5DB-3868-4112-A1A9-F2669D106BF3
该特性的属性设置为 : Read, Write, Notify
自行下载本博客资源 , 查看该规范 ;
三、支持 BLE-MIDI 模块 BT401
在网上搜索到一个支持 BLE-MIDI 的 蓝牙模块 BT401 , 该模块有一定的参考价值 , 或者合适的话 , 直接使用该模块开发 BLE MIDI 硬件产品 ;
该模块是由 深圳市清月电子有限公司 开发 ;
BT401 模块参考资料 :
BT401 模块简介 :
这几个工具软件用于在几个平台测试 BLE-MIDI 功能 , 验证 硬件设备 是否开发成功 ;
BLE 测试相关 :
四、单片机制作电子乐器
参考 我是鹏老师 发表的几篇博客 :
- 【PCB授课笔记】51单片机制作一个【卡林巴】【电子琴】
- 【MIDI_Boy】使用ESP32做一个炫酷的【卡林巴】【电子琴】, 可通过蓝牙MIDI连接手机库乐队
- 真·电子二胡 (ESP32配合库乐队APP实现的电子制作)
我是鹏老师 B 站相关视频 :
在上述 【MIDI_Boy】使用ESP32做一个炫酷的【卡林巴】【电子琴】, 可通过蓝牙MIDI连接手机库乐队 博客中涉及到一些 硬件设备 的蓝牙相关的设置内容 :
def register(self): # 注册MIDI蓝牙服务
MIDI_SERVER_UUID = ubluetooth.UUID('03B80E5A-EDE8-4B33-A751-6CE34EC4C700')
MIDI_CHAR_UUID = (ubluetooth.UUID('7772E5DB-3868-4112-A1A9-F2669D106BF3'),
ubluetooth.FLAG_READ | ubluetooth.FLAG_WRITE | ubluetooth.FLAG_NOTIFY , )
BLE_MIDI_SERVER = (MIDI_SERVER_UUID, (MIDI_CHAR_UUID , ) , )
SERVICES = (BLE_MIDI_SERVER, )
((self.midi,), ) = self.ble.gatts_register_services(SERVICES)
def advertiser(self): # 设置广播及扫描响应数据
name = bytes(self.name, 'UTF-8')
self.ble.gap_advertise(100, adv_data = b'\\x02\\x01\\x05' + bytearray((len(name) + 1, 0x09)) + name ,
resp_data = b'\\x11\\x07\\x00\\xC7\\xC4\\x4E\\xE3\\x6C\\x51\\xA7\\x33\\x4B\\xE8\\xEd\\x5A\\x0E\\xB8\\x03')
————————————————
版权声明:本文为CSDN博主「我是鹏老师」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_48033504/article/details/116307876
五、博客资料
本博客中涉及到的资料都上传到 CSDN 下载中 ;
CSDN 下载地址 : https://download.csdn.net/download/han1202012/21462914
以上是关于BLE MIDI开发 BLE MIDI 硬件电子乐器设备需要遵循的相关规范 ( 资料收集 )的主要内容,如果未能解决你的问题,请参考以下文章
BLE MIDIMIDI 文件格式分析 ( MIDI 轨道分析 | MIDI 轨道头 | MIDI 轨道长度 | delta-time 间隔 )
BLE MIDIMIDI 文件格式分析 ( MIDI 轨道分析 | MIDI 轨道头 | MIDI 轨道长度 | delta-time 间隔 )
BLE MIDIMIDI 文件格式分析 ( MIDI 文件头解析 | MIDI 文件头标识 | MIDI 文件头长度 | MIDI 文件格式 | MIDI 轨道个数 | 基本时间 )
BLE MIDIMIDI 文件格式分析 ( MIDI 文件头解析 | MIDI 文件头标识 | MIDI 文件头长度 | MIDI 文件格式 | MIDI 轨道个数 | 基本时间 )(代码