music21のCorpusモジュール楽曲リスト:PythonでMuseScoreを操作する

最終更新日

music21は、Pythonを使って楽譜データの解析や生成を行うための強力なライブラリです。

音楽学者、プログラマー、作曲家など、楽譜データを使いたい人にとってとても便利なツールであり、楽曲分析やMIDIファイル生成、楽譜の可視化といったさまざまな用途に活用できます。

music21の大きな特徴の一つが「Corpus」と呼ばれる組み込みの楽曲集です。

このCorpusには多くのクラシック音楽の楽譜データが収録されており、すぐにPythonコードから楽曲データにアクセスできます。

この記事では、music21のCorpusに含まれる楽曲について詳しく解説し、その使い方も紹介します。

music21のCorpusとは?

music21のCorpusは、クラシック音楽を中心とした楽譜データのコレクションです。

これはライブラリに組み込まれているため、Pythonコードから簡単にアクセスし、楽譜を解析したり表示したりすることができます。

Corpusに含まれる楽曲の特徴

  • 主にクラシック音楽: バッハ、ベートーヴェン、モーツァルト、ショパンなど、クラシック音楽の代表的な作曲家の楽曲が含まれています。
  • 音楽分析に最適: 楽譜データは音符やテンポ、楽器の情報などが含まれており、音楽分析や楽曲構成の理解に役立ちます。
  • 無料で利用可能: music21をインストールするだけで、すべての楽曲データに無料でアクセスできます。

music21のCorpusに含まれる楽曲のリスト

では具体的にどんな楽譜があるのか?

それが一番重要ですよね。

もちろんパブリックドメインの古典音楽が中心になります。

music21のドキュメントで作曲家と楽曲のリストがあるのでチェックしてみてください。

music21の楽曲リスト(公式サイトへ移動)

MuseScoreのインストール

楽譜を表示させるためには、MuseScoreLilyPondなどが必要です。

music21の環境設定

インストールした楽譜ビューア(MuseScoreLilyPondなど)をmusic21で正しく認識させるため、configure.run()を実行します。

以下のコードを実行して設定を確認・修正します。

from music21 import configure

# 設定ツールを実行
configure.run()

実行すると、いろいろ出てきます。

Yesとエンターで進みます。

すると

Would you like to:
[1] Acknowledge these terms and allow music21 to aid in finding pieces in the
corpus
[2] Acknowledge these terms and block the virtual corpus
[3] Do not agree to these terms and will not use music21 (agreeing to the
terms of the corpus is mandatory for using the system).

と聞かれます。

このメッセージは、music21のコーパス利用に関する利用規約への同意を求めるものです。

利用を続けるために選ぶべきオプションは次のとおりです。

[1] Acknowledge these terms and allow music21 to aid in finding pieces in the corpus

このオプションを選択することで、music21がコーパス内の楽曲を見つけることを許可し、通常通り機能を利用できるようになります。

基本的には、music21の楽譜機能を使用する場合はこのオプションを選ぶことが推奨されます。

[1] を選べば、music21のコーパスの利用を続けられ、楽譜表示などの機能が正しく使えるようになります。

あとは、基本的に全部Noを選んでも問題ないでしょう。

気になる方はしっかり読み込んでください。

パスの設定が必要

正しく起動させるためにパスの設定をしておきましょう。

Pythonで以下のコードを実行し、musicxmlPathに正しいパスを設定します。

from music21 import environment

# 環境設定の取得
env = environment.UserSettings()

# MuseScoreの実行ファイルのパスを設定
env['musicxmlPath'] = 'C:パスの場所MuseScore4.exe'

# 設定の確認
print("Updated MusicXML Path:", env['musicxmlPath'])

このコードでmusic21MuseScoreの正しいパスを認識するようになり、楽譜の表示に利用できます。

from music21 import corpus

# バッハの平均律クラヴィーア曲集第1番のプレリュードをロード
bach_wtc1_prelude = corpus.parse('bach/bwv846')

# 楽譜を表示
bach_wtc1_prelude.show()

ここまで設定できれば、コードを叩くだけで楽譜が表示されます。