查看: 903|回复: 6

[教程] 掌控板+Blynk+MIDI模块 ,一个人就是一支乐队!

[复制链接]
本帖最后由 铁熊 于 2020-6-15 13:09 编辑

视频封面.png


怎么也没想到,我,一个五音不全、乐理不通的人,有一天会来分享音乐相关的作品。还不是因为疫情隔离期间,家里没啥动静,实在太无聊了,总想搞点声音出来!

问号脸.jpg


所以就想到了 MIDI 模块。haodaMIDI 模块可以接入各种控制器控制如 micro:bit、掌控板、好搭酷、Arduino、徽章板等。haodaMIDI 模块带耳放,可以接耳机播放。硬音源带 128 种乐器音色,60 余种打击乐器,可以图形化编程,控制简单,完全可以制作各种电声乐器,或自动演奏乐器,相当于一支乐队。

就是它.png


由于 haodaMIDI 能演奏的乐器和音色实在是太多了,而我又不懂音乐,但是却硬想要涨涨知识装装逼、听听看每种乐器的效果。这可怎么办才好呢?如果用编程的方式将每一个音色去试一遍,每试一个音色,就要重新编程,然后重新上传程序,那岂不是太麻烦了,估计就算花几天时间,都试不过来。相信大家也碰到过类似的问题,制作 MIDI 作品时,到底用哪个音色呢?怎么测试呢?有没有简单方便的测试办法呢?

给我安排.jpg


当然有!这时候 Blynk 就派上用场了。我们可以用 Blynk 做一个万能 MIDI 试音器,想要知道不同音色听起来是什么效果,直接在 Blynk 里面简单设置一下就行了。

Blynk 不需要任何实体按键,只要一个手机,想要多少按键,就可以设置多少按键,接线简单,成本低廉。再配合 haodaMIDI 模块,不要说万能 MIDI 试音器了,一个人组一支乐队完全都没有问题!不信?你看:



是不是很羡慕?也想拥有一支自己的乐队?那就继续往下看吧,手把手教你自制乐队!

# 电路连接 #

这里我们使用掌控板来编程,因为掌控板同时支持 Wi-Fi 和蓝牙,可以任选一种方式和 Blynk 进行连接。haodaMIDI 接在掌控板 P0 引脚。当然我们接线的时候,需要通过扩展板,这里画图偷懒了一下,把扩展板省略了。音箱或者耳机可以直接与 haodaMIDI 的耳机口连接。电路连接效果如下图所示:

电路图.png


这个电路相当简单,这里就不多做介绍了,相信你分分钟就搞定了。


# Blynk 项目设置 #

设置完电路,接着进行 Blynk App 设置。

在 Blynk App 中新建一个项目,取名就叫“MIDI 乐队”。然后拖入一个 Tabs 模块,方便设置多个界面。分别给这些 Tab 命名为“旋律”、“打击乐”、“MORE”等,你也可以根据自己的需求,设置更多的 Tab,这样可以让项目更加完善。

首先我们在“旋律”分栏中设置如下界面,可以大概设置成类似钢琴按键的样子。由于 Blynk 模块位置拖动的限制,钢琴黑键不能放在两个白键之间,所以只能放在白键的边上。然后用两个 Step V 模块,分别设置音阶和音色调节按键,其中音阶的调节范围是:-1~9,;音色的调节范围是:0~127。然后再拖入一个 Vertical Slider 模块,用来调节音量,这里我将音量的调节范围设置为:0~100。所有模块的虚拟引脚设置如下左图所示,运行后每个按键显示的音符标号如下右图所示。

旋律设置.png


在“打击乐”分栏中,拖入一些 Button 模块,用来设置并模拟各种打击乐。根据自己的喜好设置自己想要的打击乐即可。每个按键的虚拟引脚编号和代表的乐器如下图所示。

打击乐设置.png


关于 Blynk 更多详细的教程,这里不再展开,感兴趣的朋友,可以去购买笔者和裘炯涛老师一起写的书《物联网,So Easy》。

本书是基于 Blynk 物联网平台而写的,书中用到了 Arduino 代码和 Mixly 图形化编程两种模式来进行教学,在原理与使用方法上与 Mind+ 版的 Blynk 基本一致,读者可以参考学习。(妈呀,又是广告,防不胜防!)

封面.jpg



# 程序编写 #

接下来开始编写程序,这次我们采用 Mind+ 图形化软件来进行编程。

## 添加模块

在编程时,我们主要用到两个库:Blynk 和 haodaMIDI 音乐模块。由于这两个库不是 Mind+ 的内置库,所以我们需要手动添加。

打开 Mind+ 软件,添加完主控板之后,在用户库中搜索“铁熊”或者“Blynk”,即可添加 Blynk 模块。没错,这里透露一个小技巧,Mind+ 用户库支持搜索了。

关于 Mind+ 中 Blynk 模块的更多介绍,请跳转:Blynk扩展库正式发布!Mind+软件中也能愉快地使用Blynk物联网平台了!

搜索blynk.png


添加完 Blynk 模块之后,再来添加 haodaMIDI 模块,在搜索栏中输入网址:https://gitee.com/liliang9693/ext-haodamidi,即可看到 haodaMIDI 音乐模块,点击添加即可。haodaMID 模块,暂时还不支持搜索,不过后面应该会支持。关于 haodaMIDI 编程模块的更多介绍,也可以跳转上述网址查看介绍。

添加haodaMIDI.png


添加完两个模块之后,就可以开始愉快的编程啦。其实程序很简单,我这里将它们分成 4 个部分。

## 主程序部分

首先是主程序部分。在主程序中,我们设置了几个变量:音量、音阶、音色,方便后面进行动态调节。然后初始化 haodaMIDI 和 Blynk 服务。

主程序.png


## 设置部分

然后是设置部分。在设置部分中,我们可以动态从 Blynk App 中接收状态变化,去调节音量(0~100)、音阶(-1~9)、音色(0~127)等。音量比较好理解,音阶其实代表的声音是低沉还是尖锐,音色代表的其实就是不同的乐器。具体不同的编号分别代表哪种乐器,可以在文末附录查询。这里通过改变音色的数值,就可以方便的改变想要使用的乐器了。

初始化设置.png


## 音符旋律部分

接着是音符旋律乐部分,也就是对应我们 Blynk App 中设置的钢琴按键,这些按键包括:C、C#、D、D#、E、F、F#、G、G#、A、A#、B,总共 12 个音符,这些音符再配合 10 个音阶,每种乐器都可以发出 120 种声音。然后再配合上面的 128 种音色设置,所以这部分总共可以发出 120×128=15360 种声音,Amazing!通过变量的方式,我们用很短的几句程序,竟然可以实现那么多种声音!这也充分说明了合理使用变量,可以大大简化程序。

钢琴部分.png


这里放一张 MIDI 音符代码表,大家可以看一下音符(C~B)、音阶(-1~9)与对应代码(0~127)的关系。实际上程序底层就是根据音符和音阶,向 haodaMIDI 模块发送对应的代码 0~127。

MIDI音符代码表.png


## 打击乐器部分

最后是打击乐器部分。为什么要把打击乐与前面的乐器分开呢?

这是因为打击乐是不需要设置音阶和音符的,每种打击乐器只能发出一种声音,比如我们熟悉的鼓可以发出“咚咚咚”的声音,锣可以发出“乓乓乓”的声音。打击乐的编程如下图所示,这里我偷懒一下,只挑选了部分打击乐器,没有想上面一样,把所有的打击乐器都包含在内,实际上是可以包含所有打击乐器的。

打击乐部分.png


至此,完整的程序就编写完整了。


# 音乐就是要分享 #

前面的部分,我们已经完成了所有硬件和软件的设置,那么视频中看到的多人多台设备演奏是怎么实现的呢?

其实很简单,只要在 Blynk 项目设置中,将 SHARED ACCESS 设置打开,然后点击 Generate Link 就会生成一个二维码,别的伙伴只要打开他的 Blynk App 扫描这个二维码,就会在他的手机中出现这个项目。当你对项目改动之后,别的手机上也会自动同步。

share.png


这时,你们就可以在不同的分栏里同时演奏不同的乐器啦,当然你们也可以在同一个分栏里演奏同一个乐器。另外,你也可以根据你的乐队需要,在不同的分栏里设置不同的乐器,硬件端几乎不用改变,程序也几乎不用变化,只要在手机里简单设置一下,你的乐队属性马上发生变化!流行乐?摇滚风?金属感?朋克?一切都可以随心而动!

Let's rock!!!

# 附录:音色编码对照表 #

这里还是偷懒惹的锅,其实在 Blynk App 中可以设置音色显示对应的乐器名称的,但是懒得打字了,所以就放一张对照表方便查询吧。

音色对应表1.png



# 程序下载 #

欢迎关注公众号:铁熊玩创客,不定期更新创客制作、技术教程、创客教育等相关内容。

回复“MIDI乐队”获取本文对应的完整程序与 Mind+ 离线扩展库。

微信二维码引导.png





帅猫  中级技师

发表于 2020-4-4 19:42:49

表示你钢琴键盘上的字写错了
回复

使用道具 举报

DFHJM_IpFmV  中级技师

发表于 2020-6-13 14:39:13

陈老师,这个“haodaMIDI”在商城上有卖吗?
如果没有,我可不可以向你要一个?
回复

使用道具 举报

铁熊  初级技神
 楼主|

发表于 2020-6-14 12:09:30

DFHJM_IpFmV 发表于 2020-6-13 14:39
陈老师,这个“haodaMIDI”在商城上有卖吗?
如果没有,我可不可以向你要一个? ...

这个很贵的,188元一个
回复

使用道具 举报

铁熊  初级技神
 楼主|

发表于 2020-6-14 12:41:45

帅猫 发表于 2020-4-4 19:42
表示你钢琴键盘上的字写错了

请问哪里写错了呢?
回复

使用道具 举报

DFHJM_IpFmV  中级技师

发表于 2020-6-15 16:32:25

铁熊 发表于 2020-6-14 12:09
这个很贵的,188元一个

商城上有吗?
回复

使用道具 举报

帅猫  中级技师

发表于 2020-6-15 21:39:59

帅猫 发表于 2020-4-4 19:42
表示你钢琴键盘上的字写错了

呕吼,当时看走眼了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail