Music(音乐)

Microbit开发板拥有一个音乐模块。如果Pin0和GND连接扬声器,调用相应方法,可以播放一些音乐。

播放音乐:

import music
music.play(music.NYAN)

注意:导入music模块;它包含生成和控制声音的方法。

函数

music.set_tempo(ticks=4,bpm=120)

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

建议的默认值允许以下有用的行为:

music.get_tempo()

获取当前节奏作为整数元组:(ticks,bpm)

music.play(music,pin=microbit.pin0,wait=True,loop=False)

music包含上面定义的音乐DSL的播放。

如果music是一个字符串,它将被预期为单个注释,例如'c1:4'

如果music被指定为音符列表(如上面音乐DSL中的部分所定义的),则将它们连续地播放出来。

在这两种情况下,在播放音乐之前,将durationoctave重置为默认值。

指定输出引脚microbit.pin0

如果wait设置True,则阻塞。

如果loop设置为True,则重复播放直到stop被调用(见下文)或被阻塞中断。

music.pitch(frequency,len=-1,pin=microbit.pin0,wait=True)

在指定的时间(单位:毫秒)内播放1个音调。例如,如果frequency为440,len为1000,那么我们听到一种音调(frequency为440)一秒钟。

如果wait设置为True,则此函数处于阻塞状态。

如果len为负,音调将持续播放,直到阻塞被中断。

music.stop(pin=microbit.pin0)

停止给定针脚上的所有音乐播放。

music.reset()

以下列方式重置以下属性的状态:

Micropython包含许多内置音律,你可以使用如下旋律演示:

创建自己的曲调很容易!

每个音符表示为一串字符是这样的:

NOTE[octave][:duration]

每一个音符都有一个名称(比如C调或F调),音阶(向Micropython传递音符音调高低)和周期(音调的持续时间)。音阶由数字表示。0是最低阶,4代表中音C调,8是最高音阶。你应该不会用到8,除非你想魔音穿耳。周期也是由数字表示,数字越大持续时间越长。不同周期值之间互有联系,比如说周期4的持续时间是周期2的两倍等等。如果你调用周期R,Micropython会在指定周期内不发声。

例如,“A1:4”表示1个为A的音符在八度音阶持续播放“4”周期。

列出的基调来创建一个旋律(相当于创建一个动画的图像)。例如,下面是如何使MicroPython播放“Frere Jaques”:

import music

tune=["C4:4","D4:4","E4:4","C4:4","C4:4","D4:4","E4:4","C4:4","E4:4","F4:4","G4:8","E4:4","F4:4","G4:8"]
music.play(tune)

Sound Effects(音效)

Micropython可以让你制作曲调,例如,制作一个警笛声:

import music

while True:
  for freq in range(880,1760,16):
    music.pitch(freq,6)
  for freq in range(1760,880,-16): 
    music.pitch(freq,6)

上面例子中的range用户循环改变曲调。Range(800,1760,16)表示在800到1760之间,每循环一次,freq增加16.(-16每循环一次,减少16)。

注意music.pitch这个实例如何使用。它需要一个频率,例如,频率设置为440,用于调出管弦乐中的A调。

上面例子中的range用户循环改变曲调。Range(800,1760,16)表示在800到1760之间,每循环一次,freq增加16.(-16每循环一次,减少16)。

Examples

from microbit import * 
import music
# play Prelude in C.
notes=['c4:1','e','g','c5','e5','g4','c5','e5','c4','e','g','c5','e5','g4','c5','e5',
'c4','d','g','d5','f5','g4','d5','f5','c4','d','g','d5','f5','g4','d5','f5','b3','d4','g',
'd5','f5','g4','d5','f5','b3','d4','g','d5','f5','g4','d5','f5','c4','e','g','c5','e5',
'g4','c5','e5','c4','e','g','c5','e5','g4','c5','e5','c4','e','a','e5','a5','a4','e5','a5',
'c4','e','a','e5','a5','a4','e5','a5','c4','d','f#','a','d5','f#4','a','d5','c4','d','f#',
'a','d5','f#4','a','d5','b3','d4','g','d5','g5','g4','d5','g5','b3','d4','g','d5','g5','g4',
'd5','g5','b3','c4','e','g','c5','e4','g','c5','b3','c4','e','g','c5','e4','g','c5','b3','c4',
'e','g','c5','e4','g','c5','b3','c4','e','g','c5','e4','g','c5','a3','c4','e','g','c5','e4',
'g','c5','a3','c4','e','g','c5','e4','g','c5','d3','a','d4','f#','c5','d4','f#','c5','d3','a',
'd4','f#','c5','d4','f#','c5','g3','b','d4','g','b','d','g','b','g3','b3','d4','g','b','d','g','b']

music.play(notes)