Int SKR = 1    //1指定時はピコサクラ用、1でない場合はテキスト音楽サクラ用です。



If(SKR==1){
System.Include(stdmsg.h);
System.MeasureShift(1);
ResetGM();
TimeSignature = 4,4;
TrackSync;
TrackName={"メロディ風鈴4拍子改2"};
Copyright={"森と泉"};
System.TimeBase=48;
Str Am={[8'acea']};Str C7={[8'cega+']};Str Cm={[8'cd+gc']};Str Cx7={[8'c+fg+bc+']};
Str Dm={[8'dfad']};Str D7={[8'df+ac']};Str Dxm={[8'd+f+a+d+']};Str Dx7={[8'd+ga+c+']};
Str Em={[8'egbe']};Str E7={[8'eg+bd']};Str Fm={[8'fg+cf']};Str F7={[8'facd+']};
Str Gm={[8'ga+dg']};Str G7={[8'gbdf']};Str B={[8'bd+f+b']};Str Gx7={[8'g+cd+f+']};
Str C={[8'cegc']};Str Dm7={[8'dfac']};Str F={[8'facf']};Str Caug={[8'ceg+c']};
Str Gx={[8'g+cd+g+']};Str Gaug={[8'gbd+g']};Str A7={[8'ac+eg']};Str Cdim={[8'cd+f+a']};
Str Ax7={[8'a+dfg+']};Str Cxdim={[8'c+ega+']};Str B7={[8'bd+f+a']};Str Gdim={[8'ga+c+e']};
Str Ax1={a+};Str A1={a};Str B1={b};Str C1={c};Str Cx1={c+};Str D1={d};
Str Dx1={d+};Str E1={e};Str F1={f};Str G1={g};Str Gx1={g+};
Tempo=120
TR=1 CH=1 @(NewAgePad) V(120) P(64) o5 r1 l8 v100 TrackKey=6 P.onNoteWave(32,96,!4)
o4v127g^o5v107c^^^o4v127g^	|f+^^^o5v107c^^^	|o4v127g^^^^^^d	|e^cecece
c^cceae^	|c+ec+g^e^^	|o5v107dcfcco4v127a^c	|d^^^^^^^
g^^^c^ec	|cce^o5v107c^o4v127e^	|ea+e^g^o5v107g^	|o6v87d^^^^^^^
e^^^cc^^	|o5v107g^g^^^^^	|a^^^o6v87a^d+d+	|c^o5v107g^g^o6v87c^
c^f^^^^^	|o5v107e^^ggg^^	|o6v87d+^^^d+^^^	|g^g^c^co5v107g
a^^^^o6v87a^^	|g+^g+^fg+^^	|d^^^^^g^	|ccceeee^
e^^^^o5v107gb^	|o6v87a^^^^^o5v107a^	|o6v87e^^^^^^^	|o5v107f+^^^df+c^
d^^^^^^^	|o4v127fgbbf^b^	|o5v107ce^^^^^^	|o4v127f^^^faa^
aad+^f+ba^	|o5v107f^a+^a+^g+^	|o6v87gge^^^^^	|o5v107c+g^^^c+^d+
f^cffd^d	|f^f^g^^^	|o6v87c^^o5v107eg^e^	|eaaa^^ae
co4v127a^^^ee^	|f+f+dd^df+f+	|b^bo5v107fb^f^	|o6v87co5v107go6v87c^^^^^
o5v107a+o6v87do5v107a+^g+^o4v127g+^	|g^^^^o5v107c^^	|d+f+^^o4v127a+^^^	|d^^^fa^^
o5v107b^^^^o4v127bb^	|o5v107e^^^^^e^	|e^^c^^o4v127a^	|o5v107c^^^^^^^
bo6v87e^^^^^^	|o5v107e^^^^^g+^	|ceco4v127a^ece	|gg^bbg^b
o5v107f^o4v127a^ao5v107d^d	|f+a^^^d+^^	|e^^^e^b^	|o6v87c^^^^^^^
o5v107c^^^^^^^	|e^^^^^^g	|e^^^^c^^	|o4v127a^ee^ecc
f+^cc^^^c	|ff^g+^g+g+b	|o5v107cee^ecee	|a^^a^^^c
eco4v127a^ecce	|cd+d+f+g+^o5v107c^	|o4v127e^eccc^c	|f^f^f^g+g+
g^^^^^^^	|o6v87g^^^^^^^
TR=2 CH=2 @(DrawbarOrgan) q100 V(70) P(32) o5 r1 l1 v100 v90 TrackKey=6 
 C1 D1 G1 C1 A1 Cx1 D1 G1 C1 A1 Cx1 G1 C1 C1 F1 C1 F1 C1 F1 C1 F1 F1 G1 C1 E1
 D1 C1 D1 D1 G1 C1 D1 B1 Ax1 C1 Dx1 D1 G1 C1 A1 A1 D1 Cx1 C1 Ax1 C1 Dx1 D1 E1 C1
 A1 A1 E1 C1 A1 E1 D1 B1 E1 C1 A1 E1 C1 A1 D1 Cx1 C1 A1 A1 Gx1 C1 F1 G1 C1
TR=3 CH=3 @(SteelcGuitar) q33 V(70) P(96) o5 r1 l8 v80 
v.N(80,80,80,80,50,50,50,50,80,80,80,80,80,80,80,80,50,50,50,50,80,80,80,80,80,80,80,80,80,80,80,80)
 TrackKey=6 
 C D7 G7 C Am Cxdim Dm7 G7 C Am Cxdim G7 C C7 F7 C Fm C F7 C F Fm G7 C Em
 Dm C D7 Dm7 G7 C Dm B7 Ax7 C Dx7 Dm7 G7 C Am Am D7 Cx7 C Ax7 C Dxm Dm Em Caug
 Am Am Em Caug Am Em Dm B7 Em Caug Am Em Caug Am D7 Cx7 C Am Am Gx C Fm G7 C}

