4977| 5
|
[入门教程] Microbit演奏音乐《心愿》 |
这个作品是刚开始学习 micro:bit 的时候创作的,由四个女生演唱的歌曲《心愿》。 材料清单
步骤1学习乐曲编程 首先要会看简谱。简谱音符上面有个点代表高音,下面有个点代表低音,没有点就是中音。其次要会看节拍。简谱音符没有下划线为一拍,一根下划线为二分之一拍,两根下划线为四分之一拍。减号是休止符,代表一拍。下面以诺基亚经典铃声为例,介绍乐曲编程的过程。 首先设置乐曲的基本速度。这个可以以后调整,暂定为 100,也就是每分钟 100 个节拍。 然后开始对照简谱一一设置每个音符的参数:具体是哪个音符,是高音、低音还是中音(没有点),到底是几拍的。这里我们假设没有下划线的为一拍。编写好的代码如下,就是比较费时间。 步骤2编写代码 搜索《心愿》的简谱。 对照简谱完成代码编写。其中重复的部分用到了循环结构,以减少重复操作。当然复制也可以,但是代码就更长了~~~~~ 最后就是那么长!!! 代码 [mw_shl_code=c,true]#include <Microbit_Sound.h> void setup() { MSound.setSpeed(100); } void loop() { for (int count = 0; count < 2; count++) { MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 330, BEAT_1); MSound.playTone(0, 330, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 262, BEAT_1); MSound.playTone(0, 294, BEAT_1_4); MSound.playTone(0, 330, BEAT_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 262, BEAT_1); MSound.playTone(0, 262, BEAT_1); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 220, BEAT_2); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 247, BEAT_1); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 196, BEAT_1); MSound.playTone(0, 196, BEAT_1_4); MSound.playTone(0, 247, BEAT_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 196, BEAT_1_2); MSound.playTone(0, 220, BEAT_1); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 220, BEAT_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 330, BEAT_1); MSound.playTone(0, 330, BEAT_1_2); MSound.playTone(0, 392, BEAT_1_2); MSound.playTone(0, 392, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 330, BEAT_1_2); MSound.playTone(0, 294, BEAT_1); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_1); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 330, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 220, BEAT_1); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 247, BEAT_1); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 196, BEAT_1); MSound.playTone(0, 196, BEAT_1_4); MSound.playTone(0, 247, BEAT_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 196, BEAT_1_2); MSound.playTone(0, 220, BEAT_1); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 220, BEAT_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 330, BEAT_2); MSound.playTone(0, 349, BEAT_1_2); MSound.playTone(0, 330, BEAT_1_2); MSound.playTone(0, 294, BEAT_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 330, BEAT_1_2); MSound.playTone(0, 262, BEAT_2); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 247, BEAT_1); MSound.playTone(0, 247, BEAT_1); MSound.playTone(0, 196, BEAT_1); MSound.playTone(0, 330, BEAT_4); MSound.playTone(0, 330, BEAT_1); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 330, BEAT_2); MSound.playTone(0, 330, BEAT_1_2); MSound.playTone(0, 392, BEAT_1_2); MSound.playTone(0, 294, BEAT_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 330, BEAT_1_2); MSound.playTone(0, 262, BEAT_2); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 247, BEAT_1); MSound.playTone(0, 247, BEAT_1); MSound.playTone(0, 196, BEAT_1); MSound.playTone(0, 220, BEAT_4); MSound.playTone(0, 220, BEAT_1); } MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 330, BEAT_1); MSound.playTone(0, 330, BEAT_2); MSound.playTone(0, 294, BEAT_1); MSound.playTone(0, 294, BEAT_1); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 330, BEAT_1_2); MSound.playTone(0, 262, BEAT_1); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 220, BEAT_1); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 220, BEAT_1); MSound.playTone(0, 330, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 294, BEAT_1); MSound.playTone(0, 330, BEAT_4); MSound.playTone(0, 330, BEAT_1); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 330, BEAT_2); MSound.playTone(0, 330, BEAT_1); MSound.playTone(0, 349, BEAT_1); MSound.playTone(0, 294, BEAT_1); MSound.playTone(0, 220, BEAT_1); MSound.playTone(0, 294, BEAT_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 220, BEAT_1); MSound.playTone(0, 262, BEAT_1); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 247, BEAT_1); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 196, BEAT_1_2); MSound.playTone(0, 262, BEAT_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 330, BEAT_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 330, BEAT_2); MSound.playTone(0, 330, BEAT_1); MSound.playTone(0, 349, BEAT_1); MSound.playTone(0, 294, BEAT_1); MSound.playTone(0, 220, BEAT_1); MSound.playTone(0, 294, BEAT_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 220, BEAT_1); MSound.playTone(0, 262, BEAT_1); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 247, BEAT_1); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 196, BEAT_1_2); MSound.playTone(0, 262, BEAT_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 220, BEAT_2); MSound.playTone(0, 220, BEAT_1_2); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 247, BEAT_1); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 294, BEAT_1_2); MSound.playTone(0, 196, BEAT_1_2); MSound.playTone(0, 262, BEAT_4); MSound.playTone(0, 262, BEAT_1); MSound.playTone(0, 247, BEAT_1_2); MSound.playTone(0, 262, BEAT_1_2); MSound.playTone(0, 220, BEAT_4); MSound.playTone(0, 220, BEAT_1); }[/mw_shl_code] 附件 原帖发布于:https://makelog.dfrobot.com.cn/article-1668.html |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed