「痛み」を生成したpythonスクリプトのソース

標準マクロに比べて配列を使えるところがちょっとやりやすいです。
あと、私はひとかたまりずつ打っては再生しつつ作業するので、だんだん長くなってくると途中から再生できた方がいいなと思うことがあります。
pythonを使うことで、要らない行をコメントアウトしたり、別の関数にして外に出したりすることができるようになりました。

#coding:shift_jis
import os,string

song =[]
s_drum=['cccccccccccccccc']
b_drum=['ccccccccccccccr8c8r8c8']
bass =['o3e-e-ddcc>b-b-a-a-a-a-<e-e-e-d',
'o3cccc>gggga-a-a-a-b-b-b-b-',
'o3cccc>gggga-a-a-a-<e-e-e-e-',
'o3ccccccccffffffff',
'o2a-a-a-a-a-a-a-a-<cccc>b-b-b-b-',
'o2a-a-a-a-b-b-b-b-<e-e-e-e-e-e-e-e-']
melody=[
'o5gfe-f4b-4e-&e-2r2a-e-e-a-4e-e-g&g2r2',
'<c>gggg<c4>b-&b-2r4.ga-rgre-rca-&a-a-gge-f4.',
'gfe-e-fb-4e-&e-2r4.e-a-e-e-a-4e-e-g&g2r2',
'<c>gggrg<c>b-&b-2r4.ga-rgre-rca-&a-4ge-4f4.',
'o5gfe-e-fb-4e-&e-2r2a-e-e-a-4e-e-g&g2r2',
'<c>gggrg<c>b-&b-2r2a-rgre-rca-&a-a-ggre-fe-&',
'e-re-re-e-4f&f>b-b-4r2r<e-e-e-e-e-4g&gfe-4r2',
'rb-b-b-b-b-4b-b-b-b-b-b-b-b-a-&a-2r2r1',
'ra-a-a-a-a-a-a-a-4gf4g4rre-e-e-e-e-e-e-g4fe-4e-4r',
're-4e-4e-re-rgggg>b-4<e-&e-2r2'
]
def main():
	init()
	a_mero()
	b_mero()
def a_mero():
	play([bass[0],s_drum[0],b_drum[0],melody[0],melody[0]])
	play([bass[1],s_drum[0],b_drum[0],melody[1],melody[1]])
	play([bass[0],s_drum[0],b_drum[0],melody[2],melody[2]])
	play([bass[1],s_drum[0],b_drum[0],melody[3],melody[3]])
	play([bass[0],s_drum[0],b_drum[0],melody[4],melody[4]])
	play([bass[1],s_drum[0],b_drum[0],melody[5],melody[5]])
def b_mero():
	play([bass[2],s_drum[0],b_drum[0],melody[6],melody[6]])
	play([bass[3],s_drum[0],b_drum[0],melody[7],melody[7]])
	play([bass[4],s_drum[0],b_drum[0],melody[8],melody[8]])
	play([bass[5],s_drum[0],b_drum[0],melody[9],melody[9]])
def init():
	for x in range(8):
		song.append('t152')
	play(['l4v7q6 @w10 @3 o3 @E1,0,40,30,30',
	'l4v6q6 @4 @E1,0,60,0,20 @n90',
	'l4v5q6 @4 @E1,0,20,5,20 @n110',
	'l8v15q7 @1 @D0 @E1,0,60,30,35',
	'l8v10q7 @1 @D10 @E1,0,60,30,35'])
def  play(track):
	for ch,seq in enumerate(track):
		song[ch] +=seq + '\n'
def cmd_play():
	for i in song:
		if i <> '':
			print i + ';'
if __name__ == '__main__':
	main()
	cmd_play()