ELSE{                       //ここからテキスト音楽サクラ用です。
                            //毎回、MMLを下側タブに出力します。
Int CX=8;                   //1小節に8分音符を
Int CC=8;                   //8回使うのが基本形  
Array WW;//1小節内の各音符がタイ(^)に変わる確率(%)
Int AA;Int A9;/*音番号と旧AA（o5cはn60です)*/Array AA1;Int LL/*コード内ノートとそのSIZE*/
Int N;Int N9;Int NX;/*コード、旧コード、次コード*/Int BB;/*1小節内何番目の音*/Int DD;/*何小節目*/Int DDD;//DD+2           
Int EE;/*c,c+,d,d+…を0,1,2,3…で表した数字*/Int E9;//EEの旧値
Int GG;/*前後の音の高さの差をチェックする回数*/Int GG1=100;//GGの最大値。これを超えたらそのまま鳴らす。
Int Z=6;/*前後の音の高さの差を半音6個以内に制限*/Int RX//乱数
Int OO;/*オクターブ*/Int OO9=5;/*旧OO*/Str PP;Str P9//音符またはオクターブ付き音と旧PP
Array AR=({c},{c+},{d},{d+},{e},{f},{f+},{g},{g+},{a},{a+},{b})
Array VE=(,,,,{o4v127},{o5v107},{o6v87}) //オクターブとベロシティ
Str MD;/*MelodyMML*/Str MC;/*伴奏MML*/Str MC1;//伴奏MML1音
Str MB;/*伴奏MML*/Str MB1;/*伴奏MML1音*/Str MML2;//MML
Str BR2="
";                    //改行
MML2={"System.Include(stdmsg.h);
System.MeasureShift(1);
ResetGM();
TimeSignature = 4,4;
TrackSync;
TrackName={"メロディ風鈴4拍子改2"};
Copyright={"森と泉"};
System.TimeBase=48;"}+BR2;
MML2=MML2+"Str Am={[8'acea']};Str C7={[8'cega+']};Str Cm={[8'cd+gc']};Str Cx7={[8'c+fg+bc+']};
Str Dm={[8'dfad']};Str D7={[8'df+ac']};Str Dxm={[8'd+f+a+d+']};Str Dx7={[8'd+ga+c+']};
Str Em={[8'egbe']};Str E7={[8'eg+bd']};Str Fm={[8'fg+cf']};Str F7={[8'facd+']};
Str Gm={[8'ga+dg']};Str G7={[8'gbdf']};Str B={[8'bd+f+b']};Str Gx7={[8'g+cd+f+']};
Str C={[8'cegc']};Str Dm7={[8'dfac']};Str F={[8'facf']};Str Caug={[8'ceg+c']};
Str Gx={[8'g+cd+g+']};Str Gaug={[8'gbd+g']};Str A7={[8'ac+eg']};Str Cdim={[8'cd+f+a']};
Str Ax7={[8'a+dfg+']};Str Cxdim={[8'c+ega+']};Str B7={[8'bd+f+a']};Str Gdim={[8'ga+c+e']};
Str Ax1={a+};Str A1={a};Str B1={b};Str C1={c};Str Cx1={c+};Str D1={d};
Str Dx1={d+};Str E1={e};Str F1={f};Str G1={g};Str Gx1={g+};"+BR2;
N9=1;A9=60;MD={};MC={};MB={};
FOR(DD=0; DD<100; DD++){         //100小節以内演奏する
IF(DD==0){N=5}ELSE{N=NX}         //1小節目はC、2小節以降は次コード(NX)から始める
RX=Random(4);
SWITCH(RX){
//タイの確率　※変えてみてください
CASE(0){WW=(0,33,33,33,33,33,33,33)}
CASE(1,2){WW=(0,66,33,66,33,66,33,66)}
DEFAULT{WW=(0,66,66,66,66,66,66,66)}
}
IF(DD>60 & N==5 & N9==24){WW=(0,100,100,100,100,100,100,100)}  //最終小節は全音符とする
SWITCH(N){ 
//       Organ     Guitar      構成音　　　　　　　　　　　　　　　　　　次コード候補　※変えてみてください
CASE(0){ MB1="Ax1";MC1="Ax7";  AA1=(58,70,82,50,62,74,53,65,77,56,68,80);NX=RandomSelect(5,1)}
CASE(1){ MB1="A1"; MC1="A7";   AA1=(57,69,81,49,61,73,52,64,76,55,67,79);NX=RandomSelect(14,15,11)}
CASE(2){ MB1="A1"; MC1="Am";   AA1=(57,69,81,48,60,72,52,64,76);         NX=RandomSelect(2,15,18,14,7,23)}
CASE(3){ MB1="B1"; MC1="B";    AA1=(59,71,83,51,63,75,54,66,78);         NX=RandomSelect(5)}
CASE(4){ MB1="B1"; MC1="B7";   AA1=(59,71,83,51,63,75,54,66,78,57,69,81);NX=RandomSelect(15,18,17,0)}
CASE(5){ MB1="C1"; MC1="C";    AA1=(48,60,72,52,64,76,55,67,79);         NX=RandomSelect(5,5,24,19,2,2,10,26,7,3,25,14,1,8,21,20,0,27,4,9,17,12,18,15,22,13,23)}
CASE(6){ MB1="Cx1";MC1="Cx7";  AA1=(49,61,73,53,65,77,56,68,80,59,71,83);NX=RandomSelect(5)}
CASE(7){ MB1="Cx1";MC1="Cxdim";AA1=(49,61,73,52,64,76,55,67,79,58,70,82);NX=RandomSelect(15,24,16)}
CASE(8){ MB1="C1"; MC1="C7";   AA1=(48,60,72,52,64,76,55,67,79,58,70,82);NX=RandomSelect(19,21,20,4)}
CASE(9){ MB1="C1"; MC1="Caug"; AA1=(48,60,72,52,64,76,56,68,80);         NX=RandomSelect(19,2)}
CASE(10){MB1="C1"; MC1="Cdim"; AA1=(48,60,72,51,63,75,54,66,78,57,69,81);NX=RandomSelect(24,16,5)}
CASE(11){MB1="C1"; MC1="Cm";   AA1=(48,60,72,51,63,75,55,67,79);         NX=RandomSelect(14)}
CASE(12){MB1="Dx1";MC1="Dx7";  AA1=(51,63,75,55,67,79,58,70,82,49,61,73);NX=RandomSelect(16,14)}
CASE(13){MB1="Dx1";MC1="Dxm";  AA1=(51,63,75,54,66,78,58,70,82);         NX=RandomSelect(15)}
CASE(14){MB1="D1"; MC1="D7";   AA1=(50,62,74,54,66,78,57,69,81,48,60,72);NX=RandomSelect(24,16,6)}
CASE(15){MB1="D1"; MC1="Dm";   AA1=(50,62,74,53,65,77,57,69,81);         NX=RandomSelect(24,4,18,5,17,6)}
CASE(16){MB1="D1"; MC1="Dm7";  AA1=(50,62,74,53,65,77,57,69,81,48,60,72);NX=RandomSelect(24)}
CASE(17){MB1="E1"; MC1="E7";   AA1=(52,64,76,56,68,80,59,71,83,50,62,74);NX=RandomSelect(17,1,1)}
CASE(18){MB1="E1"; MC1="Em";   AA1=(52,64,76,55,67,79,59,71,83);         NX=RandomSelect(9,2,15)}
CASE(19){MB1="F1"; MC1="F";    AA1=(53,65,77,57,69,81,48,60,72);         NX=RandomSelect(19,5,24,21,24)}
CASE(20){MB1="F1"; MC1="F7";   AA1=(53,65,77,57,69,81,48,60,72,51,63,75);NX=RandomSelect(5)}
CASE(21){MB1="F1"; MC1="Fm";   AA1=(53,65,77,56,68,80,48,60,72);         NX=RandomSelect(5,24)}
CASE(22){MB1="Gx1";MC1="Gx";   AA1=(56,68,80,48,60,72,51,63,75);         NX=RandomSelect(24)}
CASE(23){MB1="Gx1";MC1="Gx7";  AA1=(56,68,80,48,60,72,51,63,75,54,66,78);NX=RandomSelect(24,15,5)}
CASE(24){MB1="G1"; MC1="G7";   AA1=(55,67,79,59,71,83,50,62,74,53,65,77);NX=RandomSelect(5)}
CASE(25){MB1="G1"; MC1="Gaug"; AA1=(55,67,79,59,71,83,51,63,75);         NX=RandomSelect(5)}
CASE(26){MB1="G1"; MC1="Gdim"; AA1=(55,67,79,58,70,82,49,61,73,52,64,76);NX=RandomSelect(24)}
DEFAULT{ MB1="G1"; MC1="Gm";   AA1=(55,67,79,58,70,82,50,62,74);         NX=RandomSelect(1)}
}
MB=MB+" "+MB1;MC=MC+" "+MC1;
FOR(BB=0; BB<CC; BB++){FOR(GG=0; GG<GG1;GG++)        
        {LL=SizeOf(AA1);AA=AA1(Random(LL))	  
	  IF((AA-A9)*(AA-A9)<=Z*Z){EXIT;}}
        IF(Random(100)<WW(BB)){PP="^"}
        ELSE{OO=AA/12;EE=AA-OO*12;E9=EE;P9=AR(EE);IF(OO==OO9){PP=P9}ELSE{PP=VE(OO)+P9}}
        A9=AA;MD=MD+PP;OO9=OO}
IF(DD==24|DD==49|DD==74){MB=MB+BR2;MC=MC+BR2;}
IF(DD>60 & N==5 & N9==24){DD++;EXIT;}   //60小節以上でG7→Cとなったら終了
IF((DD+1)/4*4==DD+1){MD=MD+BR2;}ELSE{MD=MD+"	"+"|";}
N9=N;}
DDD=DD+2
MML2=MML2+"Tempo=120"+BR2
MML2=MML2+"TR=1 CH=1 @(NewAgePad) V(120) P(64) o5 r1 l8 v100 TrackKey=6 P.onNoteWave(32,96,!4)"
MML2=MML2+BR2+MD+BR2
MML2=MML2+"TR=2 CH=2 @(DrawbarOrgan) q100 V(70) P(32) o5 r1 l1 v100 v90 TrackKey=6 "+BR2
MML2=MML2+MB+BR2
MML2=MML2+"TR=3 CH=3 @(SteelcGuitar) q33 V(70) P(96) o5 r1 l8 v80 
v.N(80,80,80,80,50,50,50,50,80,80,80,80,80,80,80,80,50,50,50,50,80,80,80,80,80,80,80,80,80,80,80,80)
 TrackKey=6 "+BR2
MML2=MML2+MC;
MML2;
Print(MML2);}