×

用于音乐应用控制的BLE MIDI Puck

消耗积分:0 | 格式:zip | 大小:0.08 MB | 2023-07-05

张霞

分享资料个

描述

MIDI Puck 是一个多功能控制器,可将旋转手势数据转换为蓝牙低功耗 MIDI。MIDI 一种标准协议,用于将计算机与乐器、舞台灯光和其他面向时间的媒体互连。

我将演示如何将 ON Semiconductor RSL10 用作我的交互式音乐游戏灯光项目和在 Windows 10 上运行的 DAW(数字音频工作站应用程序)的手势控制器。

我还将提供编译示例音乐控制器固件的指南。许多供应商的实现都使用蓝牙 MIDI 协议,并且可以适应您自己的自定义设置。

冰球改变灯光和声音音符
 

使用内置传感器以新颖的方式触发声音和节拍,例如敲打胸部、敲击脚或挥动手套。我想要一个自定义控制器来补充我的其他 MIDI 控制器设备。使用手势控制的小型和可定制的东西。

已经有各种尺寸和形状的 MIDI 控制器。但很少有人使用具有小尺寸且可自定义配置的运动传感器。大多数市售的售价数百美元。更便宜的没有足够的定制。

在我阅读了包含大量传感器的 ON Semiconductor RSL10-SENSE-GEVK的规格后 ,我认为将其变成无线 MIDI 控制器将非常适合此类应用。

硬件

poYBAGOYsh2AeFAOAAaLoJaqF4w123.jpg
SL10-SENSE-DB-GEVB 和 Segger J-Link LITE Cortex-M 调试器
 

RSL10 -SENSE-DB-GEVK套件中包含调试模块,带有连接到运行 IDE 的计算机的 USB 连接器,以及圆板上的接头链接。

优势

  • 无线蓝牙低功耗
  • CR3020超低功耗电池供电
  • 多个传感器 - 环境、运动、环境光、磁性、数字麦克风

按钮映射

RSL10 有 3 个微小的板载内置按钮。

poYBAGOYsiKATyNbAAKMkh3yaLw393.jpg
 

对于我的实现,我将仅使用 3 轴运动传感器和环境光传感器来转换为 MIDI 数据。有 2 个按钮映射到用户功能。

特征

  • 发送控制器数据类型的模式开关
  • 在原始轴控制器数据、音高偏移、基于加速度数据的调制之间循环。
  • 用于切换效果的光传感器

用法

插入电池,开机时 LED 将闪烁黄色。

按中心按钮 = 切换模式

音符鼓

  • 跨 3 个通道发送映射到每个方向轴的音符范围。(默认:通道 1、2 和鼓通道 10)
  • 当 LUX > 60 的光照水平出现时,音符会响起

原始控制器

  • LED闪烁橙色
  • 发送带有映射到不同功能的圆盘的 x、y、z 方向的连续控制器消息 (CC)。(默认为 1、4、7)

弯音机

  • LED 闪烁绿色
  • 通过在 y 轴上旋转圆盘来发送弯音数据

程序变更

  • 发送程序更改消息补丁。
  • 光传感器映射到 CC 5 通道

 

校准(按钮 1)

  • 设置吊舱的旋转俯仰范围
  • 将 PB1 保持在静止位置
  • 按住 PB1 按钮
  • 在这段时间。从运动范围内移动加速度计。点1秒

按钮盖

我使用 CAD (Fusion 360) 为 RSL10 创建了一个封面,以便更轻松地按下按钮。天线和带电池座的电路板安装在底部。

pYYBAGOYsiqAM8EHAAMgObr-I5Q006.jpg
在 Fusion 360 中设计的外壳
 

3d 印刷封面

pYYBAGOYsjGAORCXAAMaKfOTU4Q564.jpg
粗糙但实用的 3D 打印封面
 

将封面和外壳导出为 3d 打印机的 STL 文件。使用 Slicer 程序进行 3D 打印。

用简单的橡皮筋固定器单手操作

太测试了,我用一根长橡皮筋穿过盖子,用两个环把它系在我的手掌上。我后来发现这种安排很方便,灵活舒适。我可以通过卷曲手指来轻松访问按钮。无需用另一只手来操作按钮(如果像带表带的手表一样佩戴)

如果我将手握成拳头,我可以隐藏小冰球。可以对光线传感器进行编程,以在光线不足时停用音符和控制器数据。

 

与电脑通讯

poYBAGOYsjSABmh4AAEKdaWzHnk363.jpg
 

其他创意应用。

除了乐器控制之外,使用 MIDI 协议还可以与MIDI OX等附加软件进行映射,以通过脚本热键、宏、操纵杆和鼠标移动来控制您的 Windows 环境。

固件构建

先决条件

