rakushoo blog

ジャズとプログラミングがやりたい人

music21を使って五線譜に表示させる

音符のパターンはプログラムで作成できるようになったけど、五線譜でないと使ってもらえないことがわかりました。 表示させる音は大体できてるからあとは見た目だけなんだけど、もうすでにそういう技術あるよね?ってことで、"python 五線譜 ライブラリ"とかで検索してみました。

qiita.com

なんかそれっぽいものが見つかったのでとりあえず使ってみることに。流行ってる言語はさすがって感じ。組み込みやってた頃とは雲泥の差。Python様様です。

(この後このライブラリに悩まされることになるけどそれはまた別の話...)

music21とは

MIT(マサチューセッツ工科大学)で開発されている音楽解析のためのPythonで動くオープンソースソフトウェアです。 MusicXMLやABC、ly言語(後述のLilypond用言語)のような記譜用のマークアップ言語で書かれたファイルを入力とし、音楽構造の抽出、変換、編集などといったことを記号操作によって行うことができます。(前述リンク記事より)

MITとか聞いただけでめちゃくちゃイケてるのでは??となりましたが、日本語の情報が少ない。

この方のブログが参考になりました。(他にはほとんど見つからず) ameblo.jp

とりあえず何か音符を出そう。。

% from music21 import *
% n=note.Note("C4", quarterLength=1)
% n.show('lily.png')

f:id:rakushoo:20200610181621p:plain

出た。

見えるものが出来ると楽しいです。

Oleoのコードからスケールを表示させてみる。

ここから3〜4週間くらいかけて、英字テキストで出力させていたものを五線譜で表示するように対応しました。

f:id:rakushoo:20200610182255p:plain

ここまででもプログラミング的には結構満足。

まだこれだけではアドリブ練習にはならないので、どんな風に表示させたら良いか、もう少し検討してみます。