1

我正在尝试转调爵士乐谱。当我转置 Music21 流时,只有音符被转置。ChordSymbols 保持不变。

这是我所看到的微小注释的示例。注意:我没有在我的实际用例中使用 TinyNotation,但它在这里提供了一个示例。

from music21 import *

class HarmonyModifier(tinyNotation.Modifier):
    def postParse(self, n):
        cs = harmony.ChordSymbol(n.pitch.name + self.modifierData)
        self.parent().stream.append(cs)
        return n

tnc = tinyNotation.Converter()
tnc.modifierUnderscore = HarmonyModifier
tnc.load("4/4 d2_m7 g4_7 c_maj7")

s = tnc.parse().stream
s.show("text")
s.transpose(interval.GenericInterval(2), inPlace=True)
s.show("text")

这是输出。

{0.0} <music21.stream.Measure 1 offset=0.0>
    {0.0} <music21.clef.BassClef>
    {0.0} <music21.meter.TimeSignature 4/4>
    {0.0} <music21.harmony.ChordSymbol Dm7>
    {0.0} <music21.note.Note D>
    {2.0} <music21.harmony.ChordSymbol G7>
    {2.0} <music21.note.Note G>
    {3.0} <music21.harmony.ChordSymbol Cmaj7>
    {3.0} <music21.note.Note C>
    {4.0} <music21.bar.Barline style=final>
# Note ChordSymbols are not changed after transpose()
{0.0} <music21.stream.Measure 1 offset=0.0>
    {0.0} <music21.clef.BassClef>
    {0.0} <music21.meter.TimeSignature 4/4>
    {0.0} <music21.harmony.ChordSymbol Dm7>
    {0.0} <music21.note.Note E>
    {2.0} <music21.harmony.ChordSymbol G7>
    {2.0} <music21.note.Note A>
    {3.0} <music21.harmony.ChordSymbol Cmaj7>
    {3.0} <music21.note.Note D>
    {4.0} <music21.bar.Barline style=final>

我正在使用音乐 21-4.1.0。

4

0 回答 0