没有合适的播放音乐,如何自己编译音乐文件,我自己尝试编辑了Merry Chrismas,方法在这里分享一下
使用蜂鸣器播放音乐,控制的步骤是按照拍子(或时长)来播放特定的音调(单音正弦波)
问题就是如何确认乐谱上的音符对应的频率和时长
以下是从 http://www.bowenwang.com.cn/guitar2.htm网址总结,有兴趣的同学可以自行研究
音调是以某一特定频率重复出现的声音。
这种特定音调组合称为大调音阶。音阶中的每个音调乘以特定分数,得出该音阶中的下一个音调。下面是大调音阶的工作原理:
264 Hz:C,do(乘以9/8得出;)
297 Hz:D,re(乘以10/9得出;)
330 Hz:E,me(乘以16/15得出;)
352 Hz:F,fa(乘以9/8得出;)
396 Hz:G,so(乘以10/9得出;)
440 Hz:A,la(乘以9/8得出;)
495 Hz:B,ti(乘以16/15得出;)
528 Hz:C,do(乘以9/8得出;)
像分数一样,名称也完全是任意的。只要这些音调悦耳即可。
值得注意的是,这两个C调正好相隔一倍:264是528的一半,这就是八度的基础。任何音调的频率都可加倍,即“上升一个八度”,
同时任何音调的频率也可减半,即“下降一个八度”。
根据mBlock程序中自带的播放音调模块对应频率
音乐频率对应表
C2 65;D2 73; E2 82;F2 87;G2 98;A2 110;B2 123;
C3 131;D3 147;E3 165;F3 175;G3 196;A3 220;B3 247;
C4 262;D4 294;E4 330;F4 349;G4 392;A4 440;B4 494;
do(1) re(2) me(3) fa(4) so(5) la(6) ti(7)
C5 523; D5 587;E5 659;F5 698;G5 784;A5 880;B5 988;
可知预制频率对应的C调乐谱
还有就是在乐谱上有几分之几,还有一分钟的拍数,分母代表几个小节,分子代表每小节的拍数.(我找的这个谱子没有拍数)
出来的时长肯定是有偏差的,有知道的同学也给留个言
有兴趣的同学可以试一试
附件是程序
mBot演奏圣诞歌曲Merry源程序
来自:jzb1128
未经允许不得转载:木果创客mbot机器人 » mBot如何制作美妙的圣诞节音乐
评论前必须登录!
注册