scratch案例——音乐

scratch案例——音乐
附带一点点乐理知识:
scratch案例——音乐
有了前面的准备,现在可以打开Scratch编辑器(程序下载安装的办法见前文),一步步实现文章题目中的愿景了。

首先,我们点击scratch左下角背景编辑区从背景库中选择一副中意的背景图:
scratch案例——音乐
接着,我们进入scratch左下角角色编辑区把捣蛋的小猫赶走,选择与主旨相符的题材:
scratch案例——音乐
然后呢?我们想让前面选中的题材随着音乐律动,所以需要在脚本里加入动作控制(左边的球顺时针旋转即scratch中的右转,右边的球逆时针旋转即scratch中的左转):
scratch案例——音乐
铺垫了这么多,该最后一步了,设法让音乐响起来

先根据最前面的乐谱,整理好对应的scratch音符:
scratch案例——音乐
等不及了,我们简单粗暴就上:
scratch案例——音乐
但是,太粗鄙了。这首曲子还不长,拖几下积木就OK了。如果换一首长点的曲子,那不累死人啦。所以,我们的程序应该换用精致一点的做法。

考虑引入两个scratch列表。一个用来存储音符(见下面中的“音符列表”),一个用来存储对应的节拍(见下图中的“节拍列表”)。休止符呢,就用0表示。接下来我们选择使用一个重复积木,音符列表的项目数就是重复的次数。第一次读取音符列表的第一项,如果该项为0,就使用休止符积木,否则就使用弹奏积木,然后再读取下一项,如此反复,直到处理完整个音符列表。要实现这个效果,我们还得引入一个变量控制读取的位置(见下图中的变量“i”)。进入重复积木前把该变量设定为1,每执行一次重复积木内所有积木的处理,该变量增加1。好啦,附上程序代码图:
scratch案例——音乐
点击音乐播放积木组合,试听一下效果,还不错。

最后我们让程序更酷一点,依次用scratch中的21种乐器弹奏乐曲。为了达到这个效果,得引入了另一个重复积木和变量(作用是控制每次播放音乐说使用的乐器,见下图中的变量“n”)。再在开头引入启动积木,结尾引入停止全部积木,附上最终版程序图:
scratch案例——音乐