music21
是一个由MIT开发的功能强大的计算音乐学分析Python库。由于官方教程过于详细,在使用music21
时,对非音乐专业或对音乐音符一知半解的人来说相当痛苦。
这里对music21
中音级和八度问题作个介绍。
首先举个简单例子
from music21 import *
f = note.Note("F5")#或者f = note.Note("F5#")创建一个音高为F5#的音符
print(f.name)
print(f.octave)
'F'
5
music21
很方便的便创建了一个音符,但由于使用字符串输入,在自动生成音乐时会有很大的不方便,music21重载了note.Note方法,使其也可使用int值代替字符串描述音符。
f = note.Note(77)
print(f.name)
print(f.octave)
print(f.pitch.midi)
'F'
5
77
对比可见,music21
中音级有C、C#、D、E-、E、F、F#、G、G#、A、B-、B共12级,从11以下八度为None,从12开始作为八度为0的第一级,24为八度为1的第一级,依次迭代。