// アルバート・ケテルビー:ペルシャの市場にて なのアレンジバージョン
/////////////////////////////////////////////////////////////////////
Int DY=1			// 奨励音源ならこのまま、それ以外なら0
Int DEBUG=0			// 1=メトロノーム 2=雑音付き
Int KEY=0			// 移調
Int TEMPORATIO=100	// 100がデフォルト
Int TINY=0			// MIDIを軽くする TWM2時必須
Int IGNORETEMPO=0		// テンポ変化を無効にする
// Tempo 108
Int TEMPODIFF=0		// テンポ差分 -5以下にしてはならない
Int MODE=0			// 完全同一音の連弾を 0=オクターブ違い/1=微妙にピッチとタイミングをずらす
Int LOOP=2			// ループ回数 これはループ可能バージョン
// 22 1:57:43

System.RandomSeed=1

IF(TINY=1) {
	Expression.Frequency(2);
	Modulation.Frequency(8);
	System.TimeBase=96
} ELSE {
	Expression.Frequency(1);
	Modulation.Frequency(1);
	System.TimeBase=384
}


///////////////////////////////////////////////////////////////////////////////
// title:        "tempo.h" ver 1.1
// description:  TempoChange非互換高機能テンポチェンジ機能インクルードファイル(2015/05/28)
// keywords:     SAKURA Function     by ななこっち★ @nanakochi123456
// HP:           http://nano.daiba.cx/
///////////////////////////////////////////////////////////////////////////////
// tempo.h デバッグ機能付きテンポチェンジ
// (サクラに TempoChange がありますが、その高機能版です)
//
// Include前に、以下の変数を定義して下さい。
//
// ・Int DEBUG=0 // 1 でメトロノームがなります、2 でテンポチェンジ時にうるさい雑音が鳴ります
//  (メトロノームは10000小節で終了します、4/4 を前提に作成されています。)
//
// ・Int TEMPORATIO
//  ベーステンポの割合を%で設定します。(100がデフォルト。)
//
// ・Int TEMPODIFF
//  ベーステンポを設定して、外部よりテンポを制御したい場合、TEMPODIFF に 整数値 (-~+)を設定します。
//
// ・Int IGNORETEMPO
//  IGNORETEMPO=1 にすると、テンポチェンジを無効にします。
//
// #METORONOMEMML
//  メトロノームのリズムMMLを設定できます。3拍子にする時等使用します。
//  (M=表拍、m=裏拍)
//
//  ※テンポチェンジは、専用のトラックを作成することをお勧めします。
///////////////////////////////////////////////////////////////////////////////
// Function TmpChange(tempo, len)
// テンポをチェンジします。
// 前のテンポは自動的に読み込まれます
// 即時チェンジする場合には、lenを 0 にします。
// それ以外は、!2 !4. 等を指定します。
//
// Function TmpChangeR(tempo, len)
// テンポをチェンジして、len分の休符を置きます。
///////////////////////////////////////////////////////////////////////////////
// テストするときは、以下のコメントを全て外してください。
//Int TEST=1
//Int DEBUG
//Int TEMPORATIO=100
//Int IGNORETEMPO=0
//Int TEMPODIFF=0
///////////////////////////////////////////////////////////////////////////////

#METORONOMEMML={M4m4}

IF(#METORONOMEMML="") {
	#METORONOMEMML={M4m4m4m4}
}

IF(TEST=1) {
	DEBUG=2
	Tempo 200
}

