我正在尝试转调爵士乐谱。当我转置 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。