6.3 播放自定义音调

  • 在音乐相关API中有一个API,music.play()的描述为,如果给定一个音符列表,就按顺序播放每一个音符,基于这个条件,我们可以谱写我们自己喜欢的音乐。

  • 每一个音符都表示为一串字符,代码如下: NOTE[octave][:duration]

  • 例如:”A1:4”指的播放在第一个八度中音阶命名为A的音符,持续时间为4。

  • 创建一个列表用于存放旋律音符(类似于存放坐标点图像的列表),例如

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","G4:2","A4:2","G4:2","F4:2","E4:4","C4:4","G4:2","A4:2","G4:2","F4:2","E4:4","C4:4","C4:4","G3:4","C4:8","C4:4","G3:4","C4:8"]

music.play(tune)
  • 这段代码演奏了著名儿歌《两只老虎》:C大调每分钟120拍。

  • MicroPython可以帮助您简化这些代码。在您下次更改它们之前,它会记住八度音程和持续时间值。

  • 上面的例子可以重新简写为:

import music 
tune = [“C4:4”,“D”,“E”,“C”,“C”,“D”,“E”,“ C“,”E“,”F“,”G:8“,”E:4“,”F“,”G:8“] 
music.play(tune)
  • 注意八度音阶和持续时间值仅在它们发生变化时需要重写,这样书写更简单,更加明了。

一首复杂的乐曲

from microbit import *
import music

notes = [
    'c4:1', 'e', 'g', 'c5', 'e5', 'g4', 'c5', 'e5', 'c4', 'e', 'g', 'c5', 'e5', 'g4', 'c5', 'e5',
    'c4', 'd', 'a', 'd5', 'f5', 'a4', 'd5', 'f5', 'c4', 'd', 'a', 'd5', 'f5', 'a4', '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',
    '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)

 


评论:
相关文章
基于STEM教育的《人工智能教学 micro:bit智能交通灯》教学案例

渝中区“创新杯”优秀教育教学案例评选活动,是区内教师展示优秀教育教学成果、分享先进教育教学经验的重要品牌活动。为更好地推广获奖成果,搭建学术交流平台,


micro:pet 项目

这个项目为学生提供了一个机会,让他们为他们在 Unplugged 活动中采访的伙伴创建一个 micro:pet。


全球首款桌面级树莓派双轮足机器人问世!哈工大创业团队出品

近日,全球规模最大、最具影响力的众筹平台Kickstarter就发售了这样一种全新形态的桌宠机器人——全球首款桌面级树莓派双轮足机器人XGO-Rider。


通过数据流式处理器使用 micro:bit 和生成代码

本教程介绍如何使用生成代码平台编写一个简单的程序,该程序使用 Microsoft Data Streamer 加载项将实时数据从 BBC micro:bit 发送到 Microsoft Excel。


富有创意的micro:bit机器人和物联网项目合集

本文将向您展示一些关于2023年机器人和物联网的最有趣和创新的micro:bit项目。

Micropython for Micro:bit 教程

共37讲

Micropython for Micro:bit 教程