1

Python モジュール Music21 を使用して一連のコードからキーを取得しようとしましたが、何を入れても常にc minor. 私が間違っていることはありますか?

さまざまな入力文字列を試しましたが、print ステートメントは正しいコード名をすべて吐き出しますが、結果のキーは常に C マイナーです!

WindowsでVSCodeを使用してPython 3.7.4を使用しています。

string = 'D, Em, F#m, G, A, Bm'

s = stream.Stream()

for c in string.split(','):
    print(harmony.ChordSymbol(c).pitchedCommonName)
    s.append(harmony.ChordSymbol(c))

key = s.analyze('key')

print(key)
4

2 に答える 2

0

music21 Analyze が ChordSymbol で正常に動作していないようです。

別の方法として、和音のすべての音符を手動で設定し、それを分析することもできます。コード:

string = 'D, Em, F#m, G, A, Bm'
 s = stream.Stream()

for d in string.split(','):
    print(harmony.ChordSymbol(d).pitchedCommonName)
    for p in harmony.ChordSymbol(d).pitches:
        n = note.Note()
        n.pitch = p 
        s.append(n)
key = s.analyze('key')
print(key)

予想どおり、ニ長調を返します。

于 2019-11-30T17:43:18.963 に答える