/*

シンベの実験

作業時間取れてないので、こういうのでお茶を濁してみたり。

*/

//パターン。
#Pat1={ o3 [4 cr>cc<] }
#Pat2={ o3 [4 dr>dd<] }
#Pat3={ o3 [4 er>ee<] }
#Pat4={ o3 [4 fr>ff<] }
#Pat5={ o2 [4 gr>gg<] }
#Pat6={ o2 [4 ar>aa<] }
#Pat7={ o2 [4 br>bb<] }

//出力用の関数と対になっている。
Function StateLoop(){

	Int State;         //状態変数。
	State=Random(1,7); //初回実行用。値の範囲は1〜7。

	//状態がゼロでない限り繰り返す。
	While(State!=0){
		Print(State); //値を確認するため。
		State=OutPut(State);//状態によって出力が変わる。戻ってきた値で状態を更新する。
		If(State==0){;}
	}
}


//出力用の関数。
Function OutPut(Int State){

	//場合分け
	Switch(State){
	Case(1){ #Pat1; }
	Case(2){ #Pat2; }
	Case(3){ #Pat3; }
	Case(4){ #Pat4; }
	Case(5){ #Pat5; }
	Case(6){ #Pat6; }
	Case(7){ #Pat7; }
	Default{;}
	}
	
	State=Random(8); //0〜7の範囲。
	Result=State;    //呼び出し側に値を返却してやる。
}


//------------------------------------------------------------------------------
//使用例
//

TR(0)
Time(1:1:0) ResetGM
Time(2:1:0) TrackSync

TR(1) CH(1) V(127) REV(0) @40
l16 v127 q99
[
	StateLoop();//呼び出し。
]
r1;

