1

music21 コーパスにある 1850 O'Neills Folksong コーパスを使用しています。すべての曲を繰り返す必要があります。

次のコードを使用してみました

songs = corpus.getComposer('oneills1850')
for ruta in songs:
    op = converter.parse(ruta)
    numbers = op.getNumbers()

...そして、数字を繰り返します。ほとんどの場合、各op変数は Opus オブジェクトであり、その各数値はスコアに関連付けられています。

問題は、これが常に正しいとは限らないことです。たとえば、15 番目の要素songs(インデックス 14) は Opus ではなく Score オブジェクトそのものです。そのため、getNumbers を使用しようとするとコードがクラッシュします。

op解決策は、Opus (その場合は前に行ったように getNumbers を使用) またはスコア (その場合はその 2 番目の反復部分をスキップ) であるかどうかを事前に確認する必要があると思います。しかし、それを行う方法や、問題を解決する他の方法が見つかりません。

4

1 に答える 1