25. 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)
  • 注意八度音阶和持续时间值仅在它们发生变化时需要重写,这样书写更简单,更加明了。