6517| 2
|
[入门教程] 【掌控】mpython_掌控是个音乐家(new) |
【学习目标】 1、学习音乐函数的使用 2、播放内置音乐 3、制作自定义乐曲 4、练习列表的使用 【music】 先看下键盘图,方便后面编程时使用: 下面这个图片也能帮助我们。 【演奏内置音乐】 掌控移植了micro:bit的音乐库,拥有众多内置乐曲。 [mw_shl_code=python,true]from mpython import * import music music.play(music.PYTHON)[/mw_shl_code] 运行一下听听。 上面代码再加上一行。 music.set_tempo(ticks=16, bpm=160) [mw_shl_code=python,true]from mpython import * import music music.set_tempo(ticks=4, bpm=120) music.play(music.PYTHON)[/mw_shl_code] 修改音乐播放速度—--bpm节拍数为80 or 100 or 160,下载到掌控,节拍数和播放速度的关系是________________________. 函数 music.set_tempo(ticks=4, bpm=120) 设置播放的速度,一个音节(表示为整数)构成一个节拍。每个节拍将以每分钟的特定频率播放。 建议的默认值允许以下有用的行为:
【bpm】 BPM是Beat Per Minute的简称,中文名为拍子数,释义为每分钟节拍数的单位。最浅显的概念就是在一分钟的时间段落之间,所发出的声音节拍的数量,这个数量的单位便是BPM。 BPM为每分钟节拍数,是全曲速度标记,为独立在曲谱外的速度标准,一般以一个四分音符为一拍,60BPM为一分钟演奏均匀60个四分音符(或等效的音符组合)。一般记一个四分音符为一拍,一拍即为在当前BPM下的一个四分音符。60BPM对应的曲目速度为一分钟均匀演奏60个四分音符(或等效音符组合),即一个四分音符(或等效音符组合)的时值应为1秒,而对应提供演奏者现实的演奏速度。 练琴时的节拍器。 【自定义乐曲1】 先用一种简单的方法,用下的代码。 music.play(['C4:4']) [mw_shl_code=python,true]from mpython import * import music music.set_tempo(ticks=4, bpm=120) music.play(['C4:4'])[/mw_shl_code] 运行一下,听出来了吧,是中音do. 【乐理知识小仓库】 每个音符表示为一串字符是这样的: NOTE[octave][:duration] 每一个音符都有一个名称NOTE(比如C或F),音阶(向Micropython传递音符音调高低)和周期(音调的持续时间)。 音阶[octave]由数字表示。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拍。 请在英文输入状态下输入,‘ ’内为一个音符,不同音符用,隔开。 运行一下程序,很赞哦。 【编程练习:小星星】 小星星,C调。 再看下图片: [mw_shl_code=python,true]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'])[/mw_shl_code] 试听一下,可以吧。 但是我们通常不这样写,而是定义一个列表。 [mw_shl_code=python,true]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)[/mw_shl_code] 【编程练习:两只老虎】 这个是E调,就是中音E相当于1,你可以试试写代码哈。 我们找一个C调的吧。 运行,试听一下,如果有错的地方,再改到正确为止。 自定义音乐,是不是非常简单啊。 【拓展练习】 找一首自己喜欢的曲子,写成代码吧。 更多乐曲库及转化请阅读另一个教程,https://mc.dfrobot.com.cn/thread-272339-1-1.html |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed