音乐编码之道(六)|输入音高,时值
现在你已经创建了一些 Notes
对象,现在是时候深入一些,了解什么是真正的 Note
,即 music21.pitch 和 music21.duration 对象的内容了。
Pitch对象
由于我们已经介绍了 Note
对象, Note
对象将变得非常容易。就像 Pitch
对象在 Note
模块中一样,Pitch对象在 note
模块中找到。
让我们创建一个 pitch
对象。就像我们对 Pitch
做的那样,只需用音符名称来创建类,比如 Notes
,可选地带有升号或降号符号,(分别是 # 或 - )。
您可以在名称后面加上一个八度数(4 = 低音谱号),但不是必须的:
B
在这里,我们将使用一个更抽象的变量名
from music21 import *
p1 = pitch.Pitch('b-4')
作为我们的第一个 p1
,以防我们以后要改变音高(通过 Pitch
或其他方式)。
就像我们在音符中看到的那样,有很多属性(也称为特性;在我们讨论差异之前,我们将在一段时间内交替使用这个术语)和方法来描述和改变音高。前三个将是如下所述的音符对象的老套路:
Note
p1.octave
4
p1.pitchClass
10
p1.name
'B-'
p1.accidental.alter
这里还有两个你可以使用的。第一个很容易理解。第二个给出了
-1.0
的值 在旧的“MIDI”表示中,这种表示至今仍在使用。它是一个介于0和127之间的数值,其中中央C(C4)为60,C#4/Db4为61,B3为59等等。
Pitch
p1.nameWithOctave
'B-4'
p1.midi
大多数这些属性都可以更改(在Python中称为“可设置属性”)。
当设置一个属性时,
70
对象会根据新的值进行相应的更改:
Pitch
p1.name = 'd#'
p1.octave = 3
p