在构建此项目之前,您需要先安装各种软件包、库和开发工具包。

项目设置

该项目基于OnSemiconductor.BDK的“板载传感器测试”项目。将此项目用作模板,通过将其复制到工作区来构建固件。

  • 在 IDE 中,切换到 CMSIS 包管理器。
  • 点击 ONSemiconductor BDK
  • 选择示例文件夹,展开以选择“板载传感器测试”项目
  • 右键单击并选择“复制”
  • 按 OK 关闭对话框
pYYBAGOYsjmAIfw9AAHRS7vZV3g531.jpg
 

展开项目。将项目重命名为“ble_midi_puck”

粘贴到修改后的头文件BLE_ICS.h

poYBAGOYsjyAUSCnAAEO9GIEUFg326.jpg
 

从代码部分粘贴 Midi Puck代码

  • 单击“src”文件夹->右键单击->新建源文件
  • 输入 BLEMIDI.c 作为文件名。粘贴代码
  • 单击“src”文件夹->右键单击->新建头文件
  • 输入 BLEMIDI.h 作为文件名。过去的加热器代码
pYYBAGOYsj6AAydgAAAksPH4owQ739.jpg
 

修改设置

更改自定义蓝牙 LE 协议 ID

#define ICS_SERVICE_UUID                
{ 0x00, 0xc7, 0xc4, 0x4e, 0xe3, 0x6c, \
0x51, 0xa7, 0x33, 0x4b, 0xe8, 0xed, \
0x5a, 0x0e, 0xb8, 0x03 }

#define ICS_TX_CHARACTERISTIC_UUID      
 { 0xf3, 0x6b, 0x10, 0x9d, 0x66, 0xf2, \
0xa9, 0xa1, 0x12, 0x41, 0x68, 0x38, \
0xdb, 0xe5, 0x72, 0x77 }

您可以通过更改main.c中的配置来更改和配置自己的控制器配置分配

/*************** Parameter Configuration ***********************/
#define BLE_DEVICE_NAME "Chuartdo MIDIPuck"
#define SENSOR_SAMPLE_RATE 30
// Midi Continuous controller fuction for each channel
#define CC_FUNC_1 1
#define CC_FUNC_2 4
#define CC_FUNC_3 7

在 Windows 10 PC 上测试Midi Ble 设置

1步

从 Microsoft Store下载并安装Midiberry

这个应用程序将允许您连接和路由从 Puck 生成的 MIDI 数据到

第2步

将 Windows 中的蓝牙配对添加到 MIDI Puck

  • Windows -> 蓝牙设置
  • 添加蓝牙或其他设备
  • 扫描并选择“BLE Midi Puck”
  • 打开迷迭香
  • 在输入设备上选择 MidiPuck
  • 选择 Microsoft GS Wavetable Synth 作为输出设备

这允许您测试 Puck 生成的功能和消息

第 3 步

为路由数据配置 MIDI Berry

  • 在输入设备部分,选择 Midi Puck 设备的名称
  • 在 OUTPUT 部分,选择 MS GS WaveTable Synth
  • 在摇床播放器模式下移动冰球,然后摇晃。

收到的消息列表将滚动。连接到 Windows 默认合成器时也会播放合成声音

pYYBAGOYskGAD45hAACupAySMQg736.jpg
Midi Puck 使用 Midiberry 在 Synth 上演奏音符
 

连接到 DAW 或桌面 Midi 应用程序

我在桌面应用程序的设置中使用了冰球。控制 Windows 10 中的游戏、音乐或音频应用程序。

使用虚拟 MIDI 端口 - 一种在后台运行的软件,用于发送/接收来自其他程序或硬件设备的 MIDI 消息。

我按照此链接使用 LoopMidi(步骤 2 )设置与 DAW 的连接,以创建一个虚拟 MIDI 端口供其他桌面应用程序连接。

poYBAGOYskOAaW-PAADVVhCOvEM725.jpg
通过 loopMidi 端口连接到 DAW 或其他 MIDI 应用程序
 

我按照此链接获取在 Windows 上使用 MIDI 的说明

请参阅您的数字音频工作站 (DAW) 软件指南,了解从 virtuous 端口传入数据的类似设置。

通过程序更改切换声音或用一只手弯曲音符的音高
 
 

结论

ON Semiconductior 的 RSL10 凭借其各种内置传感器制造了出色的便携式控制器。音乐家可以使用便携式 Midi Puck 为现场表演增添新的表现力。

通过使用 Midi over BLE 协议,用户可以控制大量现有的兼容设备和软件。新的 Midi 2.0 标准在设备之间添加了 Property Exchange 通信数据。只需在 RSL10 上安装新的固件,即可实现面向未来的 DIY MIDI 控制器。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !