//------------------------------------------------------------------------------
// テキスト音楽「サクラ」音楽データ (dSakura.dll Version.2.383)
//------------------------------------------------------------------------------
曲名{"赤鼻のトナカイ"}
作者{""}
コメント{""}
//------------------------------------------------------------------------------

ResetGM()
拍子4,4	//4部音符を1拍とみて、1小節に4コ
テンポ(145)
調#()             // C
Int base_tempo=145
Int TB=60	//タイムベース
Tempo(base_tempo)

Function Fadein(Mes,sEp,lEp){
	Str I = {!1};
	Str LEN;
	If(Mes>1){
		Mes--;
		I=I+{^1};
	}
	LEN=I;
	Str CMD = { Expression.onTime(sEp,lEp,LEN); }
	CMD.s({LEN},I);
	CMD;
}
Function Fadeout(Mes,lEp,sEp){
	Str I = {!1};
	Str LEN;
	If(Mes>1){
		Mes--;
		I=I+{^1};
	}
	LEN=I;
	Str CMD = { Expression.onTime(lEp,sEp,LEN); }
	CMD.s({LEN},I);
	CMD;
}
Function OctaveUnison(Str S){	 //1オクターブ上でハモる
	Sub{ Key=12;  S; Key=0; } S;
	// Key 半音で12音階=1オクターブ
}

Int I
Int J
Int Times=2

Array CH_1
Array CH_2
Array CH_3
Array CH_4

Array MV=(60,40,40,50)	//メインボリューム

CH_1(0)={ V(MV(0)) l4 q86 CHO(64) REV(64) }
CH_2(0)={ V(MV(1)) l4 q86 CHO(64) REV(64) }
CH_3(0)={ V(MV(2)) l4 q60 CHO(64) REV(64) }
CH_4(0)={ V(MV(3)) l4 q60 CHO(64) REV(64) }

CH_1(1)={ Fadein(1,90,120) g l6a l12g l4e >c Fadeout(1,120,30) <a g2. Fadein(1,90,120) l6g l12a l6g l12a l4g >c Fadeout(1,120,30) <b1 }
CH_2(1)={ Fadein(1,90,120) g l6a l12g l4e >c Fadeout(1,120,30) <a g2. Fadein(1,90,120) l6g l12a l6g l12a l4g >c Fadeout(1,120,30) <b1 }
CH_3(1)={ c g c g c g c g c g c g d g d g }
CH_4(1)={ c g c g c g c g c g c g d g d g }

CH_1(2)={ Fadein(1,90,120) e+ l6g l12e+ l4d b Fadeout(1,120,30) a g2. Fadein(1,90,120) l6g l12a l6g l12a l4g a Fadeout(1,120,30) e2. r }	// ? e+ = f
CH_2(2)={ Fadein(1,90,120) e+ l6g l12e+ l4d b Fadeout(1,120,30) a g2. Fadein(1,90,120) l6g l12a l6g l12a l4g a Fadeout(1,120,30) e2. r }
CH_3(2)={ d g d g d g d g d g d g c g c g }
CH_4(2)={ d g d g d g d g d g d g c g c g }

CH_1(3)={ Fadein(1,90,120) l6g l12^6a l12g l4e >c Fadeout(1,120,30) <a g2. Fadein(1,90,120) l6g l12a l6g l12a l4g >c Fadeout(1,120,30) <b1 }
CH_2(3)={ Fadein(1,90,120) l6g l12^6a l12g l4e >c Fadeout(1,120,30) <a g2. Fadein(1,90,120) l6g l12a l6g l12a l4g >c Fadeout(1,120,30) <b1 }
CH_3(3)={ c g c g c g c g c g c g d g d g }
CH_4(3)={ c g c g c g c g c g c g d g d g }

CH_1(4)={ Fadein(1,90,120) e+ l6g l12e+ l4d b Fadeout(1,120,30) a g2. Fadein(1,90,120) l6g l12a l6g l12a l4g Fadeout(1,120,80) >d c1 }
CH_2(4)={ Fadein(1,90,120) e+ l6g l12e+ l4d b Fadeout(1,120,30) a g2. Fadein(1,90,120) l6g l12a l6g l12a l4g Fadeout(1,120,80) >d c1 } 
CH_3(4)={ d g d g d g d g d g d g c c d e }
CH_4(4)={ d g d g d g d g d g d g c c d e }

