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 番目の反復部分をスキップ) であるかどうかを事前に確認する必要があると思います。しかし、それを行う方法や、問題を解決する他の方法が見つかりません。