如何将ChordSymbols与Music21中的音符一起移调?

时间:2017-10-23 15:31:03

标签: music21

我正试图转换一张爵士乐铅表。当我转置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。

0 个答案:

没有答案