IF(DEBUG>=1) {
	IF(DEBUG=2) {
		#DEBUGMML1={Sub{@1v90V(127)'v50o5do6fo7a#o8d'}}
		#DEBUGMML2={Sub{@1v90V(127)'v50o5co6eo7g#o8c'}}
		#DEBUGMML3={Sub{@1v127V(127)'v80o4cdefgabo6cdefgab'}}
	}
	TR(10)
		$M{n(MetronomeBell),}
		$m{n(MetronomeClick),}
		[10000
			Rythm{#METORONOMEMML}
		]
}
Function TmpChangeR(tempo, len) {
	TmpChange(tempo, len)
	r%(len)
}

Function TmpChange(tempo, len) {
	IF(len=0) {
		IF(DEBUG=2) {
			#DEBUGMML1
		}
	} ELSE {
		IF(DEBUG=2) {
			#DEBUGMML2
		}
	}

	IF(len=0) {
		IF(!(IGNORETEMPO<>1)) {
			IF(TEMPORATIO=0) {
				Tempo=tempo+TEMPODIFF
			} ELSE {
				Tempo=(tempo*TEMPORATIO)/100+TEMPODIFF
			}
		}
	} ELSE {
		IF(!(IGNORETEMPO<>1)) {
			Int TT1=Tempo
			Int TT2
			IF(TEMPORATIO=0) {
				TT2=tempo+TEMPODIFF
			} ELSE {
				TT2=(tempo*TEMPORATIO)/100+TEMPODIFF
			}
			Int TTDIFF=(TT2 - TT1)
			Int TTSTEP=TTDIFF
			IF(TTSTEP < 0) {
				TTSTEP=-TTDIFF
			}
			Int TTR=len / TTSTEP
			For(Int I=1; I < TTSTEP; I++) {
				Sub {
					r%(I*TTR)
					IF(TTDIFF < 0) {
						TT1 = TT1 - 1;
					} ELSE {
						TT1 = TT1 + 1;
					}
					Tempo = TT1;
				}
			}
			Sub{
				r%(len)
				IF(TEMPORATIO=0) {
					Tempo=tempo+TEMPODIFF
				} ELSE {
					Tempo=tempo*TEMPORATIO/100+TEMPODIFF
				}
			}
		}
	}
}

IF(TEST=1) {
	TR(1)
		TmpChange(100,0)
		o5l8cdefgfed
		TmpChange(120,!2)
		o5l8cdefgfed
		TmpChange(160,!2)
		o5l8cdefgfed
		TmpChange(80,!2)
		o5l8cdefgfed
		TmpChange(50,!2)
		o5l8cdefgfed
		TmpChange(160,!4)
		o5l8cdefgfed
		TmpChange(50,!2)
		o5l8cdefgfedc1
}

///////////////////////////////////////////////////////////////////////////////
// title:        "loop.h" ver 1.0
// description:  Loopインクルードファイル(2015/06/02)
// keywords:     SAKURA Function     by ななこっち★ @nanakochi123456
// HP:           http://nano.daiba.cx/
///////////////////////////////////////////////////////////////////////////////
// loop.h 可変回数のループ
///////////////////////////////////////////////////////////////////////////////
// Function LoopPlay
// LoopPlay(mml string value[, loop count offset]) max 5 parms.
//
// Example
// Int LOOP=4
// Include(loop.h)
// #mml={
//    cde
// }
// LoopPlay(#mml)
// LoopPlay(#mml,#mml2,0)
///////////////////////////////////////////////////////////////////////////////
// テストする時は、以下のコメントを外してください。
//Int TEST=1
//Int LOOP=5
///////////////////////////////////////////////////////////////////////////////

Function LoopPlay(Str Mml1, Str Mml2, Int count) {
	Str _MML
	For (Int i = 1; i < LOOP + count; i++) {
		_MML=_MML + Mml1 + Mml2
	}
	_MML=_MML + Mml1
	_MML
}

IF(TEST=1) {
	曲名{"かえるの歌(test)"}
	作者{"ドイツ民謡"}
	#mmla={
		l4
		cdef
		edc4.r8
	}
	#mmlb={
		l4
		efga
		gfe4.r8
	}

	#mmlc={
		crcr
		crcr
		l8ccddeeff
		l4
		edc2
	}
	
	TR(1)
		o5
		@(Clarinet)
		q95
		#mmla
		LoopPlay(#mmlb,3)
		#mmlc

	TR(2)
		o6
		@(Violin)
		q95
		[2 r1]
		#mmla
		LoopPlay(#mmlb,2)
		#mmlc

	TR(3)
		o4
		q95
		@(FrenchHorn)
		[4 r1]
		#mmla
		LoopPlay(#mmlb,1)
		#mmlc

	TR(4)
		o3
		q95
		@(Contrabass)
		[6 r1]
		#mmla
		LoopPlay(#mmlb,0)
		#mmlc

	TR(5)
		o3
		q95
		@(Timpani)
		[8 r1]
		#mmla
		LoopPlay(#mmlb,-1)
		#mmlc

}

///////////////////////////////////////////////////////////////////////////////
// title:        "rnd.h" ver 1.10
// description:  単音、和音、ドラムをランダムな音量とタイミングで演奏するインクルードファイル(2025/05/19)
// keywords:     SAKURA Function     by ななこっち★ @nanonano773
// License:      GPL3
///////////////////////////////////////////////////////////////////////////////
// rnd.h メロディー、和音、ドラムをランダムなタイミングで演奏する
///////////////////////////////////////////////////////////////////////////////
// 詳細の取扱説明書は、ファイル下部へ
//
// Function RMDINIT(rmin, rmax, vmin, vmax)
// 休符乱数値の最小値、最大値、最小、最大音量設定する。両方0にすると、同一タイミングで演奏します。
// 
// Function RMDR(rmin, rmax)
// 休符乱数値の最小値、最大値の設定のみする
//
// Function RMDV(rmin, rmax)
// 音量乱数値の最小値、最大値の設定のみする。
// 同一の値を設定を両方に行うと、固定音量となる。
// rmaxを省略すると、rmin、rmax共に加算、または減算を行なう
//
// rmin, rmaxは与える休符値、vmin, vmaxは与える音量値
// Function RMD(mml)
// ランダムに演奏したいメロディーのMMLを入力する
// Function RMDENABLE(1 or 0)
// メロディーランダム演奏機能を有効/無効にする
///////////////////////////////////////////////////////////////////////////////
// Function RCDINIT(rmin,rmax,vmin,vmax,vdif)
// 乱数値の最小値、最大値を設定する。両方0にすると、同一タイミングで演奏します。
// vmin,vmaxは音量の最小値、最大値
// vdifは音量増加値(マイナス値を指定すると減少値)
//
// Function RCD(mml)
// ランダムに演奏したい和音のMMLを入力する
// Function RCOT(mml)
// ランダムに演奏したい単音のMMLを入力すると、オクターブで演奏する。
// Function RCDENABLE(1 or 0)
// 和音ランダム演奏機能を有効/無効にする
// Function RCDR(rmin, rmax)
// Function RCDV(vmin, vmax)
// Function RCDAV(vmin, vmax)
// MMLの音文字の前に ! を指定することで、アクセントと認識する
// そのアクセントの音量を設定する
//
// RCDをSRCDに置き換えた同名関数があります。ケースバイケースで使い分けられます。
//
// RDINIT(ドラム音量,randvフラグ,randrフラグ,BDロテートフラグ,SDロテートフラグ,シンバルロテートフラグ)
// RDV(Int V)
// RDCresc(Int V)
// RandV(Int MIN, Int MAX)
// RandR(Int MIN, Int MAX)
// SyncR()
// #RDRUMSET1
///////////////////////////////////////////////////////////////////////////////
// Example
// Include(rnd.h)
// TR(1)
//   RMDINIT(53,513,90,110)
//   l4 RMD(ceg)
//   RMDV(5)
//   l8 RMD(<b>fg)
//   RMDV(-5)
//   l8 RMD(ceg)
// TR(2)
//   RCDINIT(53,513)
//   l4 RCD(ceg)
//   l8 RCD(<b>fg)
//   RCDINIT(53,513,90,100)
//   l8 RCD(ceg)
// TR(10)
//   RDINIT(110,1,1,1,1,1)
//   #RDRUMSET1
//   l8 [4 Rythm {'bh'h'sh''bh''bh'h'sh'h}]
///////////////////////////////////////////////////////////////////////////////

Int RMD_RMIN=192
Int RMD_RMAX=768
Int RMD_VMIN=95
Int RMD_VMAX=100
Int RMD_CRESC=0
Int RMD_ENABLE=1

Int RCD_MIN=192
Int RCD_MAX=768
Int RCD_VMIN=-1
Int RCD_VMAX=-1
Int RCD_AMIN=-1
Int RCD_AMAX=-1
Int RCD_CRESC=0
Int RCD_TMIN=-1
Int RCD_TMAX=-1
Int RCD_ENABLE=1

Int SRCD_MIN=192
Int SRCD_MAX=768
Int SRCD_VMIN=-1
Int SRCD_VMAX=-1
Int SRCD_CRESC=0
Int SRCD_TMIN=-1
Int SRCD_TMAX=-1
Int SRCD_ENABLE=1

Int BDROTATE=0
Int SDROTATE=0
Int CYMROTATE=0

Int BDINIT=0
Int CYMINIT=0
Int SDINIT=0

Int RANDV=0
Int RANDR=0

Int RDVOL=127

Function RMDENABLE(Int FLG) {
	RMD_ENABLE=FLG
}

Function RMDINIT(Int RMIN, Int RMAX, Int VMIN, Int VMAX) {
	RMD_RMIN=RMIN
	RMD_RMAX=RMAX
	RMD_VMIN=VMIN
	RMD_VMAX=VMAX
	RMD_CRESC=0
}

Function RMDCresc(Str STEP) {
	RMD_CRESC=STEP
}

Function RMDR(Int RMIN, Int RMAX) {
	RMD_RMIN=RMIN
	RMD_RMAX=RMAX
}

Function RMDV(Int VMIN, Int VMAX) {
	IF(VMAX=0) {
		Int TMPMIN=RMD_VMIN
		Int TMPMAX=RMD_VMAX
		TMPMIN=TMPMIN+VMIN
		TMPMAX=TMPMAX+VMIN
		IF(TMPMIN < 0) {
			TMPMIN=0
		}
		IF(TMPMIN > 127) {
			TMPMAX=127
		}
		IF(TMPMAX < 0) {
			TMPMAX=0
		}
		IF(TMPMAX > 127) {
			TMPMAX=127
		}
		RMD_VMIN=TMPMIN
		RMD_VMAX=TMPMAX
	} ELSE {
		RMD_VMIN=VMIN
		RMD_VMAX=VMAX
	}
}

Function RMD(Str MML) {
	Str BUF=""
	Str FIRST=""
	Str ML=""
	Str M
	Str R
	Str VL
	Str RRMML
	Str RMML
	Str FM=""
	Int C=0
	Str LenStr
	Int TOKEN=0
	Int TO=0
	Int ACT=0

	BUF=""
	R=""
	IF(RMD_ENABLE=0) {
		BUF=MML
	} ELSE {
		For(Int i=1; MID(MML, i, 1)!=""; i++) {
			M=MID(MML, i, 1)
			IF((ASC(M)>=48 && ASC(M)<=57) || M="r"||M="."||M="^") {
				IF(TO>=1) {
					LenStr=LenStr+M
				}
				ML=ML+M
			} ELSE {
				IF((ASC(M)>=97 && ASC(M)<=103)) {
					TOKEN++
					TO=1
					FM=RRMML+VL+ML+RMML
					IF(TOKEN>1) {
						C++
						IF(FM!="") {
							BUF=BUF+"Sub{"+FM+"}r"+LenStr
						}
						TOKEN=0
					} ELSE {
						BUF=BUF+ML
					}
					LenStr=""
					ML=M
					IF(RMD_RMAX>0) {
						R=Random(RMD_RMIN, RMD_RMAX)
						IF(Random(0,10)<5) {
							RRMML="r-"+R
							RMML="r"+R
						} ELSE {
							RRMML="r"+R
							RMML="r-"+R
						}
					}
					VL="v"+Random(RMD_VMIN, RMD_VMAX)
					RMDV(RMD_CRESC,0)
				} ELSE {
					ML=ML+M
					IF(TO=1) {
						TO=2
					}
					IF((ASC(M)>=97 && ASC(M)<=103) || M="r" || (ASC(M)>=48 && ASC(M)<=57) || M="." ||M="^"|| M="-"||M="#") {
					} ELSE {
						TO=0
					}
				}
			}
		}
		FM=RRMML+VL+ML+RMML
		IF(FM!="") {
			BUF=BUF+"Sub{"+FM+"}r"+LenStr
		}
	}
	BUF
}

Function RCDENABLE(Int FLG) {
	RCD_ENABLE=FLG
}

Function SRCDENABLE(Int FLG) {
	SRCD_ENABLE=FLG
}

Function RCDINIT(Int MIN, Int MAX, Int VMIN, Int VMAX, Int VDIF) {
	RCD_MIN=MIN
	RCD_MAX=MAX
	IF(VMIN<>0 && VMAX<>0) {
		RCD_VMIN=VMIN
		RCD_VMAX=VMAX
		RCD_CRESC=VDIF
	} ELSE {
		RCD_VMIN=-1
		RCD_VMAX=-1
		RCD_CRESC=0
	}
}

Function RCDR(Int RMIN, Int RMAX) {
	RCD_RMIN=RMIN
	RCD_RMAX=RMAX
}

Function RCDV(Int VMIN, Int VMAX) {
	RCD_CRESC=0
	IF(VMAX=0) {
		Int TMPMIN=RCD_VMIN
		Int TMPMAX=RCD_VMAX
		TMPMIN=TMPMIN+VMIN
		TMPMAX=TMPMAX+VMIN
		IF(TMPMIN < 0) {
			TMPMIN=0
		}
		IF(TMPMIN > 127) {
			TMPMAX=127
		}
		IF(TMPMAX < 0) {
			TMPMAX=0
		}
		IF(TMPMAX > 127) {
			TMPMAX=127
		}
		RCD_VMIN=TMPMIN
		RCD_VMAX=TMPMAX
	} ELSE {
		RCD_VMIN=VMIN
		RCD_VMAX=VMAX
	}
}

Function RCDAV(Int VMIN, Int VMAX) {
	RCD_CRESC=0
	IF(VMAX=0) {
		Int TMPMIN=RCD_AMIN
		Int TMPMAX=RCD_AMAX
		TMPMIN=TMPMIN+VMIN
		TMPMAX=TMPMAX+VMIN
		IF(TMPMIN < 0) {
			TMPMIN=0
		}
		IF(TMPMIN > 127) {
			TMPMAX=127
		}
		IF(TMPMAX < 0) {
			TMPMAX=0
		}
		IF(TMPMAX > 127) {
			TMPMAX=127
		}
		RCD_AMIN=TMPMIN
		RCD_AMAX=TMPMAX
	} ELSE {
		RCD_AMIN=VMIN
		RCD_AMAX=VMAX
	}
}

Function RCD(Str MML) {
	Str BUF=""
	Str FIRST=""
	Str ML=""
	Str M
	Str R
	Str FM
	Int C=0
	Str VL
	Int ACT=0

	IF(RCD_ENABLE=0) {
		BUF="'" + MML + "'"
	} ELSE {
		RCD_TMIN=RCD_VMIN
		RCD_TMAX=RCD_VMAX

		BUF=""
		R=""
		For(Int i=1; MID(MML, i, 1)!=""; i++) {
			M=MID(MML, i, 1)
			IF(DEBUG=1||TEST=1) {
				Print("Count "+ C + " Str="+M)
			}
			IF(M="!") {
				ACT=1
				C++
			} ELSE {
				IF(M="a"||M="b"||M="c"||M="d"||M="e"||M="f"||M="g") {
					C++
				  	IF(C<2) {
						FIRST=ML
						ML=FM+M
						FM=""
						IF(RCD_TMIN>=0 && RCD_TMAX>=0) {
							VL="v"+Random(RCD_TMIN, RCD_TMAX)
							RCD_TMIN=RCD_TMIN+RCD_CRESC
							RCD_TMAX=RCD_TMAX+RCD_CRESC
							IF(RCD_TMIN<0) { RCD_TMIN=0 }
							IF(RCD_TMIN>127) { RCD_TMIN=127 }
							IF(RCD_TMAX<0) { RCD_TMAX=0 }
							IF(RCD_TMAX>127) { RCD_TMAX=127 }
						} ELSE {
							VL=""
						}
						ML=VL+ML
					} ELSE {
						BUF=BUF+"Sub" + CHR(123)+R+ML+CHR(125)
						IF(RCD_MAX>0) {
							R=R+"r"+Random(RCD_MIN, RCD_MAX)
						}
						IF(RCD_TMIN>=0 && RCD_TMAX>=0) {
							IF(ACT == 0) {
								VL="v"+Random(RCD_TMIN, RCD_TMAX)
							} ELSE {
								VL="v"+Random(RCD_AMIN, RCD_AMAX)
							}
							ACT=0
							RCD_TMIN=RCD_TMIN+RCD_CRESC
							RCD_TMAX=RCD_TMAX+RCD_CRESC
							IF(RCD_TMIN<0) { RCD_TMIN=0 }
							IF(RCD_TMIN>127) { RCD_TMIN=127 }
							IF(RCD_TMAX<0) { RCD_TMAX=0 }
							IF(RCD_TMAX>127) { RCD_TMAX=127 }
						} ELSE {
							VL=""
						}
						ML=VL+M
					}
					ACT=0
				} ELSE {
					IF(M="#"||M="+"||M="-") {
						ML=ML+M
					} ELSE {
						IF(C>0) {
							ML=ML+VL+M
						} ELSE {
							FM=FM+VL+M
						}
					}
				}
			}
		}
		VL="Sub{r-96v"+Random(RMD_VMIN, RMD_VMAX)+"}"
		BUF=BUF+"Sub"+CHR(123)+R+ML+CHR(125)+FIRST+"r"
		IF(DEBUG=1 || TEST=1) {
			Print(BUF)
		}
	}
	BUF
}

Function ROCT(Str MML) {
	Str BUF=""
	Str FIRST=""
	Str ML=""
	Str M
	Str R
	Str FM
	Int C=0
	Str VL

	MML=MML + ">" + MML + "<"

	IF(RCD_ENABLE=0) {
		BUF="'" + MML + "'"
	} ELSE {
		RCD_TMIN=RCD_VMIN
		RCD_TMAX=RCD_VMAX

		BUF=""
		R=""
		For(Int i=1; MID(MML, i, 1)!=""; i++) {
			M=MID(MML, i, 1)
			IF(DEBUG=1||TEST=1) {
				Print("Count "+ C + " Str="+M)
			}
			IF(M="a"||M="b"||M="c"||M="d"||M="e"||M="f"||M="g") {
				C++
			  	IF(C<2) {
					FIRST=ML
					ML=FM+M
					FM=""
					IF(RCD_TMIN>=0 && RCD_TMAX>=0) {
						VL="v"+Random(RCD_TMIN, RCD_TMAX)
						RCD_TMIN=RCD_TMIN+RCD_CRESC
						RCD_TMAX=RCD_TMAX+RCD_CRESC
						IF(RCD_TMIN<0) { RCD_TMIN=0 }
						IF(RCD_TMIN>127) { RCD_TMIN=127 }
						IF(RCD_TMAX<0) { RCD_TMAX=0 }
						IF(RCD_TMAX>127) { RCD_TMAX=127 }
					} ELSE {
						VL=""
					}
					ML=VL+ML
				} ELSE {
					BUF=BUF+"Sub" + CHR(123)+R+ML+CHR(125)
					IF(RCD_MAX>0) {
						R=R+"r"+Random(RCD_MIN, RCD_MAX)
					}
					IF(RCD_TMIN>=0 && RCD_TMAX>=0) {
						VL="v"+Random(RCD_TMIN, RCD_TMAX)
						RCD_TMIN=RCD_TMIN+RCD_CRESC
						RCD_TMAX=RCD_TMAX+RCD_CRESC
						IF(RCD_TMIN<0) { RCD_TMIN=0 }
						IF(RCD_TMIN>127) { RCD_TMIN=127 }
						IF(RCD_TMAX<0) { RCD_TMAX=0 }
						IF(RCD_TMAX>127) { RCD_TMAX=127 }
					} ELSE {
						VL=""
					}
					ML=VL+M
				}
			} ELSE {
				IF(M="#"||M="+"||M="-") {
					ML=ML+M
				} ELSE {
					IF(C>0) {
						ML=ML+VL+M
					} ELSE {
						FM=FM+VL+M
					}
				}
			}
		}
		BUF=BUF+"Sub"+CHR(123)+R+ML+CHR(125)+FIRST+"r"
		IF(DEBUG=1 || TEST=1) {
			Print(BUF)
		}
	}
	BUF
}

Function SRCDINIT(Int MIN, Int MAX, Int VMIN, Int VMAX, Int VDIF) {
	SRCD_MIN=MIN
	SRCD_MAX=MAX
	IF(VMIN<>0 && VMAX<>0) {
		SRCD_VMIN=VMIN
		SRCD_VMAX=VMAX
		SRCD_CRESC=VDIF
	} ELSE {
		SRCD_VMIN=-1
		SRCD_VMAX=-1
		SRCD_CRESC=0
	}
}

Function SRCDR(Int RMIN, Int RMAX) {
	SRCD_RMIN=RMIN
	SRCD_RMAX=RMAX
}

Function SRCDV(Int VMIN, Int VMAX) {
	SRCD_CRESC=0
	IF(VMAX=0) {
		Int TMPMIN=SRCD_VMIN
		Int TMPMAX=SRCD_VMAX
		TMPMIN=TMPMIN+VMIN
		TMPMAX=TMPMAX+VMIN
		IF(TMPMIN < 0) {
			TMPMIN=0
		}
		IF(TMPMIN > 127) {
			TMPMAX=127
		}
		IF(TMPMAX < 0) {
			TMPMAX=0
		}
		IF(TMPMAX > 127) {
			TMPMAX=127
		}
		SRCD_VMIN=TMPMIN
		SRCD_VMAX=TMPMAX
	} ELSE {
		SRCD_VMIN=VMIN
		SRCD_VMAX=VMAX
	}
}

Function SRCD(Str MML) {
	Str BUF=""
	Str FIRST=""
	Str ML=""
	Str M
	Str R
	Str FM
	Int C=0
	Str VL

	SRCD_TMIN=SRCD_VMIN
	SRCD_TMAX=SRCD_VMAX

	IF(SRCD_ENABLE=0) {
		BUF="'" + MML + "'"
	} ELSE {
		BUF=""
		R=""
		For(Int i=1; MID(MML, i, 1)!=""; i++) {
			M=MID(MML, i, 1)
			IF(DEBUG=1||TEST=1) {
				Print("Count "+ C + " Str="+M)
			}
			IF(M="a"||M="b"||M="c"||M="d"||M="e"||M="f"||M="g") {
				C++
			  	IF(C<2) {
					FIRST=ML
					ML=FM+M
					FM=""
					IF(SRCD_TMIN>=0 && SRCD_TMAX>=0) {
						VL="v"+Random(SRCD_TMIN, SRCD_TMAX)
						SRCD_TMIN=SRCD_TMIN+SRCD_CRESC
						SRCD_TMAX=SRCD_TMAX+SRCD_CRESC
						IF(SRCD_TMIN<0) { SRCD_TMIN=0 }
						IF(SRCD_TMIN>127) { SRCD_TMIN=127 }
						IF(SRCD_TMAX<0) { SRCD_TMAX=0 }
						IF(SRCD_TMAX>127) { SRCD_TMAX=127 }
					} ELSE {
						VL=""
					}
					ML=VL+ML
				} ELSE {
					BUF=BUF+"Sub" + CHR(123)+R+ML+CHR(125)
					IF(SRCD_MAX>0) {
						R=R+"r"+Random(SRCD_MIN, SRCD_MAX)
					}
					IF(SRCD_TMIN>=0 && SRCD_TMAX>=0) {
						VL="v"+Random(SRCD_TMIN, SRCD_TMAX)
						SRCD_TMIN=SRCD_TMIN+SRCD_CRESC
						SRCD_TMAX=SRCD_TMAX+SRCD_CRESC
						IF(SRCD_TMIN<0) { SRCD_TMIN=0 }
						IF(SRCD_TMIN>127) { SRCD_TMIN=127 }
						IF(SRCD_TMAX<0) { SRCD_TMAX=0 }
						IF(SRCD_TMAX>127) { SRCD_TMAX=127 }
					} ELSE {
						VL=""
					}
					ML=VL+M
				}
			} ELSE {
				IF(M="#"||M="+"||M="-") {
					ML=ML+M
				} ELSE {
					IF(C>0) {
						ML=ML+VL+M
					} ELSE {
						FM=FM+VL+M
					}
				}
			}
		}
		BUF=BUF+"Sub"+CHR(123)+R+ML+CHR(125)+FIRST+"r"
		IF(DEBUG=1 || TEST=1) {
			Print(BUF)
		}
	}
	BUF
}

Function SROCT(Str MML) {
	Str BUF=""
	Str FIRST=""
	Str ML=""
	Str M
	Str R
	Str FM
	Int C=0
	Str VL

	MML=MML + ">" + MML + "<"
	IF(SRCD_ENABLE=0) {
		BUF="'" + MML + "'"
	} ELSE {
		SRCD_TMIN=SRCD_VMIN
		SRCD_TMAX=SRCD_VMAX

		BUF=""
		R=""
		For(Int i=1; MID(MML, i, 1)!=""; i++) {
			M=MID(MML, i, 1)
			IF(DEBUG=1||TEST=1) {
				Print("Count "+ C + " Str="+M)
			}
			IF(M="a"||M="b"||M="c"||M="d"||M="e"||M="f"||M="g") {
				C++
			  	IF(C<2) {
					FIRST=ML
					ML=FM+M
					FM=""
					IF(SRCD_TMIN>=0 && SRCD_TMAX>=0) {
						VL="v"+Random(SRCD_TMIN, SRCD_TMAX)
						SRCD_TMIN=SRCD_TMIN+SRCD_CRESC
						SRCD_TMAX=SRCD_TMAX+SRCD_CRESC
						IF(SRCD_TMIN<0) { SRCD_TMIN=0 }
						IF(SRCD_TMIN>127) { SRCD_TMIN=127 }
						IF(SRCD_TMAX<0) { SRCD_TMAX=0 }
						IF(SRCD_TMAX>127) { SRCD_TMAX=127 }
					} ELSE {
						VL=""
					}
					ML=VL+ML
				} ELSE {
					BUF=BUF+"Sub" + CHR(123)+R+ML+CHR(125)
					IF(SRCD_MAX>0) {
						R=R+"r"+Random(SRCD_MIN, SRCD_MAX)
					}
					IF(SRCD_TMIN>=0 && SRCD_TMAX>=0) {
						VL="v"+Random(SRCD_TMIN, SRCD_TMAX)
						SRCD_TMIN=SRCD_TMIN+SRCD_CRESC
						SRCD_TMAX=SRCD_TMAX+SRCD_CRESC
						IF(SRCD_TMIN<0) { SRCD_TMIN=0 }
						IF(SRCD_TMIN>127) { SRCD_TMIN=127 }
						IF(SRCD_TMAX<0) { SRCD_TMAX=0 }
						IF(SRCD_TMAX>127) { SRCD_TMAX=127 }
					} ELSE {
						VL=""
					}
					ML=VL+M
				}
			} ELSE {
				IF(M="#"||M="+"||M="-") {
					ML=ML+M
				} ELSE {
					IF(C>0) {
						ML=ML+VL+M
					} ELSE {
						FM=FM+VL+M
					}
				}
			}
		}
		BUF=BUF+"Sub"+CHR(123)+R+ML+CHR(125)+FIRST+"r"
		IF(DEBUG=1 || TEST=1) {
			Print(BUF)
		}
	}
	BUF
}

Function RDINIT(Int _RDVOL, Int _RANDV, Int _RANDR, Int _BDROTATE, Int _SDROTATE, Int _CYMROTATE) {
	RDVOL=_RDVOL
	RANDV=_RANDV
	RANDR=_RANDR
	BDROTATE=_BDROTATE
	SDROTATE=_SDROTATE
	CYMROTATE=_CYMROTATE
}

Function BassDrum(Int VO) {
	Int CC
	IF(BDROTATE=0) {
		CC=VO
	} ELSE {
		IF(BDINIT=0) {
			CC=BassDrum1
			BDINIT=1
		} ELSE {
				CC=BassDrum2
			BDINIT=0
		}
	}
	Result=CC
}

Function Snare(Int VO) {
	Int CC
	IF(SDROTATE=0) {
		CC=VO
	} ELSE {
		IF(SDINIT=0) {
			CC=Snare1
			SDINIT=1
		} ELSE {
				CC=Snare2
			SDINIT=0
		}
	}
	Result=CC
}

Function Cymbal(Int VO) {
	Int CC
	IF(CYMROTATE=0) {
		CC=VO
	} ELSE {
		IF(CYMINIT=0) {
			CC=CrashCymbal1
			CYMINIT=1
		} ELSE {
			CC=CrashCymbal2
			CYMINIT=0
		}
	}
	Result=CC
}

Function RDV(Int V) {
	RDVOL=V
}

Function RDCresc(Int V) {
	RDVOL=RDVOL+V
	IF(RDVOL>127) {
		RDVOL=127
	}
	IF(RDVOL<0) {
		RDVOL=0
	}
}

Function _RDV(Int V) {
	Int R=V
	R=R-(127-RDVOL)
	IF(R<0) {
		R=0
	}
	Result=R
}

Function RandV(Int MIN, Int MAX) {
	Str MML="v"
	IF(RANDV=0) {
		MML=MML+#STR(_RDV(MAX)
	} ELSE {
		MML=MML+Random(_RDV(MIN), _RDV(MAX))
	}
	MML
}

Str RMML
Function RandR(Int MIN, Int MAX) {
	Str MML
	IF(RANDR=1) {
		MML=MML+"r"
		RMML=RMML+"r"
		Int VALUE=Random(0,10)
		IF(VALUE<5) {
			MML=MML+"-"
		} ELSE {
			RMML=RMML+"-"
		}
		Str RAND=Random(MIN,MAX)
		MML=MML+RAND
		RMML=RMML+RAND
		MML
	}
}

Function SyncR() {
	Str MML=RMML
	RMML=""
	MML
}


#RDRUMSET1={
	// stick
	$k{Sub{RandR(800,1536) RandV(124,127) n(Sticks),16}r} //37

	// Bass Drum
	$B{Sub{RandR(800,1536) RandV(124,127) n(BassDrum(Kick2)),16}r}//35
	$b{Sub{RandR(800,1536) RandV(124,127) n(BassDrum(Kick1)),16}r}//36

	// Snare Drum
	$s{Sub{RandR(800,1536) RandV(120,127) n(Snare(Snare1)),16}r}//38
	$S{Sub{RandR(800,1536) RandV(120,127) n(Snare(Snare2)),16}r}//40

	// Toms
	$L{Sub{RandR(800,1536) RandV(123,127) n(LowTom2),16}r}//41
	$l{Sub{RandR(800,1536) RandV(123,127) n(LowTom1),16}r}//43
	$M{Sub{RandR(800,1536) RandV(123,127) n(MidTom2),16}r}//45
	$m{Sub{RandR(800,1536) RandV(123,127) n(MidTom1),16}r}//47
	$T{Sub{RandR(800,1536) RandV(123,127) n(HighTom2),16}r}//48
	$t{Sub{RandR(800,1536) RandV(123,127) n(HighTom1),16}r}//50

	// Hihat
	$p{Sub{RandR(800,1536) RandV(110,127) n(PedalHiHat),16}r}//44
	$h{Sub{RandR(800,1536) RandV( 65, 80) n(ClosedHiHat),16}r}//42
	$o{Sub{RandR(800,1536) RandV( 90,110) n(OpenHiHat),16}r}//46

	// Ride
	$r{Sub{RandR(800,1536) RandV(100,110) n(RideCymbal1),16}r}//51
	$R{Sub{RandR(800,1536) RandV(120,127) n(RideCymbal2),16}r}//59
	$P{Sub{RandR(800,1536) RandV(120,127) n(RideBell),16}r}//53

	// Cymbal
	$c{Sub{RandR(800,1536) RandV(120,127) n(Cymbal(CrashCymbal1)),16}r}//49
	$C{Sub{RandR(800,1536) RandV(120,127) n(Cymbal(CrashCymbal2)),16}r}//57

	// Splash
	$a{Sub{RandR(800,1536) RandV(120,127) n(SplashCymbal),16}r}//55
	$A{Sub{RandR(800,1536) RandV(120,127) n(ChineseCymbal),16}r}//52
}

/*
 ■ rnd.h

	名目上、CCライセンスは、表示-継承としましたが、
	コード部がメインなのでGPLライセンスを適用して下さい

	Includeフォルダに入れて使います
	rnd.hとリネーム後、サクラやTWのIncludeフォルダに入れて下さい

	-- 拡張子"h"が、何らかのソフトにより登録されている場合、
	"rnd.h.mml"等とリネームされることがあります

 	この場合、フォルダオプションの"登録されている拡張子は表示しない"
	のチェックを一時外し、リネームしてみて下さい --

 ■ 概要

	メロディーラインにごくわずかな休符を+/-につけたり、音量(ベロシティー)を
  範囲内でランダムに演奏させることで、リアルな演奏感をつけるものです。

 ■ 基本雛型
	Include(rnd.h)
	TR(1)
	  RMDINIT(53,513,90,110)
	  l4 RMD(ceg)
	  RMDV(5)
	  l8 RMD(<b>fg)
	  RMDV(-5)
	  l8 RMD(ceg)
	TR(2)
	  RCDINIT(53,513)
	  l4 RCD(ceg)
	  l8 RCD(<b>fg)
	  RCDINIT(53,513,90,100)
	  l8 RCD(ceg)

 ■ 関数 RMDINIT(rmin, rmax, vmin, vmax)
  RMD機能の初期化を行います。
	rmin : 休符の最小値 (1~System.TimeBaseの値)
	rmax : 休符の最大値 (1~System.TimeBaseの値)
	vmin : 音量の最小値 (0~127)
	vmax : 音量の最大値 (0~127)

 ■ 関数 RMD(mml)
  MMLを生演奏に近くなるように演奏をします。
  (ストトンは使えません)
  サポートしているMMLリスト
		c- c c# d- d d# e- e e# f- f f# g- g g# a- a a# b- b b#
		r . ^
		1 2 3 4 5 6 7 8 9 0
	※数値は一応サポートしていますが、長さがうまくいかない場合、
   前に l8 等をつけて対応して下さい。

  ※和音はサポートしていません。RCD系の関数を使用して下さい。

 ■ 関数 RMDR(rmin, rmax)
  RMD機能の休符値のみ設定します。
	rmin : 休符の最小値 (1~System.TimeBaseの値)
	rmax : 休符の最大値 (1~System.TimeBaseの値)

 ■ 関数 RMDV(vmin, vmax)
  RMD機能の音量値のみ設定します。
	vmin : 音量の最小値 (0~127)
	vmax : 音量の最大値 (0~127)

 ■ 関数 RMDCresc(cresc)
  ノートごとにcresc値の乱数音量値分を増量します。
  マイナス値を設定すると、減量します。
	cresc : 音量増減分 (-127~127)

 ■ 関数 RMDEnable(enabled)
  RMD機能を有効にします。初期値は1です。
  enabled : 1=有効、0=無効

 ■ 関数 RCDINIT(rmin,rmax,vmin,vmax,vdif)
  RCD機能の乱数値を設定する。
	rmin : 休符の最小値 (1~System.TimeBaseの値)
	rmax : 休符の最大値 (1~System.TimeBaseの値)
	vmin : 音量の最小値 (0~127)
	vmax : 音量の最大値 (0~127)
	vdif : 音量増加値(マイナスを設定すると減少値) (-127~127)

 ■ 関数 RCD(mml)
	和音のMMLを生演奏に近くなるように演奏をします。
	すでに「'~'」で囲まれているのと同等です。

  (ストトンは使えません)
  サポートしているMMLリスト
		c- c c# d- d d# e- e e# f- f f# g- g g# a- a a# b- b b#
		r . ^
		1 2 3 4 5 6 7 8 9 0
	※数値は一応サポートしていますが、長さがうまくいかない場合、
   前に l8 等をつけて対応して下さい。

  ※単音はサポートしていません。RMD系の関数を使用して下さい。

 ■ RCOT(mml)
  単音のMMLを入れると自動的に1オクターブ上の音と一緒に和音で生演奏に
  近くなるように演奏をします。

  (ストトンは使えません)
  サポートしているMMLリスト
		c- c c# d- d d# e- e e# f- f f# g- g g# a- a a# b- b b#
		r . ^
		1 2 3 4 5 6 7 8 9 0
	※数値は一応サポートしていますが、長さがうまくいかない場合、
   前に l8 等をつけて対応して下さい。

 ■ 関数 RCDR(rmin, rmax)
  RCD機能の休符値のみ設定します。
	rmin : 休符の最小値 (1~System.TimeBaseの値)
	rmax : 休符の最大値 (1~System.TimeBaseの値)

 ■ 関数 RCDV(vmin, vmax)
  RCD機能の音量値のみ設定します。
	vmin : 音量の最小値 (0~127)
	vmax : 音量の最大値 (0~127)

 ■ 関数 RCDEnable(enabled)
  RCD機能を有効にします。初期値は1です。
  enabled : 1=有効、0=無効

 ■ 関数 SRCDINIT(rmin,rmax,vmin,vmax,vdif)
  RCD機能(サブ)の乱数値を設定する。
	rmin : 休符の最小値 (1~System.TimeBaseの値)
	rmax : 休符の最大値 (1~System.TimeBaseの値)
	vmin : 音量の最小値 (0~127)
	vmax : 音量の最大値 (0~127)
	vdif : 音量増加値(マイナスを設定すると減少値) (-127~127)

 ■ 関数 SRCD(mml)
	和音のMMLを生演奏に近くなるように演奏をします。
	すでに「'~'」で囲まれているのと同等です。

  (ストトンは使えません)
  サポートしているMMLリスト
		c- c c# d- d d# e- e e# f- f f# g- g g# a- a a# b- b b#
		r . ^
		1 2 3 4 5 6 7 8 9 0
	※数値は一応サポートしていますが、長さがうまくいかない場合、
   前に l8 等をつけて対応して下さい。

  ※単音はサポートしていません。RMD系の関数を使用して下さい。

 ■ SRCOT(mml)
  単音のMMLを入れると自動的に1オクターブ上の音と一緒に和音で生演奏に
  近くなるように演奏をします。

  (ストトンは使えません)
  サポートしているMMLリスト
		c- c c# d- d d# e- e e# f- f f# g- g g# a- a a# b- b b#
		r . ^
		1 2 3 4 5 6 7 8 9 0
	※数値は一応サポートしていますが、長さがうまくいかない場合、
   前に l8 等をつけて対応して下さい。

 ■ 関数 SRCDR(rmin, rmax)
  RCD機能(サブ)の休符値のみ設定します。
	rmin : 休符の最小値 (1~System.TimeBaseの値)
	rmax : 休符の最大値 (1~System.TimeBaseの値)

 ■ 関数 SRCDV(vmin, vmax)
  RCD機能(サブ)の音量値のみ設定します。
	vmin : 音量の最小値 (0~127)
	vmax : 音量の最大値 (0~127)

 ■ 関数 SRCDEnable(enabled)
  RCD機能(サブ)を有効にします。初期値は1です。
  enabled : 1=有効、0=無効

 ■ RDINIT(rdvol,randv_flag,randr_flag,bdrotate,sdrotate,cymrotate)
	RD機能を初期化します。
	rdvol : ドラムの基本音量(0~127)
	randv_flag : ランダム音量フラグ 1=有効、0=無効
	randr_flag : ランダム休符フラグ 1=有効、0=無効
	bdrotate   : バスドラムロテートフラグ  1=有効、0=無効
  sdrotate   : スネアドラムロテートフラグ  1=有効、0=無効
  cymrotate  : シンバルロテートフラグ  1=有効、0=無効

 ■ RDV(vol)
  RD機能の基本音量を設定します(0~127)

 ■ RDCresc(vol)
  ノートごとに音量増をします。マイナス値を設定すると、減をします。 (0~127)

 ■ RandV(Int MIN, Int MAX)
	ドラム定義マクロ内で使用する音量乱数範囲設定関数
	MIN : 最小音量 (0~127)
	MAX : 最大音量 (0~127)

 ■ RandR(Int MIN, Int MAX)
	ドラム定義マクロ内で使用する休符乱数範囲設定関数
	MIN : 休符の最小値 (1~System.TimeBaseの値)
	MAX : 休符の最大値 (1~System.TimeBaseの値)

 ■ SyncR()
	通常使用することはありませんが、ドラムの乱数休符を強制的にクリアする関数

 ■ #RDRUMSET1
	既にRDVで定義してあるサンプルドラムセット
  以下に対応します。
		k : Sticks
		B : Kick2 / b : Kick1
		s : Snare1 / S : Snare2
		L : LowTom2 / l : LowTom1
		M : MidTom2 / m : MidTom2
		T : HighTom2 / t : HighTom1
		p : PedalHihat / h : ClosedHihat / o : OPenHihat
		r : RideCymbal1 / R : RideCymbal2 / P : RideBell
		c : CrashCYmbal1 / C : CrashCymbal2
		a : SplashCymbal / A : ChineseCymbal

 ■ ドラムセットの指定方法のサンプル
	$p{Sub{RandR(800,1536) RandV(110,127) n(PedalHiHat),16}r}
	$h{Sub{RandR(800,1536) RandV( 65, 80) n(ClosedHiHat),16}r}
	$o{Sub{RandR(800,1536) RandV( 90,110) n(OpenHiHat),16}r}

  このマクロで指定することで、通常通りのドラムマクロで演奏感をつけることができます。
  ※ただし、ドラムノート音の長さに依存するものは、16の数字を適時変更するか、
	 通常の方法でマクロを指定して下さい。

 ■ よりリアリティーある演奏にさせるためのコツ
  より細かいシステムクォンタイズ(System.TimeBase)にすることをおすすめします。
	最低でも System.TimeBase=192に設定するようにしましょう。

 ■ 現在わかってる問題
	MMLに数字を入れて長さを設定してもうまくいかないことがあります。
	その場合は、事前に、l8 等を設定して、長さを設定して下さい。

*/

///////////////////////////////////////////////////////////////////////////////
// title:        "marimba.h" ver 0.1
// description:  マリンバ記述用インクルードファイル(2015/06/02)
// keywords:     SAKURA Function     by ななこっち★ @nanakochi123456
// HP:           http://nano.daiba.cx/
///////////////////////////////////////////////////////////////////////////////
// marimba.h マリンバ記述用関数
///////////////////////////////////////////////////////////////////////////////
// Function MRINIT(len, Q, min, value)
// マリンバの繰り返す速度、乱数値の最小値、最大値を設定する。両方0にすると、同一タイミングで演奏します。
//
// Function MRCresc(VOL, Offset[, Offset]) {
// 初期音量とノートごとのオフセットを設定する。
//
// Function MCD(mml)
// 2音等の和音をランダムなタイミングで演奏する
//
// Function MR(mml1, mml2, len)
// mml1 -> mml2 -> mml1-> ... のように、len長さ分だけ演奏する
///////////////////////////////////////////////////////////////////////////////
// Example
// Include(marimba.h)
// MRINIT(53,513)
// l4 MR(ceg)
// l8 MR(<b>fg)
// l8 MR(ceg)
///////////////////////////////////////////////////////////////////////////////
// テストする場合、コメントアウトを消して下さい。
//Int TEST=1
///////////////////////////////////////////////////////////////////////////////

Int MR_LEN=!16
Int MR_Q=85
Int MR_MIN=192
Int MR_MAX=768
Int MR_INITVOL=100
Int MR_VOL=100
Int MR_CRESC=0
Int MR_CRESC2=0

// マリンバ初期化
Function MRINIT(Int LEN, Int Q, Int MIN, Int MAX) {
	MR_LEN=LEN
	MR_Q=Q
	MR_MIN=MIN
	MR_MAX=MAX
}

// マリンバの両手別のクレッシェンド
Function MRCresc(Int VOL, Int Offset, Int Offset2) {
	MR_INITVOL=VOL
	MR_CRESC=Offset
	MR_CRESC2=Offset2
}

// マリンバの両手同時、rchord.h RCDと同じ関数
Function MCD(Str MML) {
	Str BUF=""
	Str FIRST=""
	Str ML=""
	Str M
	Str R
	Str FM
	Int C=0

	BUF=""
	R=""

	For(Int i=1; MID(MML, i, 1)!=""; i++) {
		M=MID(MML, i, 1)
		IF(M="a"||M="b"||M="c"||M="d"||M="e"||M="f"||M="g") {
		C++
	  	IF(C<2) {
			FIRST=ML
			ML=FM+M
			FM=""
		} ELSE {
				BUF=BUF+"Sub" + CHR(123)+R+ML+CHR(125)
				IF(MR_MAX>0) {
					R=R+"r"+Random(MR_MIN, MR_MAX)
				}
				ML=M
		}
		} ELSE {
		IF(C>0) {
				ML=ML+M
		} ELSE {
			FM=FM+M
		}
		}
	}
	BUF=BUF+"Sub"+CHR(123)+R+ML+CHR(125)+FIRST+"r"
	BUF
}

// マリンバの両手別
Function MR(Str MML1, Str MML2, Int Len) {
	Str MML="Sub"+CHR(123)
	Str BUF1=""
	Str BUF2=""
	Str FIRST1=""
	Str FIRST2=""
	Str ML1=""
	Str ML2=""
	Str M
	Str R
	Str FM1
	Str FM2
	Int C=0

	MR_VOL=MR_INITVOL
	MML=MML+"v"+MR_VOL
	For (Int i=0; i <= (Len / MR_LEN / 2) * MR_Q / 100; i++) {
		BUF1=""
		BUF2=""
		FIRST1=""
		FIRST2=""
		ML1=""
		ML2=""
		
		R=""
		C=0
		For(Int i=1; MID(MML1, i, 1)!=""; i++) {
			M=MID(MML1, i, 1)
			IF(M="a"||M="b"||M="c"||M="d"||M="e"||M="f"||M="g") {
				C++
			  	IF(C<2) {
					FIRST1=ML1
					ML1=FM1+M
					FM1=""
				} ELSE {
						BUF1=BUF1+"Sub" + CHR(123)+R+ML1+CHR(125)
						IF(MR_MAX>0) {
							R=R+"r"+Random(MR_MIN, MR_MAX)
						}
						ML1=M
				}
			} ELSE {
				IF(C>0) {
						ML1=ML1+M
				} ELSE {
					FM1=FM1+M
				}
			}
		}
		BUF1=BUF1+"Sub"+CHR(123)+R+ML1+CHR(125)+FIRST1+"r%"+MR_LEN
		R=""
		C=0
		For(Int i=1; MID(MML2, i, 1)!=""; i++) {
			M=MID(MML2, i, 1)
			IF(M="a"||M="b"||M="c"||M="d"||M="e"||M="f"||M="g") {
				C++
		  		IF(C<2) {
					FIRST2=ML2
					ML2=FM2+M
					FM2=""
				} ELSE {
					BUF2=BUF2+"Sub" + CHR(123)+R+ML1+CHR(125)
					IF(MR_MAX>0) {
						R=R+"r"+Random(MR_MIN, MR_MAX)
					}
					ML2=M
				}
			} ELSE {
				ML2=ML2+M
			}
		}
		BUF2=BUF2+"Sub"+CHR(123)+FIRST2+R+ML2+CHR(125)+"r%"+MR_LEN

		MML=MML+BUF1
		IF(MR_CRESC2 == 0) {
			MR_VOL=MR_VOL+MR_CRESC
			MML=MML+"v"+MR_VOL
			MML=MML+BUF2
			MR_VOL=MR_VOL+MR_CRESC
			MML=MML+"v"+MR_VOL
		} ELSE {
			IF(i < (Len / 200 )) {
				MR_VOL=MR_VOL+MR_CRESC
				MML=MML+"v"+MR_VOL
				MML=MML+BUF2
				MR_VOL=MR_VOL+MR_CRESC
				MML=MML+"v"+MR_VOL
			} ELSE {
				MR_VOL=MR_VOL+MR_CRESC2
				MML=MML+"v"+MR_VOL
				MML=MML+BUF2
				MR_VOL=MR_VOL+MR_CRESC2
				MML=MML+"v"+MR_VOL
			}
		}

		MML=MML+" "
	}
	MML=MML+CHR(125)+"r%"+Len

	MR_VOL=MR_INITVOL
	MML=MML+"v"+MR_VOL
	MML
}
/*
		v110
		音色(Marimba)
		MRINIT(!24, 70, 240,460)
		MRCresc(110,-5)
		l8
		[
			MCD(e>e<) MCD(g>g<) MCD(f>f<) MCD(e>e<)
			MCD(d>d<) MCD(f>f<) MCD(e>e<) MCD(d>d<)
			MR("ce",">c<",!4) MR("df",">d<",!4)
			MR("eg",">e<",!4.) r8

			MCD(e>e<) MCD(g>g<) MCD(f>f<) MCD(e>e<)
			MCD(d>d<) MCD(f>f<) MCD(e>e<) MCD(d>d<)
			MR("ce",">e<",!4) MR("fa",">a<",!4)
			MR("eg",">g<",!4.) r8
		]

		MRINIT(!24, 80, 240,460)
		r MCD(g>g<) > MCD(c>c<) < MCD(b>b<)
		MR("fa",">fa<",!4.) r8

		r MCD(f>f<) MCD(b>b<) MCD(a>a<)
		MR("eg",">eg<",!4.) r8

		r MCD(e>e<) MCD(a>a<) MCD(g>g<)
		MR("df",">df<",!4.) r8

		r MCD(d>d<) MCD(g>g<) MCD(f>f<)
		MR("ce",">ce<",!4.) r8

		[
			r MCD(g>g<) > MCD(c>c<) < MCD(b>b<)
			MR("fa",">fa<",!4.) r8
		]

		r MCD(g>g<) > MCD(c>c<) < MCD(b>b<)
		MR("fa",">fa<",!4) MCD(g>g<) MCD(f>f<)
		MR("e",">e<",!4) MR("d",">d<",!4)
		[3
			MR("ce",">c<",!2)
		]
*/

#REV={
	IF(TWM2=1) {
		REV(50)
	}ELSE{
		REV(100)
	}
}

#R={
	RCDINIT(480,960)
	RMDINIT(192,800,90,110)
}

IF(DY=0) {
	#SP={
		RMDCresc(0)
		RMDV(33,36)
		RCDV(33,36)
		RCDAV(36,48)
		Sub {RMD(r96)}
	}

	#SPA={
		RMDCresc(0)
		RMDV(33,36)
		RCDV(33,36)
		RCDAV(48,56)
		Sub {RMD(r96)}
	}

	#PP={
		RMDCresc(0)
		RMDV(33,48)
		RCDV(33,48)
		RCDAV(48,56)
		Sub {RMD(r96)}
	}

	#PPA={
		RMDCresc(0)
		RMDV(33,48)
		RCDV(33,48)
		RCDAV(56,64)
		Sub {RMD(r96)}
	}

	#PPS={
		RMDCresc(0)
		RMDV(40,56)
		RCDV(40,56)
		RCDAV(56,64)
		Sub {RMD(r96)}
	}

	#PPSA={
		RMDCresc(0)
		RMDV(40,56)
		RCDV(40,56)
		RCDAV(64,72)
		Sub {RMD(r96)}
	}

	#P={
		RMDCresc(0)
		RMDV(48,64)
		RCDV(48,64)
		RCDAV(64,72)
		Sub {RMD(r96)}
	}

	#PA={
		RMDCresc(0)
		RMDV(48,64)
		RCDV(48,64)
		RCDAV(72,80)
		Sub {RMD(r96)}
	}

	#PS={
		RMDCresc(0)
		RMDV(56,72)
		RCDV(56,72)
		RCDAV(72,80)
		Sub {RMD(r96)}
	}

	#PSA={
		RMDCresc(0)
		RMDV(56,72)
		RCDV(56,72)
		RCDAV(80,88)
		Sub {RMD(r96)}
	}

	#M={
		RMDCresc(0)
		RMDV(64,80)
		RCDV(64,80)
		RCDAV(80,88)
		Sub {RMD(r96)}
	}

	#MA={
		RMDCresc(0)
		RMDV(64,80)
		RCDV(64,80)
		RCDAV(88,96)
		Sub {RMD(r96)}
	}

	#MS={
		RMDCresc(0)
		RMDV(72,88)
		RCDV(72,88)
		RCDAV(88,96)
		Sub {RMD(r96)}
	}

	#MSA={
		RMDCresc(0)
		RMDV(72,88)
		RCDV(72,88)
		RCDAV(96,104)
		Sub {RMD(r96)}
	}

	#F={
		RMDCresc(0)
		RMDV(80,96)
		RCDV(80,96)
		RCDAV(96,104)
		Sub {RMD(r96)}
	}

	#FA={
		RMDCresc(0)
		RMDV(80,96)
		RCDV(80,96)
		RCDAV(104,112)
		Sub {RMD(r96)}
	}

	#FS={
		RMDCresc(0)
		RMDV(88,104)
		RCDV(88,104)
		RCDAV(104,112)
		Sub {RMD(r96)}
	}

	#FSA={
		RMDCresc(0)
		RMDV(88,104)
		RCDV(88,104)
		RCDAV(112,120)
		Sub {RMD(r96)}
	}

	#FF={
		RMDCresc(0)
		RMDV(96,112)
		RCDV(96,112)
		RCDAV(112,120)
		Sub {RMD(r96)}
	}

	#FFA={
		RMDCresc(0)
		RMDV(96,112)
		RCDV(96,112)
		RCDAV(120,127)
		Sub {RMD(r96)}
	}

	#FFS={
		RMDCresc(0)
		RMDV(104,120)
		RCDV(104,120)
		RCDAV(120,127)
		Sub {RMD(r96)}
	}

	#FFSA={
		RMDCresc(0)
		RMDV(104,120)
		RCDV(104,120)
		RCDAV(127,127)
		Sub {RMD(r96)}
	}

	#SF={
		RMDCresc(0)
		RMDV(112,127)
		RCDV(112,127)
		RCDAV(127,127)
		Sub {RMD(r96)}
	}

	#SFA={
		RMDCresc(0)
		RMDV(112,127)
		RCDV(112,127)
		RCDAV(127,127)
		Sub {RMD(r96)}
	}

	#SSF={
		RMDCresc(0)
		RMDV(127,127)
		RCDV(127,127)
		RCDAV(127,127)
		Sub {RMD(r96)}
	}

	#SSFA={
		RMDCresc(0)
		RMDV(127,127)
		RCDV(127,127)
		RCDAV(127,127)
		Sub {RMD(r96)}
	}

} ELSE {
	#SP={
		RMDCresc(0)
		RMDV(36,52)
		RCDV(36,52)
		RCDAV(52,64)
		Sub {RMD(r96)}
	}

	#SPA={
		RMDCresc(0)
		RMDV(36,52)
		RCDV(36,52)
		RCDAV(64,72)
		Sub {RMD(r96)}
	}

	#PP={
		RMDCresc(0)
		RMDV(52,64)
		RCDV(52,64)
		RCDAV(64,72)
		Sub {RMD(r96)}
	}

	#PPA={
		RMDCresc(0)
		RMDV(52,64)
		RCDV(52,64)
		RCDAV(72,80)
		Sub {RMD(r96)}
	}

	#PPS={
		RMDCresc(0)
		RMDV(56,72)
		RCDV(56,72)
		RCDAV(72,80)
		Sub {RMD(r96)}
	}

	#PPSA={
		RMDCresc(0)
		RMDV(56,72)
		RCDV(56,72)
		RCDAV(80,84)
		Sub {RMD(r96)}
	}

	#P={
		RMDCresc(0)
		RMDV(64,80)
		RCDV(64,80)
		RCDAV(80,84)
		Sub {RMD(r96)}
	}

	#PA={
		RMDCresc(0)
		RMDV(64,80)
		RCDV(64,80)
		RCDAV(84,92)
		Sub {RMD(r96)}
	}

	#PS={
		RMDCresc(0)
		RMDV(72,84)
		RCDV(72,84)
		RCDAV(84,92)
		Sub {RMD(r96)}
	}

	#PSA={
		RMDCresc(0)
		RMDV(72,84)
		RCDV(72,84)
		RCDAV(92,96)
		Sub {RMD(r96)}
	}

	#M={
		RMDCresc(0)
		RMDV(80,92)
		RCDV(80,92)
		RCDAV(92,96)
		Sub {RMD(r96)}
	}

	#MA={
		RMDCresc(0)
		RMDV(80,92)
		RCDV(80,92)
		RCDAV(96,108)
		Sub {RMD(r96)}
	}

	#MS={
		RMDCresc(0)
		RMDV(84,96)
		RCDV(84,96)
		RCDAV(96,108)
		Sub {RMD(r96)}
	}

	#MSA={
		RMDCresc(0)
		RMDV(84,96)
		RCDV(84,96)
		RCDAV(108,112)
		Sub {RMD(r96)}
	}

	#F={
		RMDCresc(0)
		RMDV(92,108)
		RCDV(92,108)
		RCDAV(108,112)
		Sub {RMD(r96)}
	}

	#FA={
		RMDCresc(0)
		RMDV(92,108)
		RCDV(92,108)
		RCDAV(112,120)
		Sub {RMD(r96)}
	}

	#FS={
		RMDCresc(0)
		RMDV(96,112)
		RCDV(96,112)
		RCDAV(112,120)
		Sub {RMD(r96)}
	}

	#FSA={
		RMDCresc(0)
		RMDV(96,112)
		RCDV(96,112)
		RCDAV(120,124)
		Sub {RMD(r96)}
	}

	#FF={
		RMDCresc(0)
		RMDV(108,120)
		RCDV(108,120)
		RCDAV(120,124)
		Sub {RMD(r96)}
	}

	#FFA={
		RMDCresc(0)
		RMDV(108,120)
		RCDV(108,120)
		RCDAV(124,127)
		Sub {RMD(r96)}
	}

	#FFS={
		RMDCresc(0)
		RMDV(112,124)
		RCDV(112,124)
		RCDAV(124,127)
		Sub {RMD(r96)}
	}

	#FFSA={
		RMDCresc(0)
		RMDV(112,124)
		RCDV(112,124)
		RCDAV(127,127)
		Sub {RMD(r96)}
	}

	#SF={
		RMDCresc(0)
		RMDV(120,127)
		RCDV(120,127)
		RCDAV(127,127)
		Sub {RMD(r96)}
	}

	#SSF={
		RMDCresc(0)
		RMDV(127,127)
		RCDV(127,127)
		RCDAV(127,127)
		Sub {RMD(r96)}
	}
}

