我正试图转换一张爵士乐铅表。当我转置Music21流时,只有音符被转置。 ChordSymbols保持不变。
这是一个关于我所看到的tinynotation的例子。注意:我在实际用例中没有使用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>
我正在使用music21-4.1.0。