Hatena::Groupmml

spacecadetの日記分店

2007-11-16

効率アップの方法メモ

| 23:09

繰り返しなどのプログラミングを標準マクロからpythonにおきかえる試みを本家のブログで始めたばかりです。

ここにもアイディアメモを貼ります。

ベースパターンを生成する関数

def pat_bass1(octave,tone):
	pat='o%dX<X16X16>X<X16X16>X<X16X16>X<X16X16' % octave
	return re.sub('X',tone,pat)

この関数は、指定したオクターブ(変数octave)を起点に、ベースの音(tone)をある一定のリズムで刻むパターンを作って返すものです。

プログラム

#coding:shift_jis
import re,os,string

song =[]
def main():
	for x in range(8):
		song.append('t128')
	play(['l8v7q6 @w10 @3 o3 @E1,0,40,30,30','r'])
	play([pat_bass1(3,'f') + pat_bass1(3,'d-') + pat_bass1(3,'e-') + pat_bass1(3,'c')])

#ベース生成
def pat_bass1(octave,tone):
	pat='o%dX<X16X16>X<X16X16>X<X16X16>X<X16X16' % octave
	return re.sub('X',tone,pat)	

#基本ルーチン
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()

できる音

t128l8v7q6 @w10 @3 o3 @E1,0,40,30,30
o3f<f16f16>f<f16f16>f<f16f16>f<f16f16o3d-<d-16d-16>d-<d-16d-16>d-<d-16d-16>d-<d-16d-16o3e-<e-16e-16>e-<e-16e-16>e-<e-16e-16>e-<e-16e-16o3c<c16c16>c<c16c16>c<c16c16>c<c16c16
;

2007-10-24

はてなMMLのマクロ機能をこう使ってみよう

21:02

テンポを設定する

テンポを変更したときに各トラックごとに直す必要がなくなります。

$TEMPO =t132;

$TEMPO l1v12 o6cc>b<c;
$TEMPO l1v12 o5gagg;
$TEMPO l1v12 o5effe;
$TEMPO l1v12 o3cfgc;

音色をテンプレ化する

さらに進めて、よく使う主な音を楽器名で登録しておくと、毎回音色を考える必要がなくていいかもしれません。

(音色パラメータd:id:korinchan:20071021様から引用させて頂いています)

$PIANO    =@3@w50@E1,0,170,0,12;
$SYN_BASS =@1@E1,0,80,0,4;
$VIOLIN   =@1@E1,8,20,110,12;
$HIHAT    =@4@n0@E1,0,5,0,1;
$SNARE_D  =@4@n90@E1,0,64,0,32;
$BASS_D   =@4@n127@E1,0,20,0,10;

$TEMPO    =t132;

$TEMPO l1v12 $PIANO o6cc>b<c;
$TEMPO l1v12 $PIANO o5gagg;
$TEMPO l1v6  $VIOLIN o5effe;
$TEMPO l1v12 $SYN_BASS o3cfgc;
$TEMPO l4v15 $BASS_D /:3cccc:/cccr;
$TEMPO l4v10 $SNARE_D /:3rcrc:/rccr;
$TEMPO l16v10 $HIHAT /:3c8ccc8ccc8ccc8cc:/c8ccc8ccc;

「$TEMPO =t132;」までをテンプレとして毎回使用する+自分が作った音色を追加して行くといいライブラリに成長して行くと思います。

2007-10-19

荒城の月(作曲:滝廉太郎※著作権消滅)

| 00:25

MML部の盛り上がりを祈念して。

荒城の月
t95l8v4q5 @3 o5 @E1,0,40,30,70
/:gce-gce-gc e-gce-gce-g a-cfa-/cfa-c dgfe-dc>bg<:/ g>b<dg <c>ge-dc2
;
t95l8v4q5 @3 o5 @E1,0,40,30,70
/:e->g<ce->g<ce->g <ce->g<ce->g<ce- f>a-<cf/>a-<cf>a-< cccc>bgfd<:/ d>gb<d ge-c>ge-2
;
t95l1v12q6 @w10 @1 o3 @E1,0,40,30,90 
c&cfg c&c f2g2 c
;
t95l4v13q7 @1 @E1,2,40,20,60 o6
/:gg<cd e-dc2 />a-a-gf g1:/ >a-fg.g8 c1

よく利用するサイトなど

| 00:39

入力したい曲がJASRAC管理かどうか確認するために使う。

MMLを入力してボタン1つで演奏できるツール。お世話になっております。