十八 音乐编码之道| 调与调号

音乐编码之道(十八)| 调与调号
## 调与调号`ks2.alteredPitches`还有一个方法可以让我们看到任何给定音阶的升降记号:```python[, ]
ks2.('C')

ks2.('E') is None
注意 , 我们只给出了C到B的字母名称的字符串 。这样是行不通的:
True
我们可以创建带有荒谬数量升号的调号,并得到奇怪的升降记号:
ks2.accidentalByStep('C#')ks12 = key.KeySignature(12)ks12.accidentalByStep('F')
这些荒谬的调号在一些程序(如)中显示,并导出到,但在大多数阅读器中不显示 。
谱号和音符一样可以移调,将每个音符都移动:
ks4 = ks2.transpose('M2')ks4

十八  音乐编码之道| 调与调号

文章插图
并且事后可以更改升号的数量:
ks4.sharps = 0ks4
我们可以得到与谱号对应的大调或小调音阶:
ks2.getScale('major')ks2.getScale('minor')
我们稍后会看到如何使用音阶 。
如果我们将一个放入一个中,我们就可以看到它:

注意Note 'C’被视为C自然音 , 因此需要在前面加上自然记号 。然而,音符F#不需要自然记号来显示 。在调用流的
m = stream.Measure()m.insert(0, meter.TimeSignature('3/4'))m.insert(0, ks2)d = note.Note('D')c = note.Note('C')fis = note.Note('F#') # German namem.append([d, c, fis])m.show()
过程中,复制了音符并将F#的.show()设置为.pitch..,并为C音符创建了一个具有自然记号和显示状态为True的变化音 。然后这些副本被丢弃,所以我们在这里看不到它们:
False
十八  音乐编码之道| 调与调号

文章插图
但我们也可以调用
fis.pitch.accidental.displayStatus
或者.(=True)在小节上手动完成这个操作:
.(=True)
m.makeAccidentals(inPlace=True)fis.pitch.accidental.displayStatusFalsec.pitch.accidental, c.pitch.accidental.displayStatus
如果我们有一个
(, True)
(不是任何),我们还可以使用小节对象的属性设置小节开头的调号:
.
当然 , 生活并不完全是关于升号的;如果我们不能使用降号 , 那么对象将变得非常糟糕 。要做到这一点,只需将降号的数量指定为负数 。所以-1表示一个降号,-2表示两个降号 。或者如果你已经有了一个正数,只需乘以-1 。
【十八音乐编码之道| 调与调号】m.keySignature = key.KeySignature(4)m.show()eroicaFlats = 3ksEroica = key.KeySignature(-1 * eroicaFlats)ksEroicaksEroica.sharps