c调python_【掌控】mpython_掌控是个音乐家(new)

这篇博客介绍了如何使用Python的`mpython`库来播放内置音乐和创建自定义乐曲。内容包括理解音乐函数、调整播放速度、认识BPM概念,以及通过列表创建简单的乐曲如小星星和两只老虎。同时,提供了乐理知识和编程练习,帮助读者掌握音乐编程。
摘要由CSDN通过智能技术生成

【学习目标】

1、学习音乐函数的使用

2、播放内置音乐

3、制作自定义乐曲

4、练习列表的使用

【music】

先看下键盘图,方便后面编程时使用:

下面这个图片也能帮助我们。

截图201812011030398212.png (1.81 MB, 下载次数: 1)

2018-12-1 10:30 上传

【演奏内置音乐】

掌控移植了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)

设置播放的速度,一个音节(表示为整数)构成一个节拍。每个节拍将以每分钟的特定频率播放。

建议的默认值允许以下有用的行为: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秒,而对应提供演奏者现实的演奏速度。

练琴时的节拍器。

【自定义乐曲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拍。

请在英文输入状态下输入,‘   ’内为一个音符,不同音符用,隔开。

截图201812011057132297.png (12.03 KB, 下载次数: 1)

2018-12-1 10:57 上传

运行一下程序,很赞哦。

【编程练习:小星星】

小星星,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调的吧。

运行,试听一下,如果有错的地方,再改到正确为止。

自定义音乐,是不是非常简单啊。

【拓展练习】

找一首自己喜欢的曲子,写成代码吧。

更多乐曲库及转化请阅读另一个教程,http://mc.dfrobot.com.cn/thread-272339-1-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值