【掌控】mpython_掌控是个音乐家(new)
【学习目标】1、学习音乐函数的使用
2、播放内置音乐
3、制作自定义乐曲
4、练习列表的使用
【music】
先看下键盘图,方便后面编程时使用:
https://mc.dfrobot.com.cn/data/attachment/forum/201811/29/194608jjjrq3ghuz3qlldd.png
下面这个图片也能帮助我们。
【演奏内置音乐】
掌控移植了micro:bit的音乐库,拥有众多内置乐曲。
from mpython import *
import music
music.play(music.PYTHON)
运行一下听听。
上面代码再加上一行。
music.set_tempo(ticks=16, bpm=160)
from mpython import *
import music
music.set_tempo(ticks=4, bpm=120)
music.play(music.PYTHON)
修改音乐播放速度—--bpm节拍数为80 or 100 or 160,下载到掌控,节拍数和播放速度的关系是________________________.
函数music.set_tempo(ticks=4, bpm=120)设置播放的速度,一个音节(表示为整数)构成一个节拍。每个节拍将以每分钟的特定频率播放。建议的默认值允许以下有用的行为:
[*]music.set_tempo() 将速度设为默认值:ticks = 4,bpm = 120。
[*]music.set_tempo(ticks=8) 改变一个节拍的“定义”。
[*]music.set_tempo(bpm=180) 只改变速度。
【bpm】
BPM是Beat Per Minute的简称,中文名为拍子数,释义为每分钟节拍数的单位。最浅显的概念就是在一分钟的时间段落之间,所发出的声音节拍的数量,这个数量的单位便是BPM。
BPM为每分钟节拍数,是全曲速度标记,为独立在曲谱外的速度标准,一般以一个四分音符为一拍,60BPM为一分钟演奏均匀60个四分音符(或等效的音符组合)。一般记一个四分音符为一拍,一拍即为在当前BPM下的一个四分音符。60BPM对应的曲目速度为一分钟均匀演奏60个四分音符(或等效音符组合),即一个四分音符(或等效音符组合)的时值应为1秒,而对应提供演奏者现实的演奏速度。
练琴时的节拍器。
https://mc.dfrobot.com.cn/data/attachment/forum/201811/30/082551yzela5x8nnxoddnn.gif
【自定义乐曲1】
先用一种简单的方法,用下的代码。
music.play(['C4:4'])
from mpython import *
import music
music.set_tempo(ticks=4, bpm=120)
music.play(['C4:4'])
运行一下,听出来了吧,是中音do.
【乐理知识小仓库】
每个音符表示为一串字符是这样的:NOTE[:duration]
每一个音符都有一个名称NOTE(比如C或F),音阶(向Micropython传递音符音调高低)和周期(音调的持续时间)。
音阶由数字表示。0是最低阶,3代表低音阶,4代表中音阶,5代表高音阶,8是最高音阶。你应该不会用到8,除非你想魔音穿耳。
周期[:duration]也是由数字表示,数字越大持续时间越长。不同周期值之间互有联系,比如说周期4(1拍)的持续时间是周期2(1/2拍)的两倍。如果你调用周期R,Micropython会在指定周期内不发声。
A#表示的是A右边的黑键。
如果一个音符和前面的音符音阶、周期(节拍)一样,只用一个字母表示。
在上面分析基础上,我们可以用列表来写音乐了。
【小练习】
用列表,演奏 1 2 3 4 5 6 7 和高音1,均为1拍。
请在英文输入状态下输入,‘ ’内为一个音符,不同音符用,隔开。
运行一下程序,很赞哦。
【编程练习:小星星】
https://mc.dfrobot.com.cn/data/attachment/forum/201811/30/083245dezmycewmgcyji1v.png
小星星,C调。
再看下图片:
https://mc.dfrobot.com.cn/data/attachment/forum/201811/30/093115dbzqn1im7qzg4o7q.png
from mpython import *
import music
music.set_tempo(ticks=4, bpm=120)
music.play(['c4:4','c','g','g','a','a','g4:8','f4:4','f','e','e','d','d','c4:8',
'g4:4','g','f','f','e','e','d4:8','g4:4','g','f','f','e','e','d4:8',
'c4:4','c','g','g','a','a','g4:8','f4:4','f','e','e','d','d','c4:8'])
试听一下,可以吧。
但是我们通常不这样写,而是定义一个列表。
from mpython import *
import music
notes = ['c4:4','c','g','g','a','a','g4:8','f4:4','f','e','e','d','d','c4:8',
'g4:4','g','f','f','e','e','d4:8','g4:4','g','f','f','e','e','d4:8',
'c4:4','c','g','g','a','a','g4:8','f4:4','f','e','e','d','d','c4:8']
music.set_tempo(ticks=4, bpm=120)
music.play(notes)
【编程练习:两只老虎】
https://mc.dfrobot.com.cn/data/attachment/forum/201811/30/094516snyy7ppq7nyyhqnp.png
这个是E调,就是中音E相当于1,你可以试试写代码哈。
我们找一个C调的吧。
https://mc.dfrobot.com.cn/data/attachment/forum/201811/30/102609s5rdngrw0r0erf02.png
运行,试听一下,如果有错的地方,再改到正确为止。
自定义音乐,是不是非常简单啊。
【拓展练习】
找一首自己喜欢的曲子,写成代码吧。
更多乐曲库及转化请阅读另一个教程,https://mc.dfrobot.com.cn/thread-272339-1-1.html
掌控板图形和代码结合,赞:)) rzegkly 发表于 2018-12-1 16:03
掌控板图形和代码结合,赞
有了这一段时间的理解,重新再走一遍,让课程更充实。{:5_134:}
页:
[1]