pythonプログラミング で楽譜作成!| music21 ~ チャーチモード(教会旋法)とプログラム

pythonプログラミング で楽譜作成!| music21 ~ チャーチモード(教会旋法)とプログラム

みなさん、こんにちは!

今回は「スケール」に焦点を当てたプログラムの紹介です。

魔法の言葉「いどふりみえろ」

音楽理論を学ばれている方であれば、一度は耳にしたことあるだろう言葉「いどふりみえろ」。

ジャズであれば「モード」として良く知られているお話かと思います。

教会旋法(チャーチモード)と呼ばれています。

キー「C」のイオニアンスケールを基準とした、チャーチモードを作ってみます。

プログラム

コードは以下の通りです。

from music21 import *

scale = ['c','d','e','f','g','a','b','c']
mode = [
    '_イオニアン(Ionian) ',
    '_ドリアン(Dorian) ',
    '_フリジアン(Phrygian) ',
    '_リディアン(Lydian) ',
    '_ミクソリディアン(Mixolydian) ',
    '_エオリアン(Aeolian) ',
    '_ロクリアン(Locrian) ' 
]


s = ""

for i in range(7):
    for j in range(8):
        s += scale[(j+i)%7]
        s += "4" if (j+i)//7 == 0 else "'4"
        s += mode[i] if j==1 else " "
    
    s += " r1 r1 "

p = stream.Part()
p = converter.parse("tinyNotation: 4/4 " +  s  )

s = stream.Score(id="mainsheet")
s.insert(0, p)

s.show()
s.show('midi')

music21には、あらかじめ「key.Key()」を使うことで、スケールを作成する事ができます。

参考元:

C_Ionian = key.Key('C', 'Ionian')
D_Dorian = key.Key('D', 'Dorian')
E_Phrygian = key.Key('E', 'Phrygian')
F_Lydian = key.Key('F', 'Lydian')
G_Mixolydian = key.Key('E', 'Mixolydian')
A_Ionian = key.Key('A', 'Aeolian')
B_Ionian = key.Key('B', 'Locrian')

C_Ionian.show()
D_Dorian.show()
E_Phrygian.show()
F_Lydian.show()
G_Mixolydian.show()
A_Ionian.show()
B_Ionian.show()