本日はBlenderPython枠です。
BlenderではPythonを実行することで機能を拡張することができます。
今回はMusicXMLを読み込み情報を出力します。
〇環境
・Windows 11PC
・MuseScore4
・Blender4.0
〇Blender側の処理
BlenderのPythonにMusicXMLを扱えるようにするためのライブラリをインポートします。
今回はmusic21を使用します。
pip install music21
music21はMITによって提供されているパッケージです。
musicXMLはMuseScoreを使用してエクスポートします。museScoreは作譜ソフトで無料で使用できます。
from music21 import * def get_tempo_from_musicxml(file_path): # MusicXMLファイルを読み込む score = converter.parse(file_path) # メトロノームマークがある場合、そのテンポ情報を取得 metronome_marks = score.flat.getElementsByClass('MetronomeMark') if metronome_marks: tempo = metronome_marks[0].getQuarterBPM() return tempo else: print("メトロノームマークが見つかりませんでした。") if __name__ == "__main__": # 読み込むMusicXMLファイルのパス musicxml_path = "C:\\Users\\ xxxxx.xml" # テンポを取得 tempo = get_tempo_from_musicxml(musicxml_path) if tempo: print(f"テンポ: {tempo} BPM")
パスを変更して実行することでコンソールウィンドウに次のようなログを出力できます。
本日は以上です。
Blenderで楽譜を読み込むことができました。
なおMusicXMLにテンポが存在していることを前提にしています。