Key(KEY)

TR(1)
	#REV

TR(2)
	#REV

TR(3)
	#REV

TR(4)
	#REV


曲名={"ペルシャの市場にて なの2台のピアノ用アレンジバージョン (打ち込み版)"}
作者={"ななこっち★ based by Albert William Ketelbey"}

拍子 2,4

#PEDALON={Sub {r56y64,127}}
#PEDALOFF={Sub{r-48 RandR(50,72) y64,0}}
#PEDALOFF2={Sub{r-48 RandR(48,52) y64,0}}
//#PEDALOFF={Sub{r-32 y64,0 y64,0}}

// Part1
#P01_16={
	TR(16)
		TmpChangeR(105,0)TmpChangeR(108,!1)
		[16 r2]
}

#P01_01={
	TR(1)
		o7 l8 #R #PPS q40
		r2
		r4.
		RMD(e)
		[r-48RMD(g#48)RMD(a)r8]
		r-48RMD(g#48)RMD(a)r8RMD(b->e<)
		[r-48RMD(g#48)RMD(a)r8]
		r-48RMD(g#48)RMD(a)r8RMD(ge)
		[r-48RMD(g#48)RMD(a)r8]
		r-48RMD(g#48)RMD(a)r8RMD(b->e<)
		RMDCresc(3)RMD(a)q96l16RMD(>e<a >e<a >d<b-)
		RMDCresc(-2)q96RMD(>c<aec)q40l8RMD(e) <RMD(b)>

		#PPS [r-48RMD(d#48)RMD(e)r8]
		r-48RMD(d#48)RMD(e)r8RMD(fb)
		[r-48RMD(d#48)RMD(e)r8]
		r-48RMD(d#48)RMD(e)r8r-24RMD(d48e48)RMD(d<b>)
		[r-48RMD(d#48)RMD(e)r8]
		r-48RMD(d#48)RMD(e)r8RMD(fb)
		RMDCresc(2)RMD(e)q96l16RMD(be be af)
		q96RMD(g#e<bg#)q40l8RMD(b) RMD(e)
}

#P01_02={
	TR(2)
		o6 l8 #R #PPS q40
		r2
		r4.
		RMD(e)
		[RMD(a)r8]
		RMD(a)r8RMD(b->e<)
		[RMD(a)r8]
		RMD(a)r8RMD(ge)
		[RMD(a)r8]
		RMD(a)r8RMD(b->e<)
		RMDCresc(3)RMD(a)[RCD(>ce<)]RCD(b->d<)
		RMDCresc(-2)RCD(a>c<)rr <RMD(b)>

		#PPS [RMD(e)r8]
		RMD(e)r8RMD(fb)
		[RMD(e)r8]
		RMD(e)r8RMD(d<b>)
		[RMD(e)r8]
		RMD(e)r8RMD(fb)
		RMDCresc(3)RMD(e)[RCD(g#b)]RCD(fa)
		RCD(eg#)rr <RMD(e)>
}

#P01_03={
	TR(3)
		o5 l8 #R #PPS q40
		[8 r2]
		r[RCD(e>ce<)]RCD(db->d<)
		q95l16Sub{RMD(c)}RMD(>c<aec)q40l8RMD(e) r
		[6 r2]
		r[RCD(g#b)]RCD(fa)
		q95l16RMD(g#e<bg#)q40l8RMD(b) r
}

#P01_04={
	TR(4)
		o2 l8 #R #PPS q40
		[RMD(a>e<)]
		[RMD(a>e<)]

		[RMD(a>e<)]
		RMD(a>e<)RMD(b->e<)
		[RMD(a>e<)]
		RMD(a>e<)RMD(ge)
		[RMD(a>e<)]
		RMD(a>e<)RMD(b->e<)
		RMD(a)q55[6 RCD(a>ea<)]q40
		RMD(b)
		>
		[RMD(eb)]
		#MS RMD(e)#PPS RMD(b)RMD(fb)
		#MS [RMD(e)#PPS RMD(b)]
		#MS RMD(e)#PPS RMD(b)RMD(d<b>)
		#F  [RMD(e)#PPS RMD(b)]
		#F RMD(e)#PPS RMD(b)RMD(fb)
		RMD(e)q58 #P [6 RCD(!eb>e<)]q40
		RMD(e)
}

// Part2
#P02_16={
	TR(16)
		[16 r2]
}

#P02_01={
	TR(1)
		o7 q98 #FS
		l4[Sub{RMD(c)}#P RMD(e32f32)#FS RMD(e8.)]
		Sub{RMD(c)}#P RMD(e32f32)#FS RMD(e8.)l8q50RCD(<b->d)RCD(<gb->)
		q98l4[Sub{RMD(c)}#P RMD(e32f32)#FS RMD(e8.)]
		Sub{RMD(c)}#P RMD(e32f32)#FS RMD(e8.)l8q50RCD(ce!g)RCD(ce!a)
		q98l4[Sub{RMD(c)}#P RMD(e32f32)#FS RMD(e8.)]
		Sub{RMD(c)}#P RMD(e32f32)#FS RMD(e8.)l8q50RCD(<b->d)RCD(<gb->)
		RCD(ce)l16#F q98RMDCresc(-3)RMD(e<a> e<a> d<b-)
		RMD(>c<aec)l8q50RMD(e)#FS <RMD(b)>

		q98l4[Sub{RMD(g#)}#P RMD(b32>c32<)#FS RMD(b8.)]
		Sub{RMD(g#)}#P RMD(b32>c32<)#FS RMD(b8.)l8q50RCD(fa)RCD(df)
		q98l4[Sub{RMD(g#)}#P RMD(b32>c32<)#FS RMD(b8.)]
		Sub{RMD(g#)}#P RMD(b32>c32<)#FS RMD(b8.)l8q50RCD(fb>!d<)RCD(fb>!e<)
		q98l4[Sub{RMD(g#)}#P RMD(b32>c32<)#FS RMD(b8.)]
		Sub{RMD(g#)}#P RMD(b32>c32<)#FS RMD(b8.)l8q50RCD(fa)RCD(df)
		RCD(g#b)l16#F q98RMDCresc(-3)RMD(be be af)
		q50l8RMD(g#)<l8q60RCD(g#>e<)RCD(g#>d#<)RCD(g#>d<)
}

#P02_02={
	TR(2)
		o5 q98 #PS
		[Sub{l4q96RCD(a>c<)}r8q40l8RCD(>ea<)]
		Sub{l4q96RCD(a>c<)}r8q40l8RCD(>ea<) l8q40 [RCD(b->d<)]
		[Sub{l4q96RCD(a>c<)}r8q40l8RCD(>ea<)]
		Sub{l4q96RCD(a>c<)}r8q40l8RCD(>ea<) l8q40 [RCD(>ce<)]
		[Sub{l4q96RCD(a>c<)}r8q40l8RCD(>ea<)]
		Sub{l4q96RCD(a>c<)}r8q40l8RCD(>ea<) l8q40 [RCD(b->d<)]
		l8q55RCD(a>c<)q40[RCD(ce)]RCD(<b->d)
		RCD(ce)rr RMD(<b>)

		[Sub{l4q96RCD(eg#)}r8q40l8RCD(b>e<)]
		Sub{l4q96RCD(eg#)}r8q40l8RCD(b>e<)[RCD(fa)]
		[Sub{l4q96RCD(eg#)}r8q40l8RCD(b>e<)]
		Sub{l4q96RCD(eg#)}r8q40l8RCD(b>e<)[RCD(fa)]
		[Sub{l4q96RCD(eg#)}r8q40l8RCD(b>e<)]
		Sub{l4q96RCD(eg#)}r8q40l8RCD(b>e<)[RCD(fa)]
		RCD(eg#)<RMD(bba)
		RMD(g#)RCD(g#>e<)RCD(g#>d#<)RCD(g#>d<)
}

#P02_03={
	TR(3)
		o4 q50 #PS
		[Sub{l4q96RMD(a)}r8q40l8RCD(>ce<)]
		Sub{l4q96RMD(a)}r8q40l8RCD(>ce<)RMD(b->e<)
		[Sub{l4q96RMD(a)}r8q40l8RCD(>ce<)]
		Sub{l4q96RMD(a)}r8q40l8RCD(>ce<)RMD(ge)
		[Sub{l4q96RMD(a)}r8q40l8RCD(>ce<)]
		Sub{l4q96RMD(a)}r8q40l8RCD(>ce<)RMD(b->e<)
		l8RMD(a)>>[RCD(ce)]RCD(<b->d)
		l16RMDCresc(-4)RMD(c<aec)l8RMD(e)#PS RMD(<b>)

		[Sub{l4q96RMD(e)}r8q40l8RCD(g#b)]
		Sub{l4q96RMD(e)}r8q40l8RCD(g#b)RMD(f)RCD(ab)
		[Sub{l4q96RMD(e)}r8q40l8RCD(g#b)]
		Sub{l4q96RMD(e)}r8q40l8RCD(g#b)RMD(d)RMD(<b>)
		[Sub{l4q96RMD(e)}r8q40l8RCD(g#b)]
		Sub{l4q96RMD(e)}r8q40l8RCD(g#b)RMD(f)RCD(ab)
		RMD(e)[RCD(g#b)]RCD(fa)
		RCD(eg#)#F RMD(ed#d)
}

#P02_04={
	TR(4)
		o2 #M
		[Sub{l4q96RCD(a>a<)}r8q40l8RCD(>>e<<)]
		Sub{l4q96RCD(a>a<)}r8q40l8RCD(>>e<<) RCD(b->b-<) RCD(>e>e<<)
		[Sub{l4q96RCD(a>a<)}r8q40l8RCD(>>e<<)]
		Sub{l4q96RCD(a>a<)}r8q40l8RCD(>>e<<) RCD(g>g<) RCD(e>e<)
		[Sub{l4q96RCD(a>a<)}r8q40l8RCD(>>e<<)]
		Sub{l4q96RCD(a>a<)}r8q40l8RCD(>>e<<) RCD(b->b-<) RCD(>e>e<<)
		RCD(a>a<)>[3 RCD(a>e<)]
		[3 RCD(a>e<)]<RCD(b>b<)>

		[Sub{l4q96RCD(e>e<)}r8q40l8RCD(>b<)]
		Sub{l4q96RCD(e>e<)}r8q40l8RCD(>b<) RCD(f>f<)RCD(b>b<)
		[Sub{l4q96RCD(e>e<)}r8q40l8RCD(>b<)]
		Sub{l4q96RCD(e>e<)}r8q40l8RCD(>b<) RCD(d>d<)RCD(<b>b)
		[Sub{l4q96RCD(e>e<)}r8q40l8RCD(>b<)]
		Sub{l4q96RCD(e>e<)}r8q40l8RCD(>b<) RCD(f>f<)RCD(b>b<)
		RCD(e>e<)>[3 RCD(eb)]
		RCD(eb)<#F RCD(e>e<)RCD(d#>d#<)RCD(d>d<)
}

// Part3
#P03_16={
	TR(16)
		[31 r2]
		TmpChangeR(80,0)TmpChangeR(10,!2)
}

#P03_01={
	TR(1)
		o5 #FS
		q98[3 l4 RCD(g>!c<)]
		l8RCD(e!a)q60RCD(d!g)
		q98l8RCD(e!a)RCD(d!g)l4RCD(<b>!e)	
		l2RCD(<b>!e)
		Sub{r-48r-48r-48RMD(e48f48g48)}[3 l4RCD(e!a)]
		q98l8RCD(d!g)q60RCD(<b>!e)
		q98l8RCD(d!g)RCD(<b>!e)l4RCD(<a>!d)
		l2RCD(<a>!d)

		Sub{r-48r-48r-48RMD(g48a48b48)}[3 l4RCD(g>!c<)]
		l8RCD(e!a)q60RCD(d!g)
		q98l8RCD(e!a)RCD(d!g)l4RCD(<b>!e)	
		l2RCD(<b>!e)
		l4RCD(<a>!d)RCD(e!a)
		RCD(<b>!e)l8RCD(<b>!e)RCD(d!g)
		l2RCD(e!a)
		#M l8RCD(e!a)r8 l44 #F RMDCresc(3)Sub{RMD(>g^abc>defgab)}r4

		#FFS
		l4[3RCD(eg>!c<)]
		l8RCD(ce!a)RCD(<b>d!g)
		RCD(ce!a)RCD(<b>d!g)l4RCD(<gb>!e)
		l2RCD(<gb>!e)
		Sub{r-48r-48r-48RMD(e48f48g48)}l4RCD(c!a)RCD(ce!a)
		RCD(ce!a)l8RCD(<b>d!g)RCD(<gb>!e)
		RCD(<b>d!g)RCD(<gb>!e)l4RCD(<fa>!d)
		l2RCD(<fa>!d)
		Sub{r-48r-48r-48RMD(g48a48b48)}l4RCD(e>!c<)RCD(eg>!c<)
		RCD(eg>!c<)l8RCD(ce!a)RCD(<b>d!g)
		RCD(ce!a)RCD(<b>d!g)l4RCD(<gb>!e)
		l2RCD(<gb>!e)
		l4RCD(<fa>!d)RCD(ce!a)
		RCD(<gb>!e)l8RCD(<fa>!d)RCD(<gb>!e)
		l2RCD(<eg>!c)
		l4RCD(ceg>!c)r4
}

#P03_02={
	TR(2)
		o4 #M
		q98[3 l4 RCD(!cg>c<)]
		l8RCD(<a>ea)q60RCD(<g>dg)
		q98l8RCD(<a>ea)RCD(<g>dg)l4RCD(<eb>e)	
		l2RCD(!<eb>e)
		[3 l4RCD(!<a>ea)]
		q98l8RCD(<g>dg)q60RCD(<eb>e)
		q98l8RCD(<g>dg)RCD(<eb>e)l4RCD(<da>d)
		l2RCD(!<da>d)

		[3 l4RCD(!cg>c<)]
		l8RCD(<a>ea)q60RCD(<g>dg)
		q98l8RCD(<a>ea)RCD(<g>dg)l4RCD(<eb>e)	
		l2RCD(<eb>e)
		l4RCD(!<da>d)RCD(<a>ea)
		RCD(<eb>e)l8RCD(<eb>e)RCD(<g>dg)
		l2RCD(!<a>ea)
		#M l8RCD(<a>ea)r8 l44 #F RMDCresc(3)Sub{RMD(>g^abc>defgab)}r4

		#PS l8q70[6 RCD(ceg>c<)]
		RCD(<a>cea)RCD(<gb>dg)
		RCD(<a>cea)RCD(<gb>dg)[6 RCD(<egb>e)]
		[6RCD(<a>cea)]
		RCD(<gb>dg)RCD(<egb>e)
		RCD(<gb>dg)RCD(<egb>e)[6 RCD(<dfa>d)]
		l8[6 RCD(ceg>c<)]
		RCD(<a>cea)RCD(<gb>dg)
		RCD(<a>cea)RCD(<gb>dg)[6 RCD(<egb>e)]
		l4RCD(<dfa>d)RCD(<a>cea)
		RCD(<egb>e)l8RCD(<dfa>d)RCD(<egb>e)
		l2RCD(<ceg>c)
		l4RCD(<ceg>c)r4	
}

#P03_03={
	TR(3)
		o4 #F
		l8[3 q60r8RCD(g>c<)]
		l8RCD(ea)RCD(dg)
		RCD(ea)RCD(dg)l4RCD(<b>e)
		l8RCD(<b>e)RMD(e16<b16>e16r16<b16r16>)
		l8[3 q60r8RCD(ea)]
		l8RCD(dg)RCD(<b>e)
		RCD(dg)RCD(<b>e)l4RCD(<a>d)
		l8RCD(<a>d)RMD(d16<a16>d16r16<a16r16>)

		l8[3 q60r8RCD(g>c<)]
		l8RCD(ea)RCD(dg)
		RCD(ea)RCD(dg)l4RCD(<b>e)
		l8RCD(<b>e)RMD(e16<b16>e16r16<b16r16>)
		r8l8RCD(<a>d)r8RCD(ea)
		r8RCD(<b>e)RCD(<b>e)RCD(dg)
		l2RCD(ea)
		l8RCD(ea)r8 #FFS l4 RCD(gbd>f<)		

		[3 #FF l8 RCD(g>ce<) #MS [l16 RCD(g>ce<) #F ]]
		#FF l8 RCD(ea>c<)RCD(dgb)
		RCD(ea>c<)RCD(dgb)l4RCD(<b>eg)
		l2RCD(<b>eg)
		[3 #FF l8 RCD(ea>c<) #MS [l16 RCD(ea>c<) #F ]]
		#FF l8 RCD(dgb)RCD(<b>eg)
		RCD(dgb)RCD(<b>eg)l4RCD(<a>df)
		l2RCD(<a>df)

		[3 #FF l8 RCD(g>ce<) #MS [l16 RCD(g>ce<) #F ]]
		#FF l8 RCD(ea>c<)RCD(dgb)
		RCD(ea>c<)RCD(dgb)l4RCD(<b>eg)
		l2RCD(<b>eg)
		r8l8RCD(<a>df)r8RCD(cea)
		r8RCD(<b>eg)RCD(<a>df)RCD(<b>eg)
		l2RCD(ceg)
		l4RCD(ceg>c<)r4
}

#P03_04={
	TR(4)
		o3 #FF
		[3 Sub{l4q98RMD(c)}r8l8q60RCD(g>c<)]
		RCD(<a>a)RCD(<g>g)
		RCD(<a>a)RCD(<g>g)RCD(<e>e)RMD(b)
		RCD(<e>e)RMD(e16<b16>e16r16<b16r16>)
		[3 Sub{l4q98RMD(<a>)}r8l8q60RCD(ea)]
		RCD(<g>g)RCD(<e>e)
		RCD(<g>g)RCD(<e>e)RCD(<d>d)RMD(a)
		RCD(<d>d)RMD(d16<a16>d16r16<a16r16>)

		[3 Sub{l4q98RMD(c)}r8l8q60RCD(g>c<)]
		RCD(<a>a)RCD(<g>g)
		RCD(<a>a)RCD(<g>g)RCD(<e>e)RMD(b)
		RCD(<e>e)RMD(e16<b16>e16r16<b16r16>)
		l4RCD(<d>d)RCD(<a>a)
		RCD(<e>e)l8RCD(<e>e)RCD(<g>g)
		RCD(<a>a)RMD(a16e16a16r16e16r16)
		l8RCD(<a>a)r8 #FFS l4q98RCD(<g>g)

		[3 RCD(c>c<)]
		l8q60RCD(<a>a)RCD(<g>g)
		RCD(<a>a)RCD(<g>g)q98RCD(<e>e)q60RMD(<b>)
		q98RCD(<e>e)q60RMDCresc(-1)RMD(e16<b16>e16r16<b16r16>)
		#FFS l4q98[3 RCD(<a>a)]
		l8q60RCD(<g>g)RCD(<e>e)
		RCD(<g>g)RCD(<e>e)q98RCD(<d>d)q60RMD(<a>)
		q98RCD(<d>d)q60RMDCresc(-1)RMD(d16<a16>d16r16<a16r16>)
		#FFS l4q98[3 RCD(c>c<)]
		l8q60RCD(<a>a)RCD(<g>g)
		RCD(<a>a)RCD(<g>g)q98RCD(<e>e)q60RMD(<b>)
		q98RCD(<e>e)q60RMDCresc(-1)RMD(e16<b16>e16r16<b16r16>)
		#FFS l4q98RCD(<d>d)RCD(<a>a)
		RCD(<e>e)l8q60RCD(<d>d)RCD(<e>e)
		q98RCD(<c>c)q60RMDCresc(-1)RMD(c16<g16>c16r16<g16r16>)
		l4q60RMD(c) #SF q92RCD(<c>c)
}

// Part4
#P04_16={
	TR(16)
		TmpChangeR(40.0)TmpChangeR(60,!2)TmpChangeR(35,!2)

		TmpChangeR(80,0)r2r2TmpChangeR(70,!2^2)
		TmpChangeR(79,0)r2r2TmpChangeR(65,!2^2)
		TmpChangeR(78,0)TmpChangeR(75,!2)TmpChange(70,!2)
		TmpChangeR(82,0)TmpChangeR(70,!1)
		TmpChangeR(75,0)TmpChangeR(84,!2)TmpChangeR(72,!2)
		TmpChangeR(75,0)TmpChangeR(70,!2^2)TmpChangeR(65,!2)

		TmpChangeR(81,0)r2r2TmpChangeR(75,!2^2)
		TmpChangeR(78,0)r2r2TmpChangeR(70,!2^2)
		TmpChangeR(73,0)TmpChangeR(78,!2)TmpChangeR(80,!2)
		TmpChangeR(82,0)TmpChangeR(75,!1)
		TmpChangeR(70,0)TmpChangeR(60,!2)TmpChangeR(65,0)TmpChangeR(55,!2)
		TmpChangeR(77,0)TmpChangeR(45,!2^2)
}

#PEDAL04={
	Sub{
		[6 #PEDALON r1 #PEDALOFF]
		[6 #PEDALON r2 #PEDALOFF]
		
		[5 #PEDALON r1 #PEDALOFF]
		[3 #PEDALON r2 #PEDALOFF]
		r4 #PEDALON r4 #PEDALOFF
		[4 #PEDALON r4 #PEDALOFF]
	}
}

#P04_01={
	TR(1)
		o4RCDINIT(60,72)#PEDAL04 #SP
		[4 l4 o4 RCD(ca>f>c)]
		r4 o5RCD(ca>f<)RCD(f>ca<)RCD(ca>f<)
		r4 o5RCD(ca>e<)RCD(e>ca<)RCD(ca>e<)
		r4 o4RCD(a>f>d<)RCD(da>f<)RCD(<a>f>d<)
		r4 o4RCD(f>da<)RCD(a>f>d<<)RCD(f>da<)
		r4 o4RCD(b->g>d<)RCD(db->g<)RCD(<b->g>d<)
		r4 o5RCD(ceb->ce<)RCD(ea>cea<)RCD(ceb->ce<)
		#PP
		r4 o5RCD(!<a>dfa>df<)
		r4 o5RCD(!<b>dg>f<)
		r4 o4RCD(gb->dfb->d)RCD(<<b->cegb->ce<)o4RCD(cb->cegb->c)

		#SP
		r4 o5RCD(cfa>cf<)RCD(fa>cfa<)RCD(cfa>cf<)
		r4 o5RCD(cea>ce<)RCD(ea>cea<)RCD(cea>ce<)
		r4 o4RCD(a>dfa>d<)RCD(dfa>df<)RCD(<a>dfa>d<)
		r4 o4RCD(fa>dfa<)RCD(a>dfa>d<<)RCD(fa>dfa<)
		#PP
		r4 o4RCD(b->dgb->d<)RCD(dgb->dg<)RCD(<b->dgb->d<)
		r4 o5RCD(ceb->ce<)r4RCD(ceb->ce<)
		l2 o5RCD(d-a->d-f<)
		l4 o5RCD(ca>cf<)RCD(cegb->ce<)
		RCD(f>cf<)r4
		r2
}

#P04_02={
	TR(2)
		[2 r2]
		[32 r2]
}

#P04_03={
	TR(3)
		o5 #R #M #PEDAL04
		r1
		q100l8
		RMD(fga4^)
		RMDCresc(-3)RMD(gfe)
		RMD(<a1>)
		#M RMD(def4^)
		RMDCresc(-5)RMD(ed<a)
		RMD(f1)
		#PS RMDCresc(3)RMD(gab-4^)
		RMD(>cc#d)
		RMDCresc(-15)RMD(a2)
		RMD(e2)
		#F RMD(efg4^)
		RMDCresc(-16)RMD(fe32f32)#M RMDCresc(-5)RMD(e16d)
		RMD(b-1)

		#M l8ROCT(f)ROCT(g)l4^8ROCT(a)
		l8ROCT(g)ROCT(f)ROCT(e)
		#P Sub{l1ROCT(<a>)}#PP l8rRMD(gfe<a2>)
		#M l8ROCT(d)ROCT(e)l4^8ROCT(f)
		l8ROCT(e)ROCT(d)ROCT(<a>)
		#PS Sub{l1ROCT(<f>)}#PP l8rRMD(ed<af2)
		#M l8ROCT(g)ROCT(a)l4^8ROCT(b-)
		#MS l8ROCT(>c<)ROCT(>c#<)ROCT(>d<)
		#F l2ROCT(>a<)
		#M l2ROCT(>e<)
		l8[ROCT(>f<)ROCT(>g<)]
		l4ROCT(>a<)RCD(>>cea<<)
		RCD(>a>cf<<) #F o5RCD(a->d-fa-<)
		#FF RCD(>ce-a->c<)#SF RCD(ceb->c<<)
}

#P04_04={
	TR(4)
		o2 #PEDAL04 #R #PP 	MRINIT(!27, 92, 80, 288) MRCresc(30,2,-3)
		l1 RCD(f>f<)
		l1 MR("f",">f<",!1)
		l1 RCD(a>a<)
		l1 MR("d",">d<",!1)
		l1 RCD(d>d<)
		MRCresc(38,2,-3) l1 MR("g",">g<",!1)
		l2 RCD(>c>c<<)
		l2 RCD(>c>c<<)
		l2 RCD(>d>d<<)
		l2 RCD(g>g<)
		l1 RCD(>c>c<<)

		#PS Sub{l1 RCD(f>f<)}#SP l4rRCD(>>cfa<<)RCD(>>fa>c<<<)RCD(>>cfa<<)
		#PS Sub{l1 RCD(a>a<)}#SP l4rRCD(>>cea<<)RCD(>>ea>c<<<)RCD(>>cea<<)
		#PS Sub{l1 RCD(d>d<)}#SP l4rRCD(>a>df<<)RCD(>>dfa<<)RCD(>a>df<<)
		#PS Sub{l1 RCD(d>d<)}#SP l4rRCD(>a>df<<)RCD(>>dfa<<)RCD(>a>df<<)
		#PS Sub{l1 RCD(g>g<)}#SP l4rRCD(>gb->d<<)RCD(>b->dg<<)RCD(>gb->d<<)
		#PS Sub{l2 RCD(>c>c<<)}#SP l4rRCD(>b->ce<<)
		#PS Sub{l2 RCD(>c>c<<)}#SP l4rRCD(>b->ce<<)
		RCDINIT(60,72) #PS l2 RCD(>d-a->f<<)
		#R #PS l8 RCD(>c>c<<) r8 l4 RCD(>c>c<<)
		l4 RCD(>f>cf<<) #F RCD(>d-a->d-<<)
		#FF RCD(a->e-a-<) #SF RCD(g>g<)
}

// Part5
#P05_16={
	TR(16)
		TmpChangeR(75,0)r2r2TmpChangeR(70,!2^2)
		TmpChangeR(74,0)r2r2TmpChangeR(68,!2^2)
		TmpChangeR(75,0)TmpChangeR(72,!2)TmpChange(70,!2)
		TmpChangeR(75,0)TmpChangeR(70,!1)
		TmpChangeR(75,0)TmpChangeR(74,!2)TmpChangeR(70,!2)
		TmpChangeR(75,0)TmpChangeR(70,!2^2)TmpChangeR(65,!2)

		TmpChangeR(75,0)r2r2TmpChangeR(70,!2^2)
		TmpChangeR(74,0)r2r2TmpChangeR(67,!2^2)
		TmpChangeR(73,0)TmpChangeR(74,!2)TmpChangeR(75,!2)
		TmpChangeR(75,0)TmpChangeR(72,!1)
		TmpChangeR(70,0)TmpChangeR(60,!2)TmpChangeR(65,0)TmpChangeR(55,!2)
		TmpChangeR(65,0)TmpChangeR(45,!2^4.)TmpChangeR(108,0)r8
}

#PEDAL05={
	Sub{
		[
			#PEDALON r4 #PEDALOFF #PEDALON r4 r8 #PEDALOFF
			r4.
			#PEDALON r1 #PEDALOFF
			#PEDALON r4 #PEDALOFF #PEDALON r4 r8 #PEDALOFF
			r4.
			#PEDALON r1 #PEDALOFF
			#PEDALON r1 #PEDALOFF
			[3 #PEDALON r2 #PEDALOFF]
			:
			[2 #PEDALON r4 #PEDALOFF]
			[2 #PEDALON r2 #PEDALOFF]
		]
		[2 #PEDALON r4 #PEDALOFF]
		#PEDALON r2 #PEDALOFF
		r2
	}
}

#P05_01={
	TR(1)
		#R #PEDAL05
		#F 	MRINIT(!29, 110, 88, 384) MRCresc(110,-4)
		MR("o5f>f<","o7f>cf<",!8)MR("o5g>g<","o7g>cg<",!8)MR("o5a>a<","o7a>ca<",!4^8)
		MR("o4g>g<","o7g>g<",!8)MR("o4f>f<","o7f>f<",!8)MR("o4e>e<","o7e>e<",!8)
		MR("o3a>a<","o6a>a<",!1)
		MR("o5d>d<","o7da>d<",!8)MR("o5e>e<","o7ea>e<",!8)MR("o5f>f<","o7fa>f<",!4^8)
		MR("o4e>e<","o7e>e<",!8)MR("o4d>d<","o7d>d<",!8)MR("o3a>a<","o6a>a<",!8)
		MR("o3f>f<","o6f>f<",!1)
		MR("o4g>g<","o6g>g<",!8)MR("o4a>a<","o6a>a<",!8)MR("o4b->b-<","o6b->b-<",!4^8)
		MR("o5c>c<","o7c>c<",!8)MR("o5c#>c#<","o7c#>c#<",!8)MR("o5d>d<","o7d>d<",!8)
		MR("o5a>a<","o7a>a<",!2)
		MR("o5e>e<","o7e>e<",!2)
		MR("o5e>e<","o7e>e<",!8)MR("o5f>f<","o7f>f<",!8)MR("o5g>g<","o7g>g<",!4^8)
		MR("o5f>f<","o7f>f<",!8)MR("o5e>e<","o7e>e<",!8)MR("o5d>d<","o7d>d<",!8)
		MR("o5b->b-<","o7b->b-<",!1)

		MRINIT(!28, 110, 84, 384)
		MR("o5f>f<","o7f>cf<",!8)MR("o5g>g<","o7g>cg<",!8)MR("o5a>a<","o7a>ca<",!4^8)
		MR("o4g>g<","o7g>g<",!8)MR("o4f>f<","o7f>f<",!8)MR("o4e>e<","o7e>e<",!8)
		MR("o3a>a<","o6a>a<",!1)
		MR("o5d>d<","o7da>d<",!8)MR("o5e>e<","o7ea>e<",!8)MR("o5f>f<","o7fa>f<",!4^8)
		MR("o4e>e<","o7e>e<",!8)MR("o4d>d<","o7d>d<",!8)MR("o3a>a<","o6a>a<",!8)
		MR("o3f>f<","o6f>f<",!1)
		MR("o4g>g<","o6g>g<",!8)MR("o4a>a<","o6a>a<",!8)MR("o4b->b-<","o6b->b-<",!4^8)
		MR("o5c>c<","o7c>c<",!8)MR("o5c#>c#<","o7c#>c#<",!8)MR("o5d>d<","o7d>d<",!8)
		MR("o5a>a<","o7a>a<",!2)
		MR("o5e>e<","o7e>e<",!2)
		[MR("o5f>f<","o7f>f<",!8)MR("o5g>g<","o7g>g<",!8)]
		l4o4RCD(a>cfa >a>cfa)<<<RCD(b->cea >a>cea)
		l2o4RCD(fa>cf >fa>cf)
		l8RCDINIT(48,64)o6RCD(fa>cf a>cf)r8r8

		#R #F o7l32RMD(fgab-)
}

#P05_02={
	TR(2)
		[32 r2]
}

#P05_03={
	TR(3)
		#R #FF o4 #PEDAL05
		l1 RCD(fa>cf<)
		l4 RCD(ea>ce<)RCD(>a>ce<<)
		RCD(>>cea<<)RCD(>a>ce<<)
		l1RCD(dfa>d<)
		l4 RCD(dfa>d<)RCD(a>dfa<)RCD(>dfa>d<<)RCD(a>dfa<)
		o4r4RCD(gb->d<)

		RCD(b->dg<)RCD(gb->df<)<
		[r4 o4RCD(cegb->ce)]
		r4RCD(<fa>cfa)
		r4RCD(<g>fgb>f<)
		o4r4RCD(fb->df fgb->d<<)RCD(gb->ce gb->ce<<)RCD(egb->c egb->c<<)

		l1 RCD(fa>cf<)
		l4 RCD(ea>ce<)RCD(>ea>ce<<)
		RCD(>a>cea<<)RCD(>ea>ce<<)
		l1RCD(dfa>d<)
		l4 RCD(dfa>d<)RCD(a>dfa<)RCD(>dfa>d<<)RCD(a>dfa<)
		o4r4RCD(gb->d<)

		RCD(b->dg<)RCD(gb->df<)<
		[r4 o4RCD(cegb->ce)]
		l2RCD(<fa->d-f)
		l4RCD(<fa>cf)RCD(<eb->ce)
		l2RCD(<fa>cf)
		o5l8RCDINIT(56,64)RCD(fa>cf)r8r4
}

#P05_04={
	TR(4)
		#R #SF o2 #PEDAL05
		l4RCD(f>f<)>RCD(f>c<)
		RCD(a>f<)RCD(f>c<)<
		l4RMD(a)[3  RCD(a>ea<)]
		RCD(d>d<)>RCD(da)
		RCD(f>d<)RCD(da)<
		RCD(d>d<)[3 RCD(da>d<)]
		l1RCD(g>g<)>
		l2 RCD(c>c<)
		RCD(<b->b-)
		RCD(<a>a)
		RCD(<g>g)
		l1RCD(c>c<)<

		l4RCD(f>f<)>RCD(f>c<)
		RCD(a>f<)RCD(f>c<)<
		l4RMD(a)[3  RCD(a>ea<)]
		RCD(d>d<)>RCD(da)
		RCD(f>d<)RCD(da)<
		RCD(d>d<)[3 RCD(da>d<)]
		l1RCD(g>g<)>
		l2 RCD(c>c<)
		RCD(c>c<)
		RCD(d-a->d-<)
		l4RCD(c>c<)<RCD(c>c<)
		RCD(f>f<)RMD(>c<)
		l8RCD(f>f<)r8r4
}

// Part6
#P06_16={
	TR(16)
		TmpChangeR(108,0)
		[16 r2]
}

#P06_01={
	TR(1)
		#R #F o8 l16 q98
		#F RMDCresc(-2)RMD(crcrdede)
		RMD(crcrdr<f32g32a32b-32>)
		#F RMDCresc(-2)RMD(crcrdede)
		RMD(cr<argr f32g32a32b-32>)
		#F RMDCresc(-2)RMD(crcrdede)
		RMD(crcrdr<a32b32>c32d32)
		#F RMDCresc(-2)RMD(ec<ba >d<bag#)
		RMD(ab-ab-ar <)#F RMD(f32g32a32b-32)>

		#F RMDCresc(-1)RMD(crcrdede)
		RMD(crcrdr<f32g32a32b-32>)
		#F RMDCresc(-1)RMD(crcrdede)
		RMD(cr<argr f32g32a32b-32>)
		#F RMDCresc(-1)RMD(crcrdede)
		RMD(crcrdr<a32b32>c32d32)
		#F RMDCresc(-1)RMD(ec<ba gaga)>
		RMD(c8)r4.
}

#P06_02={
	TR(2)
		o6 #R #P l8 q40
		[RCD(fa>c<)][RCD(fa>d<)]
		[RCD(fa>c<)]RCD(fa>d<)r
		[RCD(fa>c<)][RCD(fa>d<)]
		[RCD(fa>c<)]RCD(eb->d-<)r
		[RCD(fa>c<)][RCD(fa>d<)]
		[RCD(fa>c<)]RCD(fa>d<)r
		RCD(ea>c<)rRCD(deg#b)r
		[3 RCD(cea)]r<

		[RCD(fa>c<)][RCD(fa>d<)]
		[RCD(fa>c<)]RCD(fa>d<)r
		[RCD(fa>c<)][RCD(fa>d<)]
		[RCD(fa>c<)]RCD(eb->d-<)r
		[RCD(fa>c<)][RCD(fa>d<)]
		[RCD(fa>c<)]RCD(fa>d<)r
		RCD(g>ce<)rRCD(fgb>d<)r
		RCD(eg>c<)rrr
}

#P06_03={
	TR(3)
		o5 #R #P q98 l16
		RMD(a>c<a>c< arar)
		RMD(a>c<a>c< arrr)
		RMD(a>c<a>c< arar)
		RMD(a>c<a>c<)RCD(gb-)rrr
		RMD(a>c<a>c< arar)
		RMD(a>c<a>c< arrr)
		RCD(a>ce<)rrrRCD(g#b>d<)rrr
		RCD(a>c<)rRCD(a>c<)rRCD(a>c<)rrr

		RMD(a>c<a>c<)RCD(fa)rRCD(fa)r
		RMD(a>c<a>c<)RCD(fa)rrr
		RMD(a>c<a>c<)RCD(fa)rRCD(fa)r
		RMD(a>c<a>c<)RCD(eg)rrr
		RMD(a>c<a>c<)RCD(fa)rRCD(fa)r
		RMD(a>c<a>c<)RCD(fa)rrr
		#MS o6RMD(ec<ba gaga)>
		RMD(c8)r4.
}

#P06_04={
	TR(4)
		o5 #R #P q50 l8
		RCD(f)RCD(f)RCD(df)RCD(df)
		RCD(f)RCD(f)RCD(df)r
		RCD(f)RCD(f)RCD(df)RCD(df)
		RCD(f)RCD(f)RCD(d-e)r
		RCD(f)RCD(f)RCD(df)RCD(df)
		RCD(f)RCD(f)RCD(df)r
		RCD(ce)rRCD(<b>de)r
		[3 RCD(<a>ce)]r

		[RCD(<fa>c)][RCD(<dfa>)]
		[RCD(<fa>c)]RCD(<dfa>)r
		[RCD(<fa>c)][RCD(<dfa>)]
		[RCD(<fa>c)]RCD(<d-gb->)r
		[RCD(<fa>c)][RCD(<dfa>)]
		[RCD(<fa>c)]RCD(<dfa>)r
		RCD(<g>ce)ro3RCD(g>g<)r
		RCD(c>c<)#F q70#PEDALON [3 RCD(cg)] #PEDALOFF
}

// Part7
#P07_16={
	TR(16)
		TmpChangeR(108,0)
		[16 r2]
}

#PEDAL07={
	Sub {
		[14 #PEDALON r2 #PEDALOFF]
		#PEDALON r1 #PEDALOFF
	}
}

#P07_01={
	TR(1)
		o8 #R #FF l16 #PEDAL07
		RMD(c8.d- c8.d-)
		RMD(cd-c<b- a-ga-b->)
		RMDCresc(-1)RMD(cd-c<b- a-ga-b-)
		RMD(g4)r8 RMD(<g24a-24b-24>)
		RMD(c8.d- c8.d-)
		RMD(cd-c<b- a-ga-b->)
		RMDCresc(2)RMD(cd-c<b- a-ga-b-)
		RMD(g4)r8#F RMDCresc(4)RMD(c32d-32e-32f32)

		RMD(g4)r8#F RMDCresc(4)RMD(g32f32e-32d-32)
		RMD(c4)r8#F RMDCresc(5)RMD(c32d-32e-32f32)
		RMD(g4)r8#F RMDCresc(5)RMD(g32f32e-32d-32)
		RMD(c4)r8#F RMDCresc(4)RMD(c32d-32e-32f32)
		RMDCresc(2)RMD(g8.a- g8.a-)
		RMD(ga-ga-ga-ga-)
		l1 RMD(g)
}

#P07_02={
	TR(2)
		[16 r2]
}

#P07_03={
	TR(3)
		o6 #R #FF l16 #PEDAL07
		RMD(c8.d- c8.d-)
		RMDCresc(-1)RMD(cd-c<b- a-ga-b->)
		RMD(cd-c<b- a-ga-b-)
		RMD(g4)r8RMD(<g24a-24b-24>)
		RMD(c8.d- c8.d-)
		RMDCresc(2)RMD(cd-c<b- a-ga-b->)
		RMD(cd-c<b- a-ga-b-)
		RMD(g4)r8#F >RMDCresc(4)RMD(c32d-32e-32f32)

		RMD(g4)r8#F RMDCresc(4)RMD(g32f32e-32d-32)
		RMD(c4)r8#F RMDCresc(4)RMD(c32d-32e-32f32)
		RMD(g4)r8#F RMDCresc(4)RMD(g32f32e-32d-32)
		RMD(c4)r8#F RMDCresc(4)RMD(c32d-32e-32f32)
		RMDCresc(2)RMD(g8.a- g8.a-)
		RMD(ga-ga-ga-ga-)
		RMD(g1)
}

#P07_04={
	TR(4)
		o3 #R #FF l8 #PEDAL07
		#FF [4 RCD(cg) #F]
		#FF [4 RCD(cg) #F]
		#FF [4 RCD(cg) #F]
		#FF [4 RCD(cg) #F]
		#FF [4 RCD(cg) #F]
		#FF [4 RCD(cg) #F]
		#FF [4 RCD(cg) #F]
		#FF [4 RCD(cg) #F]
		
		#F [1 RCD(cg)]#FF [3 RCD(cg) #F]
		#F [1 RCD(cg)]#FF [3 RCD(cg) #F]
		#F [1 RCD(cg)]#FF [3 RCD(cg) #F]
		#F [1 RCD(cg)]#FF [3 RCD(cg) #F]
		#FF [4 RCD(cg) #F]
		#FF [4 RCD(cg) #FF]
		l8 RCD(cg>c)o5q60 #SF l16[RCD(c>c<)#FFS] #SF l8[RCD(c>c<)#FFS]
		#SF[4 RCD(c>c<)#FFS]
}

// Part8
#P08_16={
	TR(16)
		TmpChangeR(108,0)
		[16 r2]
		TmpChangeR(80,!1)
		TmpChangeR(70,!1)
}

#PEDAL08={
	Sub{
		[17 r2]
		[#PEDALON r4 #PEDALOFF]
		#PEDALON r1 #PEDALOFF
	}
}

#P08_01={
	TR(1)
		o6 #R #FFS #PEDAL08
		q100l8.Sub{RMD(d-)}RMD(f)q70l16Sub{RMD(d-)}RMD(f) q50[l8Sub{RMD(c)}RMD(e-)]
		[l8Sub{RMD(<a->)}RMD(c)] q70l4Sub{RMD(c)}RMD(e-)
		q100l8.Sub{RMD(d-)}RMD(f)q70l16Sub{RMD(d-)}RMD(f) q50[l8Sub{RMD(c)}RMD(e-)]
		l8Sub{RMD(<a->)}RMD(c)Sub{RMD(c)}RMD(e-) q75l4Sub{RMD(<g)}RMD(b->)
		q100l8.Sub{RMD(<b->)}RMD(d-)q70l16Sub{RMD(<b->)}RMD(d-) q50[l8Sub{RMD(<a->)}RMD(c)]
		[l8Sub{RMD(<f)}RMD(a->)] q70l4Sub{RMD(<a->)}RMD(c)
		q100l8.Sub{RMD(<b->)}RMD(d-)q70l16Sub{RMD(<b->)}RMD(d-) q50[l8Sub{RMD(<a->)}RMD(c)]
		l8Sub{RMD(<f)}RMD(a->)Sub{RMD(<a->)}RMD(c) q75l4Sub{RMD(<e)}RMD(g>)<

		#F
		q100l8.RCD(<a->d-f)q60l16RCD(<a->d-f) q50[l8RCD(<a->ce-)]
		[l8RCD(<a->c)] q60l4RCD(<a->ce-)
		q100l8.RCD(<a->d-f)q60l16RCD(<a->d-f) q50[l8RCD(<a->ce-)]
		l8RCD(<a->c)RCD(<a->ce-) q55l4RCD(<gb->)
		#MS
		q100l8.RCD(<g-b->d-)q60l16RCD(<g-b->d-) q50[l8RCD(<fa->c)]
		[l8RCD(<fa->)] q60l4RCD(<fa->c)
		#M
		q100l8.RCD(<g-b->d-)q60l16RCD(<g-b->d-) q50[l8RCD(<fa->c)]
		q50l8RCD(<fa->)RCD(<fa->c) q55l4RCD(<eg>)
		#PS
		q50l8RCD(<fa->)RCD(<fa->c) q50l4RCD(<eg>)
		#PPS
		q50l8RCD(<fa->)RCD(<fa->c) q45l4RCD(<eg>)<
		q90l1RCD(eg)
}

#P08_02={
	TR(2)
		o5 #R #FFS #PEDAL08
		q100l8.Sub{RMD(d-)}RMD(a-)q70l16Sub{RMD(d-)}RMD(a-) q50[l8Sub{RMD(c)}RMD(a-)]
		[l8Sub{RMD(<a->)}RMD(e-)] q70l4Sub{RMD(c)}RMD(a-)
		q100l8.Sub{RMD(d-)}RMD(a-)q70l16Sub{RMD(d-)}RMD(a-) q50[l8Sub{RMD(c)}RMD(a-)]
		l8Sub{RMD(<a->)}RMD(e-)Sub{RMD(c)}RMD(a-) q75l4Sub{RMD(<g>)}RMD(e-)
		q100l8.Sub{RMD(<b->)}RMD(g-)q70l16Sub{RMD(<b->)}RMD(g-) q50[l8Sub{RMD(<a->)}RMD(f)]
		[l8Sub{RMD(<f>)}RMD(c)] q70l4Sub{RMD(<a->)}RMD(f)
		q100l8.Sub{RMD(<b->)}RMD(g-)q70l16Sub{RMD(<b->)}RMD(g-) q50[l8Sub{RMD(<a->)}RMD(f)]
		l8Sub{RMD(<f>)}RMD(c)Sub{RMD(<a->)}RMD(f) q75l4Sub{RMD(<c>)}RMD(c)<

		#F
		q100l4RCD(<d->d-) q50[l8RCD(<c>c)]
		[l8RCD(<<a->a->)] q60l4RCD(<c>c)
		q100l4RCD(<d->d-)q50[l8RCD(<c>c)]
		l8RCD(<<a->a->)RCD(<c>c) q55l4RCD(<<e->e->)
		#MS
		q100l4RCD(<<b->b->) q50[l8RCD(<<a->a->)]
		[l8RCD(<<f>f>)] q60l4RCD(<<a->a->)
		#M
		q100l4RCD(<<b->b->) q50[l8RCD(<<a->a->)]
		q50l8RCD(<<f>f>)RCD(<<a->a->) q55l4RCD(<c>)
		#PS
		q50l8RCD(<<f>f>)RCD(<<a->a->) q50l4RCD(<c>)
		#PPS
		q50l8RCD(<<f>f>)RCD(<<a->a->) q45l4RCD(<c>)<
		q90l4<[4 RCD(cg)]
}

#P08_03={
	TR(3)
		IF(MODE == 1) { FineTune(65) }
		o6 RCDINIT(96,240) RMDINIT(96,240,90,110) #FF #PEDAL08
		IF(MODE == 0) { o7 }
		Sub {
			IF(MODE == 1) { r56 }
			q100l8.Sub{RMD(d-)}RMD(f)q70l16Sub{RMD(d-)}RMD(f) q50[l8Sub{RMD(c)}RMD(e-)]
			[l8Sub{RMD(<a->)}RMD(c)] q70l4Sub{RMD(c)}RMD(e-)
			q100l8.Sub{RMD(d-)}RMD(f)q70l16Sub{RMD(d-)}RMD(f) q50[l8Sub{RMD(c)}RMD(e-)]
			l8Sub{RMD(<a->)}RMD(c)Sub{RMD(c)}RMD(e-) q75l4Sub{RMD(<g)}RMD(b->)
			q100l8.Sub{RMD(<b->)}RMD(d-)q70l16Sub{RMD(<b->)}RMD(d-) q50[l8Sub{RMD(<a->)}RMD(c)]
			[l8Sub{RMD(<f)}RMD(a->)] q70l4Sub{RMD(<a->)}RMD(c)
			q100l8.Sub{RMD(<b->)}RMD(d-)q70l16Sub{RMD(<b->)}RMD(d-) q50[l8Sub{RMD(<a->)}RMD(c)]
			l8Sub{RMD(<f)}RMD(a->)Sub{RMD(<a->)}RMD(c) q75l4Sub{RMD(<e)}RMD(g>)<
		}[8 r2]
		[12 r2]
		FineTune(64)
}

#P08_04={
	TR(4)
		IF(MODE == 1) { FineTune(65) }
		o5 RCDINIT(96,240) RMDINIT(96,800,90,110) #FF #PEDAL08
		IF(MODE == 0) { o6 }
		Sub {
			IF(MODE == 1) { r56 }
			q100l8.Sub{RMD(d-)}RMD(a-)q70l16Sub{RMD(d-)}RMD(a-) q50[l8Sub{RMD(c)}RMD(a-)]
			[l8Sub{RMD(<a->)}RMD(e-)] q70l4Sub{RMD(c)}RMD(a-)
			q100l8.Sub{RMD(d-)}RMD(a-)q70l16Sub{RMD(d-)}RMD(a-) q50[l8Sub{RMD(c)}RMD(a-)]
			l8Sub{RMD(<a->)}RMD(e-)Sub{RMD(c)}RMD(a-) q75l4Sub{RMD(<g>)}RMD(e-)
			q100l8.Sub{RMD(<b->)}RMD(g-)q70l16Sub{RMD(<b->)}RMD(g-) q50[l8Sub{RMD(<a->)}RMD(f)]
			[l8Sub{RMD(<f>)}RMD(c)] q70l4Sub{RMD(<a->)}RMD(f)
			q100l8.Sub{RMD(<b->)}RMD(g-)q70l16Sub{RMD(<b->)}RMD(g-) q50[l8Sub{RMD(<a->)}RMD(f)]
			l8Sub{RMD(<f>)}RMD(c)Sub{RMD(<a->)}RMD(f) q75l4Sub{RMD(<c>)}RMD(c)<
		} [8 r2]
		[12 r2]
		FineTune(64)
}

// Part3->9
#P09_16={
	TR(16)
		TmpChangeR(108,0)
		[15 r2]
		TmpChangeR(90,0)TmpChangeR(35,!2)
}

#PEDAL09={
	Sub{
		[15 r2]
		#PEDALON r2 #PEDALOFF
	}
}

#P09_01={
	TR(1)
		o5 #R #F #PEDAL09 q90
		Sub{r-48r-48r-48RMD(g48a48b48)}l4[RCD(eg>!c<)]
		RCD(eg>!c<) l8RCD(ce!a)RCD(<b>d!g)
		RCD(ce!a)RCD(<b>d!g)l4RCD(<gb>!e)
		l2RCD(<gb>!e)
		>Sub{r-48r-48r-48RMD(e48f48g48)}l4[RCD(ce!a)]
		RCD(ce!a) l8RCD(<b>d!g)RCD(<gb>!e)
		RCD(<b>d!g)RCD(<gb>!e)l4RCD(<fa>!d)
		l2RCD(<fa>!d)

		Sub{r-48r-48r-48RMD(g48a48b48)}l4[RCD(eg>!c<)]
		RCD(eg>!c<) l8RCD(ce!a)RCD(<b>d!g)
		RCD(ce!a)RCD(<b>d!g)l4RCD(<gb>!e)
		l2RCD(<gb>!e)

		l4RCD(<fa>!d)RCD(ce!a)
		l4RCD(<gb>!e)l8RCD(<fa>!d)RCD(<gb>!e)
		l2RCD(<eg>!c)
		#M l8RCD(<eg>!c)r RCDINIT(56,64)#P RMDCresc(-2)l8RCD(<cegb->cegb->c)r8
}

#P09_02={
	TR(2)
		o5 #R #F #PEDAL09 q90
		[4 r2]
		Sub{r-48r-48r-48RMD(e48f48g48)}l4[RCD(ce!a)]
		RCD(ce!a) l8RCD(<b>d!g)RCD(<gb>!e)
		RCD(<b>d!g)RCD(<gb>!e)l4RCD(<fa>!d)
		l2RCD(<fa>!d)

		Sub{r-48r-48r-48RMD(g48a48b48)}l4[RCD(eg>!c<)]
		RCD(eg>!c<) l8RCD(ce!a)RCD(<b>d!g)
		RCD(ce!a)RCD(<b>d!g)l4RCD(<gb>!e)
		l2RCD(<gb>!e)

		l4RCD(<fa>!d)RCD(ce!a)
		l4RCD(<gb>!e)l8RCD(<fa>!d)RCD(<gb>!e)
		l2RCD(<eg>!c)
		#M l8RCD(<eg>!c)r rr
}

#P09_03={
	TR(3)
		o4 #R #M q60 #PEDAL09
		q60l8[rRCD(eg>c<)]
		rRCD(eg>c<)RMD(ag)
		RMD(age4)
		q70 RMD(e16r16e16<b16>e16r16e16r16)
		q60[rRCD(cea)]
		rRCD(cea)RMD(ge)
		RMD(ged4)
		q70 RMD(d16r16d16<a16>d16r16d16r16)

		q60l8[rRCD(eg>c<)]
		rRCD(eg>c<)RMD(ag)
		RMD(age4)
		q70 RMD(e16r16e16<b16>e16r16e16r16)
		rRCD(<fa>d)rRCD(cea)
		rRCD(<gb>e)RCD(<fa>d)RCD(<gb>e)
		l2RMD(c)
		l8RMD(c)r4.
}

#P09_04={
	TR(4)
		o3 #R #F q70 #PEDAL09
		l8[RCD(c>c<)r]
		RCD(c>c<)r<RCD(a>a<)RCD(g>g<)
		RCD(a>a<)RCD(g>g<)RCD(e>e<)RMD(b)
		RCD(e>e<)RMD(>e16<b16>e16r16e16r16)<
		l8[RCD(a>a<)r]
		RCD(a>a<)rRCD(g>g<)RCD(e>e<)
		RCD(g>g<)RCD(e>e<)RCD(d>d<)RMD(a)
		RCD(d>d<)RMD(>d16<a16>d16r16d16r16)
		l8[RCD(c>c<)r]
		RCD(c>c<)r<RCD(a>a<)RCD(g>g<)
		RCD(a>a<)RCD(g>g<)RCD(e>e<)RMD(b)
		RCD(e>e<)RMD(>e16<b16>e16r16e16r16)<

		l4RCD(d>d<)RCD(a>a<)
		RCD(e>e<)l8RCD(d>d<)RCD(e>e<)
		RCD(c>c<)RMD(>c16<g16>c16r16<g16r16)
		RCD(c>c<)r4.
}

// Part4 -> 10
#P10_16={
	TR(16)
		TmpChangeR(80,0)r2r2TmpChangeR(70,!2^2)
		TmpChangeR(79,0)r2r2TmpChangeR(65,!2^2)
		TmpChangeR(78,0)TmpChangeR(75,!2)TmpChange(70,!2)
		TmpChangeR(82,0)TmpChangeR(70,!1)
		TmpChangeR(75,0)TmpChangeR(84,!2)TmpChangeR(72,!2)
		TmpChangeR(75,0)TmpChangeR(70,!2^2)TmpChangeR(65,!2)

		TmpChangeR(81,0)r2r2TmpChangeR(75,!2^2)
		TmpChangeR(78,0)r2r2TmpChangeR(70,!2^2)
		TmpChangeR(73,0)TmpChangeR(78,!2)TmpChangeR(80,!2)
		TmpChangeR(82,0)TmpChangeR(75,!1)
		TmpChangeR(70,0)TmpChangeR(60,!2)TmpChangeR(65,0)TmpChangeR(55,!2)
		TmpChangeR(72,0)TmpChangeR(45,!2^2)
}

#PEDAL10={
	Sub{
		[
			[5 #PEDALON r1 #PEDALOFF]
			[1 #PEDALON r2 #PEDALOFF]
			:
			[3 #PEDALON r2 #PEDALOFF]
			[1 #PEDALON r1 #PEDALOFF]
		]
		[1 #PEDALON r2 #PEDALOFF]
		[2 #PEDALON r4 #PEDALOFF]
		[2 #PEDALON r4 #PEDALOFF]
		[1 #PEDALON r2 r8 #PEDALOFF]
	}
}

#P10_01={
	TR(1)
		o4RCDINIT(60,72)#PEDAL10 #SP
		[
			#PP l4
			r4 o5RCD(fa>cfa>cf<<)RCD(a>cfa>cfa<<)RCD(a>cfa>cf<<)
			r4 o5RCD(ea>cea>ce<<)RCD(a>cea>cea<<)RCD(ea>cea>ce<<)>
			r4 o5RCD(dfa>dfa>d<<)RCD(fa>dfa>df<<)RCD(dfa>dfa>d<<)
			r4 o4RCD(a>dfa>dfa<<)>RCD(dfa>dfa>d<<)<RCD(a>dfa>dfa<<)
			#PPS
			r4 o4RCD(gb->db->dgb-<<)RCD(b->dg>dgb->d<<<)RCD(gb->db->dgb-<<)
			r4 o5RCD(cea>cea<)
			:
			r4 o4RCD(b->ceg b->ce)
			r4 o4RCD(a>cf a>cf<<) r4 o4RCD(fgb>f gb>f)
			r4 o4RCD(b->dfb->d) o5RCD(cegb->ce)o4RCD(b->ceb->c)
		]
		#PP r4 o4RCD(b->ceg b->ce)
		#R #SP l2 o4RCD(a-b>d-f b>d-f)
		l4 o4RCD(a>cf a>cf) o4RCD(b->ce b->ce)
		l2 o4RCD(a>cf a>cf)
		RCDINIT(60,72)o5l8RCD(fa>c fa>c!f)r4.
}

#P10_02={
	TR(2)
		[32 r2]
}

#P10_03={
	TR(3)
		o5 #R #PS #PEDAL10
		#PS l8RCDINIT(48,56)RCD(fa>cf<)#R #M ROCT(g)l4^8RCDINIT(48,56)RCD(a>cfa<)
		#R #PS l8ROCT(g)ROCT(f)ROCT(e)
		#P Sub{l1RCDINIT(48,56)RCD(<a>a)}#PP l8rrrrr2
		#PS l8RCD(dfa>d<) #R #M ROCT(e)l4^8RCDINIT(48,56)RCD(fa>df<)
		#R #PS l8ROCT(e)ROCT(d)ROCT(<a>)
		#P Sub{l1RCDINIT(48,56)RCD(<f>f)}#PP l8rrrrr2<
		#PS l8RCD(gb->dg<)#R #M ROCT(a)l4^8RCDINIT(48,56)RCD(b->dgb-<)
		#R #M l8ROCT(>c<)ROCT(>c#<)ROCT(>d<)
		#MS l2ROCT(>a<)
		#M l2ROCT(>e<)
		l8 ROCT(>e<)ROCT(>f<)l4.ROCT(>g<)
		l8 ROCT(>f<)ROCT(>e<)ROCT(>d<)
		l1ROCT(>b-<)>

		#PS l8RCDINIT(48,56)RCD(fa>cf<)#R #M ROCT(g)l4^8RCDINIT(48,56)RCD(a>cfa<)
		#R #PS l8ROCT(g)ROCT(f)ROCT(e)
		#P Sub{l1RCDINIT(48,56)RCD(<a>a)}#PP l8RMD(rgfe<a2>)
		#PS l8RCD(dfa>d<) #R #M ROCT(e)l4^8RCDINIT(48,56)RCD(fa>df<)
		#R #PS l8ROCT(e)ROCT(d)ROCT(<a>)
		#P Sub{l1RCDINIT(48,56)RCD(<f>f)}#PP l8RMD(red<af2)
		#PS l8RCD(gb->dg<)#R #M ROCT(a)l4^8RCDINIT(48,56)RCD(b->dgb-<)
		#R #M l8ROCT(>c<)ROCT(>c#<)ROCT(>d<)
		#MS l2ROCT(>a<)
		#P l2ROCT(>e<)
		#PPS o5l8RCDINIT(48,56)RCD(fa->d-!f<)#R #PP ROCT(g)ROCT(f)ROCT(g)
		RCDINIT(48,56)l4RCD(a>cf!a<)RCD(b->e!a<)
		l2RCD(a>c!f<)<
		l8RCD(a>cf)r4.
}

#P10_04={
	TR(4)
		o2 #PEDAL10 #R #PP 	MRINIT(!27, 92, 80, 288) MRCresc(30,2,-3)
		[
			#PS Sub{l1 RCD(f>f<)}#SP l4rRCD(>>cfa<<)RCD(>>fa>c<<<)RCD(>>cfa<<)
	 		#PS Sub{l1 RCD(a>a<)}#SP l4rRCD(>>cea<<)RCD(>>ea>c<<<)RCD(>>cea<<)
			#PS Sub{l1 RCD(d>d<)}#SP l4rRCD(>a>df<<)RCD(>>dfa<<)RCD(>a>df<<)
			#PS Sub{l1 RCD(d>d<)}#SP l4rRCD(>a>df<<)RCD(>>dfa<<)RCD(>a>df<<)
			#PS Sub{l1 RCD(g>g<)}#SP l4rRCD(>gb->d<<)RCD(>b->dg<<)RCD(>gb->d<<)
			#PS Sub{l2 RCD(>c>c<<)}#SP l4rRCD(>b->ce<<)
			:
			#PS Sub{l2 RCD(b->b-<)}#SP l4rRCD(>b->ce<<)
			#PS Sub{l2 RCD(a>a<)  }#SP l4rRCD(>a>cf<<)
			#PS Sub{l2 RCD(g>g<)  }#SP l4rRCD(>fgb<)
			#PS Sub{l1 RCD(>c>c<<)}r1
		]
		#P Sub{l2 RCD(>c>c<<)}#SP l4rRCD(>b->ce<<)
		#PP l2o4RCD(d-fa-b)
		RCDINIT(48,56)l4o4RCD(cfa>c<) #R #PP RCD(<c>c)
		RCD(<f>f)RCD(<c>c)
		l8o2RCD(f>f)r4.
}

// Part1 -> 11
#P11_16={
	TR(16)
		TmpChangeR(105,0)TmpChangeR(108,!1)
		[8 r2]
		TmpChangeR(102,!2^2^2^2^2^2^2^2)
		TmpChangeR(98,!2^2^2^2^2^2^2)TmpChangeR(40,!2)
}

#P11_01={
	TR(1)
		o7 l8 #R #F q40
		r2
		r4.
		RMD(e)
		[r-48RMD(g#48)RMD(a)r8]
		r-48RMD(g#48)RMD(a)r8RMD(b->e<)
		[r-48RMD(g#48)RMD(a)r8]
		r-48RMD(g#48)RMD(a)r8RMD(ge)
		[r-48RMD(g#48)RMD(a)r8]
		r-48RMD(g#48)RMD(a)r8RMD(b->e<)
		RMDCresc(3)RMD(a)q96l16RMD(>e<a >e<a >d<b-)
		RMDCresc(-2)q96RMD(>c<aec)q40l8RMD(e) <RMD(b)>

		#FS [r-48RMD(d#48)RMD(e)r8]
		r-48RMD(d#48)RMD(e)r8RMD(fb)
		[r-48RMD(d#48)RMD(e)r8]
		r-48RMD(d#48)RMD(e)r8r-24RMD(d48e48)RMD(d<b>)
		[r-48RMD(d#48)RMD(e)r8]
		r-48RMD(d#48)RMD(e)r8RMD(fb)
		RMDCresc(-2)RMD(e)q96l16RMD(be be af)
		q96RMD(g#e<bg#)q40l8RMD(b) #PS RMD(e)

		[r-48RMD(g#48)RMD(a)r8]
		r-48RMD(g#48)RMD(a)r8RMD(b->e<)
		[r-48RMD(g#48)RMD(a)r8]
		r-48RMD(g#48)RMD(a)r8RMD(ge)
		[r-48RMD(g#48)RMD(a)r8]
		RMDCresc(-1)r-48RMD(g#48)RMD(a)r8RMD(b->e<)
		l2^4RMD(a) #PP RCDINIT(48,56)o5l4#PEDALON RCD(gb>dfg) #PEDALOFF
}

#P11_02={
	TR(2)
		o6 l8 #R #F q40
		r2
		r4.
		RMD(e)
		[RMD(a)r8]
		RMD(a)r8RMD(b->e<)
		[RMD(a)r8]
		RMD(a)r8RMD(ge)
		[RMD(a)r8]
		RMD(a)r8RMD(b->e<)
		RMDCresc(-2)RMD(a)[RCD(>ce<)]RCD(b->d<)
		RMDCresc(-2)RCD(a>c<)rr <RMD(b)>

		#FS [RMD(e)r8]
		RMD(e)r8RMD(fb)
		[RMD(e)r8]
		RMD(e)r8RMD(d<b>)
		[RMD(e)r8]
		RMD(e)r8RMD(fb)
		RMDCresc(-3)RMD(e)[RCD(g#b)]RCD(fa)
		RCD(eg#)rr #P <RMD(e)

		[RMD(a)r8]
		RMD(a)r8RMD(b->e<)
		[RMD(a)r8]
		RMD(a)r8RMD(ge)
		[RMD(a)r8]
		RMD(a)r8RMD(b->e<)
		l2^4RMD(a)r4
}

#P11_03={
	TR(3)
		o3 l8 #R #MS q40
		[RMD(a>e<)]
		[RMD(a>e<)]

		[RMD(a>e<)]
		RMD(a>e<)RMD(b->e<)
		[RMD(a>e<)]
		RMD(a>e<)RMD(ge)
		[RMD(a>e<)]
		RMD(a>e<)RMD(b->e<)
		ro5[RCD(e>ce<)]RCD(db->d<)
		q95l16Sub{RMD(c)}RMD(>c<aec)q40l8RMD(e) r

		o4
		[RMD(eb)]
		RMD(e) RMD(b)RMD(fb)
		[RMD(e) RMD(b)]
		RMD(e) RMD(b)RMD(d<b>)
		#F  [RMD(e) RMD(b)]
		#F RMD(e) RMD(b)RMD(fb)
		ro5[RCD(g#b)#MS]#M RCD(fa)
		q95RMDCresc(-3)l16RMD(g#e<bg#)q40l8RMD(b) #PP r

		[r-48RMD(g#48)RMD(a)r8]
		r-48RMD(g#48)RMD(a)r8RMD(b->e<)
		[r-48RMD(g#48)RMD(a)r8]
		r-48RMD(g#48)RMD(a)r8RMD(ge)
		RMDCresc(-1)[r-48RMD(g#48)RMD(a)r8]
		r-48RMD(g#48)RMD(a)r8RMD(b->e<)
		[RMD(ae)]
		l4RMD(a)r
}

#P11_04={
	TR(4)
		o2 l8 #R #F q40
		[RMD(a>e<)]
		[RMD(a>e<)]

		[RMD(a>e<)]
		RMD(a>e<)RMD(b->e<)
		[RMD(a>e<)]
		RMD(a>e<)RMD(ge)
		[RMD(a>e<)]
		RMD(a>e<)RMD(b->e<)
		RMD(a)q55[6 RCD(a>ea<)]q40
		RMD(b)
		>
		[RMD(eb)]
		RMD(e) RMD(b)RMD(fb)
		[RMD(e) RMD(b)]
		RMD(e) RMD(b)RMD(d<b>)
		#F  [RMD(e) RMD(b)]
		#MS RMDCresc(-4)RMD(e) RMD(b)RMD(fb)
		RMD(e)q58 [6 RCD(!eb>e<)#M]q40
		#P RMD(e)<

		[RMD(a>e<)]
		RMD(a>e<)RMD(b->e<)
		[RMD(a>e<)]
		RMD(a>e<)RMD(ge)
		[RMD(a>e<)]
		RMD(a>e<)RMD(b->e<)
		[RMD(a>e<)]
		l4RMD(a) #PP RCD(g>g<)
}

// Part12
#P12_16={
	TR(16)
		TmpChangeR(80,0)[7 r2]
		TmpChangeR(77,!2)

		TmpChangeR(75,!2^2)
		[[TmpChangeR(73,0)TmpChangeR(70,!4)]]
		[3 r2]
		TmpChangeR(65.!2)
}

#PEDAL12={
	Sub{
		[4 #PEDALON r1 #PEDALOFF]
		[4 #PEDALON r2 #PEDALOFF]
	}
}

#P12_01={
	TR(1)
		o6 #R #PPS q98 #PEDAL12
		l8RCD(g>c)RMD(de4.)
		RMD(dc<b)
		RMD(e1)
		RCD(ea)RMD(b>c4.)
		RMD(<bae)
		RMD(c1)
		RCD(<a>d)RMD(ef4.)
		RMD(gg#a)
		RCDINIT(48,56)l2RCD(egb>e<)
		RCD(<b>fgb)
		#R #PPS l8RCD(e-f#>c)RMD(dcd)<
		RCDINIT(48,56)l4RCD(eg>ce<)RCD(egb>e<)
		#R #PPS Sub{l4RCD(eg)}l1RCD(c>c<)
}

#P12_02={
	TR(2)
		o6 #R #PP q98 #PEDAL12
		l8RCD(ce)RMD(de4.)
		RMD(dc<b)
		RMD(e1)
		RCD(a>c<)RMD(b>c4.)
		RMD(<bae)
		RMD(c1)
		RCD(df)RMD(ef4.)
		RMD(gg#a)
		RCDINIT(48,56)l2r2
		r2
		#R #PPS >l8RMD(cdcd)<
		r2
		r2
		r2
}

#P12_03={
	TR(3)
		o4 #R #SP q98 #PEDAL12
		l4r4 RCDINIT(48,56)o4RCD(ceg>ceg>c)
		o4RCD(eg>ceg>ce)o4RCD(ceg>ceg>c)
		r4 o4RCD(<b>egb>egb)o4RCD(egb>egb>e)o4RCD(<b>egb>egb)
		r4 o4RCD(<a>cea>cea)o4RCD(cea>cea>c)o4RCD(<a>cea>cea)
		r4 o4RCD(<a>cea>ce)o4RCD(cea>cea)o4RCD(<a>cea>ce)
		r4 o4RCD(dfa>dfa>d)o4RCD(fa>dfa>df)o4RCD(dfa>dfa>d)
		r4 o4RCD(gb>fgb>e)
		r4 o4RCD(fgb>fgb)
		r2
		o5l8RCD(eg>c<)rRCD(fgb)r
		RCD(eg>c<)r l2RCD(ce-)
		l4RCD(ce)
}

#P12_04={
	TR(4)
		o3 #R #PP q98 #PEDAL12
		l1RCD(c>c<)
		RMD(e)<
		l1^1RMD(a)>
		l1RMD(d)
		l2RMD(g)
		l2RMD(g)
		RCDINIT(48,56)RCD(a->e-a->e-f#>c)
		#R #PP o3l8[RCD(g>g<)r]
		RCD(>c>c<<)r l4RCD(a->a-<)
		RCD(f#>f#<)RCD(g>g<)
}

// Part13
#P13_16={
	TR(16)
		TmpChangeR(65,0)
}

#P13_01={
	TR(1)
		o5 #R #PP
		q100l8RMD(cde4.)
		RMDCresc(-2)RMD(dc<b)
		q90RMD(e1)
		q100#PP RMD(ab>c4.)
		RMDCresc(-4)RMD(<bae)
		q90RMD(c1)

		#SP
		q60RMD(arar)
		RMD(ar)q98RMD(b->e<)
		q60RMD(arar)
		RMD(ar)q98Sub{r-48r-48RMD(g48a48)}RMD(ge)
		q60[4 RMD(a)rrr]

		#SF #PEDALON l8o7RCD(a>cea) #PEDALOFF
		r1r1
		v0o1c64
}

#P13_02={
	TR(2)
		[16 r2]
		#SF #PEDALON l8o5RCD(ea>ce) #PEDALOFF
}

#P13_03={
	TR(3)
		o4 #R #SP q65 l8
		[4 RCD(ceg>c<)r]
		[4 RCD(egb)r]
		[4 RCD(cea)r]
		[4 RCD(<a>ce)r]<

		q60RMD(arar)
		RMD(ar)q98RMD(b->e<)
		q60RMD(arar)
		RMD(ar)q98RMD(ge)
		q60[4 RMD(a)rrr]

		#SF #PEDALON l8o4RCD(cea>c) #PEDALOFF
}

#P13_04={
	TR(4)
		o3 #R #SP q65 l8
		[4 RCD(cg)r]
		RCD(egb)r[3 RCD(<e>e)r]
		[8 RCD(<a>e)r]<

		q60RMD(arar)
		RMD(ar)q98RMD(b->e<)
		q60RMD(arar)
		RMD(ar)q98RMD(ge)
		q60[4 RMD(a)rrr]

		#SF #PEDALON l8o2RCD(a>cea) #PEDALOFF
}

TR(16)
	#tr16={
		#P01_16
		#P02_16
		#P03_16
		#P04_16
		#P05_16
		#P06_16
		#P07_16
		#P08_16
		#P09_16
		#P10_16
	}
	LoopPlay(#tr16,,0)
	#P11_16
	#P12_16
	#P13_16

TR(1)
	#tr01={
		#P01_01
		#P02_01
		#P03_01
		#P04_01
		#P05_01
		#P06_01
		#P07_01
		#P08_01
		#P09_01
		#P10_01
	}
	LoopPlay(#tr01,,0)
	#P11_01
	#P12_01
	#P13_01

TR(2)
	#tr02={
		#P01_02
		#P02_02
		#P03_02
		#P04_02
		#P05_02
		#P06_02
		#P07_02
		#P08_02
		#P09_02
		#P10_02
	}
	LoopPlay(#tr02,,0)
	#P11_02
	#P12_02
	#P13_02

TR(3)
	#tr03={
		#P01_03
		#P02_03
		#P03_03
		#P04_03
		#P05_03
		#P06_03
		#P07_03
		#P08_03
		#P09_03
		#P10_03
	}
	LoopPlay(#tr03,,0)
	#P11_03
	#P12_03
	#P13_03

TR(4)
	#tr04={
		#P01_04
		#P02_04
		#P03_04
		#P04_04
		#P05_04
		#P06_04
		#P07_04
		#P08_04
		#P09_04
		#P10_04
	}
	LoopPlay(#tr04,,0)
	#P11_04
	#P12_04
	#P13_04