CH_1(5)={ a a >c <l6al12a l4g l6e l12^2g l4e+ a g e+ Fadeout(1,80,30) e1 }
CH_2(5)={ a a >c <l6al12a l4g l6e l12^2g l4e+ a g e+ Fadeout(1,80,30) e1 }
CH_3(5)={ f f f f e l6e l12^4a l4a d d g g c c e g }
CH_4(5)={ f f f f e l6e l12^4a l4a d d g g c c e g }

CH_1(6)={ Fadein(1,30,100) d e g a Fadeout(1,100,90) l6b^16 l12b^16 b2^8 Fadein(1,90,100) > l4c c <b a Fadeout(1,100,30) g l6e+ l12d^2 }	//2部音符-3分割 1/2÷3=1/6
CH_2(6)={ Fadein(1,30,100) d e g a Fadeout(1,100,90) l6b^16 l12b^16 b2^8 Fadein(1,90,100) > l4c c <b a Fadeout(1,100,30) g l6e+ l12d^2 }
CH_3(6)={ y7,MV(2)+15 d,40 d,40 d,40 d,40 y7,MV(2) l6g^16 l12g^16 g2^8 l4d d a a g f e d }
CH_4(6)={ y7,MV(3)+15 d,40 d,40 d,40 d,40 y7,MV(2) l6g^16 l12g^16 g2^8 l4d d a a g f e d }

CH_1(7)={ Fadein(1,60,100) l4g l6a l12g l4e >c Fadeout(1,100,50) <a g2. Fadein(1,50,100) l6g l12a l6g l12a l4g >c Fadeout(1,100,30) <b1 }
CH_2(7)={ Fadein(1,60,100) l4g l6a l12g l4e >c Fadeout(1,100,50) <a g2. Fadein(1,50,100) l6g l12a l6g l12a l4g >c Fadeout(1,100,30) <b1 }
CH_3(7)={ c g c g c g c g c g c g d g d g }
CH_4(7)={ c g c g c g c g c g c g d g d g }

CH_1(8)={ Fadein(1,60,100) e+ l6g l12e+ l4d b Fadeout(1,100,50) a g2. Fadein(1,50,100) y7,MV(0)+16 l8g,50 a,50 g,50 a,50 l4g >d Fadeout(2,100,0) c2. r }
CH_2(8)={ Fadein(1,60,100) e+ l6g l12e+ l4d b Fadeout(1,100,50) a g2. Fadein(1,50,100) y7,MV(1)+16 l8g,50 a,50 g,50 a,50 l4g >d Fadeout(2,100,0) c2. r }
CH_3(8)={ d g d g d g d g d g d g c2. r }
CH_4(8)={ d g d g d g d g d g d g c2. r }

Int N1
Int N2
Int N3
Int N4

N1=Random(1,127)
N2=Random(1,127)
N3=Random(1,127)
N4=Random(1,127)
N1=11
N2=3
N3=2
N4=100


TimeBase(TB)
Str #Taste={ t.onCycle(!8,6,8) }
Int Sum;


KeyFlag+(f)
PLAY( ,CH_1(0),CH_2(0),CH_1(0),CH_2(0),CH_3(0),CH_3(0) )
?	//各チャンネルの初期設定を済ませる
Sum=0
Time(Sum)
For( J=0; J<Times; J++ ){
	For( I=1; I<SizeOf(CH_1); I++ ){
		PLAY( ,"@(N1) o6 #Taste P(16)"+CH_1(I),"@(N1) o6 #Taste P(16)"+CH_2(I),"@(N2) o7 #Taste P(110)"+CH_1(I),"@(N2) o7 #Taste P(110)"+CH_2(I),"@(N3) o5"+CH_3(I),"@(N4) o6"+CH_3(I) )
		Sum+=TB*4*4
		Time(Sum)
		//チャンネル番号を書く事で、PLAY( CH(1),CH(2),CH(3),… )が実装
	}
	PLAY( ,CH_1(0),CH_2(0),CH_1(0),CH_2(0),CH_3(0),CH_3(0) )	//初期設定へ
}