2024年9月24日、本サイトの更新を終了しました。
本サイト http://www-b.uec.tmu.ac.jp/ は、2025年3月末に終了します。
移転先は、https://shakuhachi.sub.jp/music21/ です。
今後の更新は、新サイトで行います。

September 24, 2024. This site is no longer being updated.
This site, http://www-b.uec.tmu.ac.jp/, will close at the end of March 2025.
The new location is https://shakuhachi.sub.jp/music21/.
Future updates will be made on the new site.


music21を使って宮城道雄の「春の海」を解析

Analysis of "Harunoumi (Sea of Spring) by Michio Miyagi" in music21.
2016.3

”music21"は、MIT(マサチューセッツ工科大学)で開発されている音楽学、音楽分析の専門家が研究用に作成しているソフトウェアですが、 Pythonで音楽学を見て容易に操作できそうだったので、宮城道雄の「春の海」の分析を試してみました。

iMac、MacOSX(10.10.5 Yosemite)を使用。WinでもPythonが入っていれば可
MacOSには、標準でPython言語がインストールされているので、ターミナルからpythonと打てば実行されます。

まずは、MITの音楽学ソフトウェアmusic21をインストール
music21 is a Python-based toolkit for computer-aided musicology.
music21は、オープンソースソフトウェアであり、ライセンスは、LGPLまたはBSD。
ダウンロードして、ファイル"installer.command"をダブルクリックして実行すると、自動的にターミナルが開きインストールが進みます。適当にYes/Noを答えるとインストールが終了します。MuseScoreがインストールされていれば、表示などに使用されるようになります。

別途ターミナルからpythonに入り、「Pythonで音楽学」の手順通りにすすめます。

music21のライブラリを読み込むため、下記コマンドをターミナルに入力して実行。
from music21 import *

次に、XML形式の楽譜データを読み込みます。
s = converter.parse('各自のパス/harunoumi_v2.xml')

春の海の楽譜のXMLデータharunoumi_v2.xmlは、以前作成し、公開している harunoumi_v2.mscz (MuseScoreで作成)をMusicXML形式で保存し直して使用。

s[0],s[1],s[2],s[3],s[4],s[5]
と入力したところ、
s[4]が尺八、s[5]が琴(箏)のパートとなっていたので、
s[4][2:5].plot('pianoroll')  で、尺八の出だしのピアノロール図が表示されます。(下図)

s[4].plot('pianoroll’)  では、尺八パート全体のピアノロール図が表示され、

s[5].plot('pianoroll’)  では、琴パート全体のピアノロール図が表示されます。



音程をオクターブを考えずに数えると、
s[4].pitchAttributeCount('name’)
{'A': 124, 'C': 16, 'B': 162, 'E': 204, 'D': 75, 'G': 37, 'F': 50, 'F#': 11}
尺八で使われている各ピッチの数は、ロやピが一番多く204回、チ 162回、レ 124回という順のようです。

琴では、音の数が 倍程度ありますが、傾向は類似していました。
s[4].pitchAttributeCount('name’)
{'A': 202, 'C': 36, 'B': 422, 'E': 475, 'D': 220, 'G': 4, 'F': 117, 'F#': 23}


各音の使用されている回数のヒストグラム図は、尺八では、
s[4].plot('histogram')

甲のロレチとピが多く、その中でもチが最も多いようです。
琴では、
s[5].plot('histogram')


音の長さのヒストグラムをプロットすると、
s[4].plot(format='histgram', values='quarterLength')

尺八は、16分音符が多く、次に多い8分音符までが数としてはダントツ。

s[5].plot(format='histgram', values='quarterLength')

琴は、16分音符がダントツ

音符のピッチと長さを、プロット円の半径を頻度としてプロットすると、尺八では、
s[4].plot(format='scatterweighted', values='pitchclass')

琴では、
s[5].plot(format='scatterweighted', values='pitchclass')



以上は、解析と言えるほどのものではありませんが、music21には、他にも多数の機能があるようです。

music21のグラフについては、 http://web.mit.edu/music21/doc/tutorials/graphing.html

参考:春の海の楽譜の1頁目


参考文献

親ページに戻る