MetaText  ={"                                                  '2分 57秒'"} 
TrackName ={"消失点 -vanishing point-"}
Copyright ={"庚申works"}
 
// ■コメント 
	
/*	□概要 

	　四つ打ち曲の苦手感克服のため、自分で曲をつくれば何か見えるかなと思って始めたのが
	そもそものコンセプトでした。
	また DAWの Nano Studioを仮想Midiケーブルでつなぎ、サクラの外部音源にしてしまおう!
	が隠しテーマとして存在します。
	ただ、予想以上にミキシングに時間がかかっているので、打ち込みまで手が回らなかったのが悔いです。

	　TWやsakuraでも再生はできますが、出力トリガーとしての簡易音色指定しかしていないので、
	できるだけ、SoundCloud側で聞いていただけると幸いです。、


	--- 構造化エディタ対応です。タブサイズは 8であれば見やすいです。---


	・Nano studioの簡単な説明

	　iOS、iPhoneやiPadで使用される比較的小規模版のDAWです。
	windows版、Mac OS X版は、フリーソフトのためタダで入手できます。
	自分にとっては初DAWでもあります。

	　最近1.34 -> 1.4 ver upしたようです、

	　ただこの1.4はXPで起動しませんでした、、エラーの表示が出て止まります。
	kernel32.dllにあるInitializeCriticalSectionExというWin32APIを呼び出しているらしく、
	2kやXPにはないApiのため、対応の表記はあれど起動しないことが解りました。
	Vista以降であれば問題はないと思います、。

	http://connect.microsoft.com/VisualStudio/feedback/details/783317/visual-studio-2012-update-2-windows-xp
	http://translate.google.co.jp/translate?hl=ja&ie=UTF8&prev=_t&sl=en&tl=ja&u=http://tedwvc.wordpress.com/2013/04/14/how-to-get-visual-c-2012-update-2-statically-linked-applications-to-run-on-windows-xp/

	　上記のurlを参照したところ、
	XPのこのケースはマイクロソフト側の問題らしく、updateパッチとの兼ね合いが悪い可能性があります。
	1.34でも起動しなくなったため、1.33までもどしてなんとか稼働できるようにしています。


	・Nano Studioの外部音源化の方法(sakuraとの接続)

	　まず、仮想Midiケーブルをインストール
	ATS-MA7-SMAFのなかに同梱されているYAMAHA Virtual MIDI Driverを使用します。
	MidiYokeも有名ですが、環境を選ぶのであまりお勧めできません。
	最近の64bitOSでは、多分LoopMidiしか選択肢がないと思います。

	　ここからはsakuraの設定を変更します。
	sakuraのプルダウンメニューから、設定 - プレイヤーと外見の設定　を選択します。
	設定ウィンドウが開いたら、プレイヤタブを選択し、MIDIポートの割り当てボタンを押します。

	するとMIDIポート設定ウィンドウが開きます。
	Port0 ロールメニューを、MIDI DefaultからYAMAHA Virtual MIDI Device 0へ変更します。

	これで出力先が仮想ミディケーブル 0番へ変更されました。

	　そして、入力先のNano Studioを準備します。
	Nano Studio をインストールします。
	MANAGEを押します。
	MIDIタブを選択し、MIDI Input Deviceを切り替えて、YAMAHA Virtual MIDI Device 0を選択します。
	リモート許可のため OMNIスイッチを消灯します。

	　これで接続は完了です。

	// TR=1  CH=16 Mixerで使用
	TR=2 CH=1 Port=0
	@1,0 cdef#

	　これで音が出るはずです。


	・現状での問題[ver1.34]

	　Nano Studioはインターナルクロックのみの仕様なので、
	外部クロックを受け付けないため、シンクがとれず予想できないずれが生じます。

	昨今のディレイや音色(ワブルベースなど)は、テンポを参照して音量変化を加えるため、
	BPMシンクがとれない状態で接続すると、小節のキリのタイミングが合いません。

	ズレを理解したうえで仮想ミディで接続したまま、ミキシング工程まではサクラで終わらせ、
	のちコントロールチェンジごとミディファイルにエクスポートし、最終行程のレンダリングのみ、
	Nano Studioで行いました。



	　詳しい説明は余談として、ファイルの最後にコメントを記しましたので興味があればのぞいてみてください。、


*/
 
/*	□コード展開 

	　　四つ打ちの場合 4和音ではテンション感が強いため、なんとなく向かないようなので
	　ボトム付き 3和音へ切りかえました。
	　またコード展開は基本通りメジャーダイアトニックからの引用となります。

	　ボトムノート(分母ノート)の動きは通常上昇ラインで、終盤のみ下降ラインにしています。
	　終局に現れる F/C -> C アーメン終止はとりあえず使いたかっただけです。、


	PartA 前半
	| Dm/G	| G	| F/G
	  SD	  D	  SD

	　-- ダイアトニックコードで、ボトムノートはGペダル(持続音)


	PartA 後半A型 -> PartA 前半へ
	| Dm/G	| Em/A	| G/C	| Gsus2/D -> Dm/G
	  SD	  T,D	  D

	　-- Gsus2、あまり見かけないコードですが近似音で見る限り、sus4と近いコードでいいと思います。


	PartA 後半B型 -> 転調してPartA 前半へ
	| Dm/G	| Em/A	| G/C	| D#aug -> F#m/B [Key=4 Dm/G]
	  SD	  T,D	  D

	　-- D#aug、[aug]は調性感が曖昧になるので、コードを飛躍するときに差し込みます。


	PartB 前半
	Dm/G		| G		| F/G
	SD		  D		  SD
	B HmP5B	  	  B HmP5B	  C Mixolydian


	PartB 後半
	| Dm/G		| Em/A		| G		| Gsus2
	  SD		  T,D		  D
	  B HmP5B	  C Mixolydian	  F Mixolydian	  G HmP5B


	PartA 後半C型 - 終局へ
	| Dm/G	| G/F	| Em	| D#dim	| Dm	| Csus4	| F/C	| C
	  SD	  D	  T,D		  SD		  SD	  T

	　-- D#dim、[dim]は典型的なパッシングです。



*/
 
/*	□サークル of 5thを使用したaug. dim. コード理論解析 


	　サークル of 5thはモーダル(旋律)、コーダル(伴奏)の動きのどちらでも説明ができるもので、
	音楽を理論でとらえる際によく引用されるものです。
	これを利用することにより、慣例的に使用される定番コードワークの妙がかなり理論的に解明できます。
	ただ自分の力量では、音楽理論はまだ途上にいることもあり、これは参考程度と留めさせて下さい。


	　まず最も分かりやすいと思われるジャズに於いての定番コードの動きをこの五度圏で説明します。
	恐らく近似音、共通音を経過しているので綺麗につながっていると思われます。

	'dfac' | 'gbdf' | 'cegb'
	 Dm7   -> G7    -> C

	コードを分解した、それぞれの近似音の動きです。下のサークル表から照らし合わせてみました。

	 d      > g      > c (d>g-g)
	 f      = f      > c
	 a      > d      > g
	 c      > g      = g (c>f>c)
	          b      > e (b-b)

	　構成音のほぽ全てが、近似音を経過していることが分かると思います。

	　近似音のサークル(同じ倍音を多く含む)、これをサークル of 5th、サイクル of 5th、4度圏、5度圏などと呼びます。
	この隣り合った音同士が、物理的に近い響きを持っているためです。


		1度      5度               8度
	Key:A	A:440Hz, E:660Hz=440*1.5, `A:880Hz=440*2　[:物理周波数表示]


			C

		G		F


	D				A#(Bb)



	A				D#(Eb)



	E				G#(Ab)

		B		C#(Db)

			F#(Gb)


	　今回の曲に於いてメインで挑戦したのは、オーギュメント、ディミニッシュのコードなのですが、
	実は五度圏表の点と点を結ぶように線を引いてみると、aug,dimどちらも偏りのない形、正三角、正四角のため、
	どの音が中心か分からないつまり、調性感(キー)が一時的に曖昧になることが分かるので、
	この仕組みを利用し転調などを含むコード飛躍をすることにしました。


	[aug.] -> CEG#、オーギュメントはこのサークルで見ると正三角形です。このため特有の無調感を有します。

	利点は、'ceg' | 'ceg#' | 'eg#b' と飛躍しても共通や近似音などのため、多少強引でもつながってしまう点です。
		 CM      Caug     EM(Key:E CM)

		'ceg' |	'ceg#' | 'fg#c'
		 CM      Caug     Fm(Key:D# Dm)

		'dfa' |	'ceg#' | 'cd#g'		クリシェのパッシング
		 Dm      Caug     Cm


		当曲ではPartA 後半B型で使用してます。、 - 転調して前半へ
		Dm/G	Em/A	G/C	D#aug -> F#m/B [Key=4 Dm/G]
		SD	 T,D	D


	[dim.] -> CAF#(D#)、ディミニッシュは正四角形になります。

	　ただし'CF#','AD#'などの組合せがあり、この増四度のトライトーンのため、
	どこかに帰結したくなるコードでもあるので、パッシング(経過)で使用されることが多い。

	基本的には半音上からないし、半音下から目的のコードへアプローチが主となります。
	以下でこの機能を簡単に分析も含めて提示しています、。

	'egb(d)' | 'f#ac(d#)' | 'gbd(f)'	<- g>c>g, b>f#>b, e>a>d, g>c>f 隣の近似音にずれていく仕組み
	 Em(7)   -> F#dim(7)  -> G(7)

	'ace(g)' |  'bdf(g#)'      | 'gbd(f)'	<- ダイアトニックのパッシング a>d=d e>b=b a>d>g,などの近似音によるつなぎ
	 Am(7)   ->  Bdim7(G#dim7) -> G(7)


		普通は区切り感の強い、上がりパッシングのパターンが多いらしいのですが、
		当曲では軟着陸感のある、下降型をPartA 後半C型で使用してます。、 - 終局へ
		| Dm/G	| G/F	| Em	| D#dim	| Dm	| Csus4	| F/C	| C
		  SD	  D	  T,D		  SD		  SD	  T



	　サークル of 5thは転調感や、旋律の理論的説明までできる面があるので必携です、、

	　この五度圏サークルは、時計の数字と配置が同じなので、何時あたりへと考えると理解しやすいです。
	[C]を 0時として始めるのであれば、転調感があるのはサークルで見ると、
	3時[Eb],4時[Ab]、(9時[A],8時[E]もあり)あたりとかいいます。
	また、旋律であれば、半音下がりは 7時[B]の方向、全音上であれば 10時[D]へと向かう形になるともいえます。
	悪魔の音程と言われる、増四度(トライトーン)であれば 6時[F#] - 真下へ向かいます。


	-- MML以後へ書き込んだ、接続やミックスについてへ続く --



*/
  
// ■出力先 

Int Mid_out=0;	// [ミディ書き出し:1 ]
Int extSW=0;	// [ nano:1 -- OMNI Mode:off BPM->数値合わせる ]

// nano studio -> ミディ同期は取れない。
// TRはインターナルの配置、CHはエクスターナルの配置となる。
// ミディファイル受け渡しでは、あらかじめ音色をアサインする。

Int Gs_port=0;		//GS音源ポート指定
Int Nano_port=0;	//nano音源ポート指定

//PlayFrom(Time);


 
// ■Function 
	
 Function Chdx(Str Beat, Str Length, Int Z){ //Z - bug 
 	RESULT= { TT=Time;}+ Beat +{ Time=TT;}+ Length;
 } //Func
 
 Function Drmx(Str Kick, Str Snare, Str Hihat, Str Length, Int Z){ //Z - bug 

	Str Chd_str={ TT=Time;} // - gbl
	Str Beat;
	FOR(Int I=0; I< 3; I++){
		SWITCH(I){
		CASE(0){ Beat= Kick; }
		CASE(1){ Beat= Snare; }
		CASE(2){ Beat= Hihat; }
		} //sw
		Beat.s({Z},{t0  v116 'n48'});	//BD
		Beat.s({X},{t-1 v106 'n49'});	//Sn
		Beat.s({C},{t1  v111 'n50'});	//closeHH
		Beat.s({V},{t4  v99  'n51'});	//closeHH

		Beat.s({A},{t4 v111 'n56'});	//CrashCymbal
		Beat.s({Q},{t1 v111 'n60'});	//SplashCymbal

		Chd_str= Chd_str+ Beat+ { Time=TT;} // - gbl
	} //
	Chd_str= Chd_str+ Length;

	RESULT= Chd_str;
 } //Func
 
 Function Drgsx(Str Kick, Str Snare, Str Hihat, Str Length, Int Z){ //Z - bug 

	Str Chd_str={ TT=Time;} // - gbl
	Str Beat;
	FOR(Int I=0; I< 3; I++){
		SWITCH(I){
		CASE(0){ Beat= Kick; }
		CASE(1){ Beat= Snare; }
		CASE(2){ Beat= Hihat; }
		} //sw
		Beat.s({Z},{t1 v111'n35'});	//BD
		Beat.s({X},{t2 v66 'n40'});	//Sn
		Beat.s({C},{t0 v121'n42'});	//closeHH
		Beat.s({V},{t0 v121'n44'});	//PedalHH

		Beat.s({A},{t18 'n49'});	//CrashCymbal
		Beat.s({Q},{t16 'n55'});	//SplashCymbal

		Chd_str= Chd_str+ Beat+ { Time=TT;} // - gbl
	} //
	Chd_str= Chd_str+ Length;

	RESULT= Chd_str;
 } //Func
  
// ■data 
	
// Chord - Scale 

// Arrange1
 #DA={	//r1^1^1^1
 CD={'"gd`fa'1^2 }	BS={r}	LD={r}	SQ={r}	LEN={ r1^2 }		LYR={ Dm/G  SD }	Pi;
 CD={'"gd`gb'2 } 				LEN={ r2 }		LYR={ G     D }		Pi;
 CD={'"gf`a`c'1^1 } 				LEN={ r1^1 } 		LYR={ F/G   SD }	Pi;
 };

 #DA2={	//r1^1^1^1
 CD={r-1^1^1^1 '"gd`fa'1^1^1 ^1^2^8 } BS={r} LD={r} SQ={r} LEN={ r1^2 }	LYR={ Dm/G  SD }	Pi;
 CD={r-1 '"gd`gb'2 }				LEN={ r2 }		LYR={ G     D }		Pi;
 CD={r-1 '"gf`a`c'1^1^1 } 			LEN={ r1^1 }		LYR={ F/G   SD }	Pi;
 };

 #DB={	//r1^1^1^1
 CD={'"gd`fa'1^2 }	BS={r}	LD={r}	SQ={r}	LEN={ r1^2 }		LYR={ Dm/G  SD }	Pi;
 CD={'"ag`b`e'2 }				LEN={ r2 }		LYR={ Em/A  T,D }	Pi;
 CD={'"bg`b`d'1 }				LEN={ r1 }		LYR={ G/B   D }		Pi;
 CD={'cg`a`d'1 }				LEN={ r1 }		LYR={ Gsus2/C }		Pi;
 };

 #DC={	//r1^1^1^1
 CD={'"gd`fa'1^2 }	BS={r}	LD={r}	SQ={r}	LEN={ r1^2 }		LYR={ Dm/G  SD }	Pi; // [5,(0)]
 CD={'"ag`b`e'2 }				LEN={ r2 }		LYR={ Em/A  T,D }	Pi; // [7,(2)]
 CD={' dg`b`d'1 }				LEN={ r1 }		LYR={ G/D   D }		Pi; // [11,(5)]
 CD={' gd#`g`b'1 }				LEN={ r1 }		LYR={ D#aug/G }		Pi;
 };

 #DD={	//r1^1^1^1
 CD={'"gd`fa'1^2 }	BS={r}	LD={r}	SQ={r}	LEN={ r1^2 }		LYR={ Dm/G  SD }	Pi; // [5,(0)]
 CD={'"fg`b`d'2 }				LEN={ r2 }		LYR={ G/F   D }		Pi; // [11,(5)]
 CD={'"eg`b`e'1 }				LEN={ r1 }		LYR={ Em    T,D }	Pi; // [7,(2)]
 CD={'"d#f#`a`c'1 }				LEN={ r1 }		LYR={ D#dim }		Pi; // [4,(11)]
 };

 #DR={	//r1^1^1^1
 CD={'"df`a`d'1^1 }				LEN={ r1^1 }		LYR={ Dm   SD }		Pi; // [5,(0)]
 CD={'"gd`g`c'1^1 ^1^1^1^1 }			LEN={ r1^1 }		LYR={ Csus2/G }		Pi; // [5,(0)]
 };

 #DL={	//r1^1^1 ^1^1^1 ^1^1^1^2
 CD={'"df`a`d'1^1^8 }				LEN={ r1^1 }		LYR={ Dm   SD }		Pi; //[5,(0)]
 CD={'"gd`g`c'1^1^8 }				LEN={ r1^1 }		LYR={ Csus2/G }		Pi; //[5,(0)]
 CD={'"ca`c`f'1^1^8 }	BS={r}	LD={r}	SQ={r}	LEN={ r1^1 }		LYR={ F/C  SD }		Pi; //[9,(4)]
 CD={'"c`egc'1^1^4 }	BS={r}	LD={r}	SQ={r}	LEN={ r1^1^4 }		LYR={ C    T }		Pi; // [4,(11)]
 };

 // Arrange2
 #DE={	//r1^1^1^1
 CD={r}	BS={d1^2}	LD={TrackKey=-1; r16c#1^2 }	SQ={r}	LEN={ r1^2 }		LYR={ Dm/G SD   B HmP5B }	Pi; // [5,(0)]
	BS={g2}		LD={TrackKey=-1; r16"f#1 }		LEN={ r2 }		LYR={ G     D   B HmP5B }	Pi; // [11,(5)]
	BS={f1^1}	LD={TrackKey= 0; r16^2d2^1 }		LEN={ r1^1 }		LYR={ F/G  SD   C Mixolydian }	Pi; // [7,9,(4)]
 };

 #DF={	//r1^1^1^1
 CD={r}	BS={d1^2}	LD={TrackKey=-1; r16"a#1^2 }	SQ={r}	LEN={ r1^2 }		LYR={ Dm/G SD   B HmP5B }	Pi; // [5,(0)]
	BS={e2}		LD={TrackKey= 0; r16"e1 }		LEN={ r2 }		LYR={ Em/A T,D  C Mixolydian }	Pi; // [7,(2)]
	BS={g1}		LD={TrackKey=-7; r16^2a2 }		LEN={ r1 }		LYR={ G    D    F Mixolydian }	Pi; //[11,(5)]
	BS={g1}		LD={TrackKey=-5; r16c1 }		LEN={ r1 }		LYR={ Gsus2     G HmP5B }	Pi; // [9,(4)]
 };

//(0, 1, 4, 5, 7, 8, 10 ) C HmP5B
//cc#efgg#a#
//(0, 2, 4, 5, 7, 9, 10 ) C Mixo
//cdefgaa#

 #DG={	//r1^1^1^1 ^1
 CD={r}	BS={d1^2}	LD={TrackKey=-1; r16"a#1^2 }	SQ={ TrackKey=-1; l24 r-1^1^4^8 r Sub{r-4^8^6^16^ r48 y70.T(126,0,!2) Tmpv=MML(v) v(Tmpv/3) "e48 }Sub{r-4^8^16 v(Tmpv*3/4) "c# } | r4^8^96rrr <r-48 v(Tmpv) c r48c#er96c#crrr r96 r rr48cc#er96ga# >cc#rrr96^48 c <a#ger96c#^^^> }	LEN={ r1^2 }	LYR={ Dm SD     B HmP5B }	Pi;	//[5,(0)]
	BS={e2}		LD={TrackKey= 0; r16"e1 }	SQ={ TrackKey= 0; l24 r48^96 r48^48 rrrr << y70.T(126,0,!2) Tmpv=MML(v) v(Tmpv/2) d v(Tmpv) egaa#r96>cde gaa#> }	LEN={ r2 }	LYR={ Em T,D    C Mixolydian }	Pi; //[7,(2)]
	BS={g1}		LD={TrackKey=-7; r16^2a2 }	SQ={ TrackKey=-7; l24 rrrr y70.T(126,0,!2) r^48 cdegaa#r96>cdegaa#r96>cr96<a#r96gec#c<a#r96gec#c }			LEN={ r1 }	LYR={ G D       F Mixolydian }	Pi; //[11,(5)]
	BS={g1}		LD={TrackKey=-5; r16c1 }	SQ={ TrackKey=-5; l24 r48 r^48r^48^96 rr y70.T(126,0,!2) c#er96ga#>cc#er96ga#>c<a#ger96c# cc#r96 c^^^< }		LEN={ r1 }	LYR={ D#aug(7)  G HmP5B }	Pi; //[7,11,(1)]
 };

 #DG2={	//r1^1^1^1 ^1
 CD={r}	BS={d1^2}	LD={TrackKey=-1; r16"a#1^2 }	SQ={ TrackKey=-1; l24 Sub{ r-1^96 y70.T(126,0,!2) Tmpv=MML(v) v(Tmpv) c#48r48rr v(Tmpv*3/4) "a# } | r48^96 <r r48^24 v(Tmpv) c#ega#>c c#ega#>r96c^^< }	LEN={ r1^2 }	LYR={ Dm SD     B HmP5B }	Pi;	//[5,(0)]
	BS={e2}		LD={TrackKey= 0; r16"e1 }	SQ={ TrackKey= 0; l24 rr y70.T(126,0,!2) < Tmpv=MML(v) v(Tmpv/3) d v(Tmpv) e gaa#r96>c<a#r96agedc > }		LEN={ r2 }	LYR={ Em T,D     C Mixolydian }	Pi; //[7,(2)]
	BS={g1}		LD={TrackKey=-7; r16^2a2 }	SQ={ TrackKey=-7; l24 r48rr < y70.T(126,0,!2) de gaa#r48 > cde gaa#r48 > c <a#r48aged   }			LEN={ r1 }	LYR={ G D	 F Mixolydian }	Pi; //[11,(5)]
	BS={g1}		LD={TrackKey=-5; r16c1 }	SQ={ TrackKey=-5; l24 r48r y70.T(126,0,!2) cc#cc#er96g l16 a#r24gc# l24 cc#er96a# > r48 cc#er96g er96g a# ger48 c#c<a#ger96c# r cc#er48fgg#a# > cc#er48fgg#a# `cr48^96 a#r96g#gf e rrr48^96 gr96　e^4^32 < }	LEN={ r1 }	LYR={ D#aug(7)  G HmP5B }	Pi;	//[7,11,(1)]
 };

 
// Rhythm 

 //Section 1 / Arrange1
 #D1={	Key=0	#DA;
	BD={r}
	SN={r}
	HH={r}
	LENall={ r1^1^1^1 } Piall;
 };
 #D2={		#DB; LENall={ r1^1^1^1 }  Piall; }

 #D3={		#DA;
	BD={[4 l4 ZZZZ ] }
	SN={r}
	HH={[2 l16 rrVr rrVr rrVr rrVr  rrVr rrVr rrVr rVCV ] }
	LENall={ r1^1^1^1 } Piall;
 };
 #D4={		#DC;
	BD={[2 l4 ZZZZ ] l16 Zrrr Zrrr Zrrr Zrrr  ZrZr ZrZr ZrZZ ZZZZ }
	SN={r}
	//HH={}
	LENall={ r1^1^1^1 } Piall;
 };

 //Section 2
 #D5={	Key=4	#DA;
	BD={[4 l4 ZZZZ ] }
	SN={[2 l8 rrrr rrXr : rrrr rrrr ] l16 rrrr rrXr rrXr rrXX }
	HH={[4 l16 rrVr rrVr rrVr rVCV ] }
	LENall={ r1^1^1^1 } Piall;
 };
 #D6={		#DB;
	BD={[4 l4 ZZZZ ] }
	SN={[2 l8 rrrr rrXr : rrrr rrrr ] l16 rrrr rrXr rrrr rrXr }
	//HH={}
	LENall={ r1^1^1^1 } Piall;
 };
 #D7={		#DA;
	BD={[4 l4 ZZZZ ] }
	SN={[2 l8 rrrr rrXr : rrrr rrrr ] l16 rrrr rrXr rrXr rrXX }
	//HH={}
	LENall={ r1^1^1^1 } Piall;
 };
 #D8={		#DD;
	BD={[4 l4 ZZZZ ] }
	//SN={}
	//HH={}
	LENall={ r1^1^1^1 } Piall;
 };
 #D8_2={	#DR;
	BD={[2 l4 ZZZZ ] l16 Zrrr Zrrr ZrZr ZrZr  ZrZr ZrZr ZZZZ ZZZZ }
	SN={[2 l8 rrrr rrXr : rrrr rrrr ] l16 rrrr rrXr rrrr rrXr }
	HH={[3 l16 rrVr rrVr rrVr rVCV ] rrVr rrVr rVCV CVC l32 rQ | rrrr rA }
	LENall={ r1^1^1^1 } Piall;
 };

 //Section 3 / Arrange2
 #D9={	Key=-4	#DE;
	BD={r}
	SN={r}
	HH={r}
	LENall={ r1^1^1^1 } Piall;
 };
 #D10={		#DF; LENall={ r1^1^1^1 } Piall; }
 #D11={		#DE; LENall={ r1^1^1^1 } Piall; }

 #D12={		#DG;
	BD={r}
	SN={r}
	HH={r1 l16 [3 rrrr rrVr rrrr rrVr] }
	LENall={ r1^1^1^1 } Piall;
 };

 //Section 4
 #D13={	Key=0	#DE;
	BD={r}
	SN={r}
	HH={[4 l16 rrrr rrCV rrrr rrCV] }
	LENall={ r1^1^1^1 } Piall;
 };
 #D14={		#DF; LENall={ r1^1^1^1 } Piall; }
 #D15={		#DE; LENall={ r1^1^1^1 } Piall; }

 #D16={		#DG2;
	BD={r}
	SN={r}
	HH={[2 l16 rrrr rrr rrVr rVrV  rrrr rrV rrVr rVrV ] }
	LENall={ r1^1^1^1 } Piall;
 };

 //Section 5 / Arrange1
 #D17={	Key=1	#DA2;
	BD={r-1^1 l16 Zrrr rrrr Zrrr rrrr  Zrrr Zrrr ZrZr ZZZZ  [4 l4 ZZZZ ] }
	SN={r-1^1 l8 rrrr rrXr  rrrr rrXr  rrrr XrrX  rrrr XrrX  rrrr XrrX  l16 rrrr rrXr rrXr rrXX }
	HH={r-1^1 [4 l16 rrCV rrCV rrVr rrVr ] l16 rrCV rrCV rrCV CVCV  l16 rrVr rrVr rrVr rrCV }
	LENall={ r1^1^1^1 } Piall;
 };
 #D18={		#DB;
	BD={[4 l4 ZZZZ ] }
	SN={[2 l8 rrrr rrXr : rrrr rrrr ] l16 rrrr rrXr rrrr rrXr }
	HH={[4 l16 rrVr rrVr rrVr rrCV] }
	LENall={ r1^1^1^1 } Piall;
 };
 #D19={		#DA;
	BD={[4 l4 ZZZZ ] }
	SN={[2 l8 rrrr rrXr : rrrr rrrr ] l16 rrrr rrXr rrXr rrXX }
	//HH={}
	LENall={ r1^1^1^1 } Piall;
 };
 #D20={		#DD;
	BD={[4 l4 ZZZZ ] }
	SN={[2 l8 rrrr rrXr : rrrr rrrr ] l16 rrrr rrXr rrXr rrXX }
	//HH={}
	LENall={ r1^1^1^1 } Piall;

 };
 #D20_2={	#DL;
	BD={[2 l4 ZZZZ ] l16 Zrrr Zrrr ZrZr ZrZr  ZrZr ZrZr ZZZZ ZZZZ }
	SN={[2 l8 rrrr rrXr : rrrr rrrr ] l16 rrrr rrXr rrrr rrXr }
	HH={[4 l16 rrVr rrVr rrVr rVC : V ] l32 rA  | rQrr rrrA }
	LENall={ r1^1^1^1 } Piall;
 };
  
// ■control change 
	
#Mixer={ 

 y70,0 y72,0	// Master Vol Noise del
 Pi={ Piyo={ Lyric={Key:}+MML(Key)+LYR; LEN } Piyo;}

 IF(extSW==1){
	V=88
	Port=Nano_port;
 }
 ELSE{
	V=99
	Port=Gs_port;

	CCMute(on)
 }

Time=TB;

y70.T(0,21,!2^4)	//Snd1 Vol
y72.T(0,11,!2^4)	//Snd2 Vol
#D1;
#D2;
#D3;
#D4;

#D5;
#D6;
#D7;
#D8;
#D8_2;
Sub{ r-2 y72.T(11,101,!2) }	//Snd2 Vol
Sub{     y70.T( 21,75,!1^1) }	//Snd1 Vol
Sub{ r2  y72.T(101,66,!4^8) }	//Snd2 Vol
Sub{ r1^1^2 y72.T(66,0,!1^4) }	//Snd2 Vol
r1
#D9;
#D10;
#D11;
#D12;

#D13;
#D14;
#D15;
#D16;
Sub{ r-2^8 y72.T(0,101,!2^4) }			//Snd2 Vol
Sub{ r1^4  y70.T(75,46,!1^2^4^8) }		//Snd1 Vol
Sub{ r1^1^1^4 y72.T(101,11,!1^1^4) }		//Snd2 Vol
r1^1
#D17;
#D18;
#D19;
#D20;
Sub{ r4^1^1 y72.T(11,66,!1^1) }		//Snd2 Vol
#D20_2;
Sub{ r1^1^1 ^1 y72.T(66,0,!4  ) } 	//Snd2 Vol
Sub{ r1^1^1 ^1   V.T(88,0,!4^8) } 	//Master Vol

 r1  Pi={} //初期化
 };
 
#Backing={ 

 o5 l8
 Pi={ Piyo=Chdx(CD,LEN); Piyo; }
 t.Random=2 v.Random=6 q.Random=12 //Sq

 IF(extSW==1){
	V=0
	v116
	Port=Nano_port;
	@18,0,0					// BANK:GlobalA[0]y32 PRESET:A17.Nasty[18]
	y70,21 y71,33 y72,44 y73,44 y74,21	// Pad Control Send1
	q95
 }
 ELSE{
	V=0
	v66
	CHO=77
	Port=Gs_port;
	@81,1	// Sq
	q93

	CCNoMute(70,on)
	CCNoMute(71,on)
	CCNoMute(72,on)
	CCNoMute(73,on)
	CCNoMute(74,on)
 }

Time=TB-1;

V.T(0,61,!1)
Sub{ r16  y72.T(44, 0,!4^12 ) y73.T(44, 0,!4^12 ) }
Sub{ r16  y70.T(21,40,!4^8 ) y71.T(33,40,!4^8 ) }

Sub{ r1^2^4^8 y70.T(40,77,!1^4^8) }  			// Pad1 x
#D1;
Sub{ r16 y71.T(40,121,!1^2^4^8^16) }  			// Pad1 y
#D2;
Sub{ r-1 y70.T(77,126,!1^1^1^1 ^1^1^1^1  ^1^1^1^1 ) }	// Pad1 x
Sub{ r16 y72.T(0,4,!4^8^16^32 ) y73.T(0,4,!4^8^16^32 ) }
#D3;
#D4;

#D5;
#D6;
#D7;
#D8;
#D8_2;
Sub{ r-4^8 V.T(61,0,!1^2^8) }		//track Vol
r1
#D9;
#D10;
#D11;
#D12;
	V=0
#D13;
#D14;
#D15;
#D16;

r1^1
Sub{ r-1^1^2^4 V.T(0,63,!4^2^1^1) }	//track Vol
Sub{ r-1^1 y70,0 y71,0 y72,0 y73,0 }	// Pad Control Reset
Sub{ r1^2 y70.T(0,66,!1^1^4) }		// Pad1 x
Sub{ r1^2 y71.T(0,66,!1^1^4) }		// Pad1 y
#D17;
#D18;
Sub{ r1^1 y70.T(66,111,!1^1^1^2^4^8) }  // Pad1 x
#D19;
Sub{ r1^1^1^1 y71.T(66,111,!1^2^4^8) }  // Pad1 y
Sub{ r1^1^1^1   V.T(63, 61,!1^2^4^8) }	//track Vol
#D20;
#D20_2;

 r1  Pi={} //初期化
 };
 
#Strings={ 

 o5 l1
 Pi={ Piyo=Chdx(CD,LEN); Piyo; }
 t.Random=4 v.Random=8 q.Random=8 //Saw

 IF(extSW==1){
	V=0
	v80
	Port=Nano_port;
	@1,0,0
	y70,111 y71,11 y72,111 y73,111 y74,77	// Pad Control Reset
	q95
 }
 ELSE{
	V=0
	v72
	CHO=111
	Port=Gs_port;
	@82,1	// Saw
	q96

	CCNoMute(70,on)
	CCNoMute(71,on)
	CCNoMute(72,on)
	CCNoMute(73,on)
	CCNoMute(74,on)
 }

Time=TB+3;

Sub{ V.T(0,62,!1^2^4) }
#D1;
#D2;
#D3;
#D4;

#D5;
#D6;
#D7;
#D8;
Sub{ r1^8 y70.T(111,33,!1^1^2^4) y71.T( 11,126,!1^1^2^4) }
Sub{ r1^8 y72.T(111,33,!1^1^2^4) y73.T(111,  0,!1^1^2^4) }
#D8_2;
Sub{ V.T(62,0,!1^1^1^4) } //track Vol

r1
#D9;
#D10;
#D11;
#D12;

V=0 y70,0 y71,126 y72,126 y73,0

#D13;
#D14;
#D15;
#D16;

r1^1
Sub{ r-1^1^4 V.T(0,62,!1^1^8^16) }		//track Vol
Sub{ r2^4^8  y70.T(  0,111,!1^4^8)   y71.T(126, 11,!1^4^8)   }
Sub{ r2      y72.T(126,111,!2^4^8)   y73.T(  0,111,!2^4^8)   }
#D17;
Sub{ r4^8    y70.T(  0,111,!1^8)     y71.T(126, 11,!1^8)     }
Sub{ r8      y72.T(126,111,!2^8)     y73.T(  0,111,!2^8)     }
#D18;
Sub{ r1^4^8  y70.T(  0,111,!1^2^8)   y71.T(126, 11,!1^2^8)   }
Sub{ r1^4    y72.T(126,111,!2^4^8)   y73.T(  0,111,!2^4^8)   }
#D19;
Sub{ r2^8    y70.T(  0,111,!1^4^8)   y71.T(126, 11,!1^4^8)   }
Sub{ r4      y72.T(126,111,!1^2)     y73.T(  0,111,!1^2)     }
#D20;
Sub{ r1^2^8  y70.T(  0,111,!1^1^2^8) y71.T(126, 11,!1^1^2^8) }
Sub{ r2^4^8  y72.T(126,111,!1^2^4^8) y73.T(  0,111,!1^2^4^8) }
#D20_2;
Sub{ r-1^2^8 y70.T(  0,111,!1^1^4)   y71.T(126, 11,!1^1^2^4) }
Sub{ r-2^4^8 y72.T(126,111,!1^2^4)   y73.T(  0,111,!1^1^2^4) }

 r1  Pi={} //初期化
 };
 
#Melo={ 

 V=0 v66 l16
 Pi={ Piyo=Chdx(LD,LEN); Piyo; }
 t.Random=4 v.Random=16 q.Random=24 //Sin

 IF(extSW==1){
	Port=Nano_port;
	@16,0,0
	y70,21 y71,61 y72,21 y73,101 y74,0	// Pad Control Reset
	o5
	q88
 }
 ELSE{
	Port=Gs_port;
	@81,8 //Sin
	o5
	q91

	CCNoMute(70,on)
	CCNoMute(71,on)
	CCNoMute(72,on)
	CCNoMute(73,on)
	CCNoMute(74,on)
 }

Time=TB-5;

#D1;
#D2;
#D3;
#D4;

#D5;
#D6;
#D7;
#D8;
#D8_2;

r1
Sub{ r-4^8 V.T(0,86,!1) }
Sub{ r-4 y70.T(63,21,!2^4^8) y71.T(31,61,!2^4^8) }
#D9;
#D10;
#D11;
#D12;

Sub{ r-96^2^8^16 y70.Sine(0,21,121,!1^2^4,1) y71.Sine(0,61,0,!1^2^4,1) }
#D13;
#D14;
#D15;
#D16;

r1^1
#D17;
#D18;
#D19;
#D20;
#D20_2;

 r1  Pi={} //初期化
 };


 
#Melo_pad={ 

 V=66 v39 l16
 Pi={ Piyo=Chdx(LD,LEN); Piyo; }
 t.Random=6 v.Random=16 q.Random=16 //Sin

 IF(extSW==1){
	Port=Nano_port;
	@24,0,0
	y70,126 y71,63 y72,63 y73,63 y74,66	// Pad Control Reset
	o5
	q91
 }
 ELSE{
	Port=Gs_port;
	@81,8 //Sin
	o5
	q91
 }

Time=TB+1;

#D1;
#D2;
#D3;
#D4;

#D5;
#D6;
#D7;
#D8;
#D8_2;

r1
#D9;
#D10;
#D11;
#D12;

Sub{ V.T(66,77,!1^1^1 ^1^1^1) } //track Vol
#D13;
#D14;
#D15;
#D16;

r1^1
#D17;
#D18;
#D19;
#D20;
#D20_2;

 r1 Pi={} //初期化
 };


 
#Bass={ 

 l16
 Pi={ Piyo=Chdx(BS,LEN); Piyo; }
 t.Random=4 v.Random=32 q.Random=16 //Saw

 IF(extSW==1){
	Port=Nano_port;
	@6,0,0
	o4
	q91
	v97
	y70,126 y71,1 y72,121 y73,121 y74,43	// Pad Control Reset
	V=0
 }
 ELSE{
	V=0
 	Port=Gs_port;
	@82,1 //Saw
	o3
	q91
	v111

	CCNoMute(70,on)
	CCNoMute(71,on)
	CCNoMute(72,on)
	CCNoMute(73,on)
	CCNoMute(74,on)
 }

Time=TB;

#D1;
#D2;
#D3;
#D4;

#D5;
#D6;
#D7;
#D8;
#D8_2;

r1
Sub{ V.T(0,63,!1^1^1^1  ^1^1 ) }  // vol
#D9;
#D10;
#D11;
Sub{ r2 y70.T(126,63,!1^1^1 ) y71.T(1,11,!1^1^1 ) }  // Pad1
#D12;

#D13;
#D14;
#D15;
//Sub{ r2 y72.T(126,0,!1^1^1 ) }  // Pad2 x
#D16;
Sub{ r-1 V.T(63,33,!1) }  // vol

r1^1
#D17;
#D18;
#D19;
#D20;
#D20_2;

 r1 Pi={} //初期化
 };


 
#Sqr_Ptn={ 

 V=91 l16
 Pi={ Piyo=Chdx(SQ,LEN); Piyo; }
 t.Random=2 v.Random=12 q.Random=24 //Sin

 IF(extSW==1){
	Port=Nano_port;
	@3,0,1
	y70,0 y71,33 y72,33 y73,66 y74,33	// Pad Control Reset
	q88
	o6
	v101
 }
 ELSE{
	Port=Gs_port;
	@81,8 //Sin
	q121
	o7
	v88
 }

Time=TB-3;

#D1;
#D2;
#D3;
#D4;

#D5;
#D6;
#D7;
#D8;
#D8_2;

r1
#D9;
#D10;
#D11;
#D12;

#D13;
#D14;
#D15;
#D16;

r1^1
#D17;
#D18;
#D19;
#D20;
#D20_2;

 r1 Pi={} //初期化
 };

 
#Drum={ 

 P=63 l16 v116
 v.Random=6

 IF(extSW==1){
	Port=Nano_port;
	Piall={ Piyo=Drmx(BD,SN,HH,LENall); Piyo; }

	//Bus1 / BD
	y7,76	// V
	y10,62	// pan
	y70,120	// Snd1
	y71,36	// Snd2
	y72,23	// cut off

	//Bus2 / Sn
	y73,67	// vol
	y74,77	// pan
	y75,120	// Snd1
	y76,36	// Snd2
	y77,27	// cut off

	//Bus3 / HH
	y78,82	// vol
	y79,82	// pan
	y80,96	// Snd1
	y81,48	// Snd2
	y82,23	// cut off

	IF(TR==12){ t.Random=2 }
	ELSE{ t.Random=0 }
	Time=TB-6;
 }
 ELSE{
	REV=66
	V=77
	Port=Gs_port;
	Piall={ Piyo=Drgsx(BD,SN,HH,LENall); Piyo; }
	@26
	IF(TR==12){ t.Random=2 }
	ELSE{ t.Random=0 }
	Time=TB+1;

	CCMute(on)
 }

#D1;
#D2;
#D3;
#D4;

#D5;
#D6;
#D7;
#D8;
//	y7.T(93,90,!2)	// BD
#D8_2;
//	y7.T(90,93,!2)	// BD

r1
#D9;
#D10;
#D11;
Sub{ r1 y78.T(0,40,!4) } // vol
#D12;

Sub{ r-16 y82.T(23,104,!1^1^1^1 ^1 ) } // cut off
#D13;
#D14;
Sub{ r-1^2^8 y82.T(104,23,!1^1^1^1 ^1^1^1 ) } // cut off
#D15;
#D16;
Sub{ r-1 y78.T(40,80,!1) } // vol

r1^1
#D17;
#D18;
#D19;
#D20;
#D20_2;

 r1 Piall={} //初期化
 };
  
// ■変数 

TimeBase=480;Tempo=132;
System.RandomSeed =24351;

 IF(extSW==1){
 }
 ELSE{
	Include(gs.h); ResetGS();r4
	CH=11 GS_RHYTHM(1)r8;
	SysEx$ = F0,7F,7F,04,01,00,7E,F7;r24	//MASTER VOLUME : 127 -> 126[7E]
	y124,0					//OMNI:off
	y120,0 y121,0 y123,0			// all:OFF
	BR=12
	Slur(0,-TimeBase*2)
 }

// gbl変数

Int TB=TimeBase*4 +3;	// <- !1 でも良い? / TrackSync + グループ感のため同期ずらし
Int TT=0;		// TimeTmp
Int Tmpv=0;		// vTmp
Str Piyo={};		//発音Tmp

Str LYR={};	//コード、スケール表記
Str LEN={};	//Pi Length
Str Pi={};	//発音
Str CD={};	//Chord
Str BS={};	//Bass
Str LD={};	//Lead
Str SQ={};	//Sqr

Str LENall={};	//Piall Length
Str Piall={};	//発音
Str BD={};	//Kick
Str SN={};	//Snare
Str HH={};	//Hihat
 
// ■呼出し&PAN 

TR=1  CH=16 IF(Mid_out==1){ CH=TR; } #Mixer;
TR=2  CH=1  IF(Mid_out==1){ CH=TR; } P=54  #Backing;
TR=3  CH=2  IF(Mid_out==1){ CH=TR; } P=16  #Strings;
TR=4  CH=3  IF(Mid_out==1){ CH=TR; } P=44  #Melo;
TR=5  CH=4  IF(Mid_out==1){ CH=TR; } P=8   #Melo_pad;
TR=6  CH=5  IF(Mid_out==1){ CH=TR; } P=70  #Bass;
TR=7  CH=6  IF(Mid_out==1){ CH=TR; } P=54  #Sqr_Ptn;

TR=8  CH=7  IF(Mid_out==1){ CH=TR; } P=54  #Backing;
TR=9  CH=8  IF(Mid_out==1){ CH=TR; } P=111 #Strings;
 UseKeyShift(off)
TR=11 CH=10 IF(Mid_out==1){ CH=TR; } #Drum; // P=BD:64,Sn:73,HH82
TR=12 CH=11 IF(Mid_out==1){ CH=TR; } #Drum; // P=BD:64,Sn:73,HH82
 UseKeyShift(on)
TR=13 CH=12 IF(Mid_out==1){ CH=TR; } P=119 #Melo_pad;
TR=14 CH=13 IF(Mid_out==1){ CH=TR; } P=72  #Sqr_Ptn;



 
// ■コメント 
	
/*	□サクラとNano Studio接続の解説 


	　・テンポ

	　まず、それぞれのテンポ数値を合わせます。
	完全な同期ではないですが、いくらか聞けるようになります。


	　・音色指定

	　Nano Studioは外部コントロールのプログラムチェンジを受け付けるので、最初だけ音色の変更は可能です。
	ただし、音色指定がGSとは違い、[@3,0,1]で、BankB,PRESET B02 と選択されます。[3]は B02、[1]は BankBとなります。

	-- ただしミディファイル読み込みからではプログラムチェンジができないため、ここは困ってます。


	　・トラック指定

	　ミキサートラックが割り振ってあるため特別な指定が必要です。

	TR=1  CH=16 IF(Mid_out==1){ CH=TR; } #Mixer;
	TR=2  CH=1  IF(Mid_out==1){ CH=TR; } P=54  #Backing;
	TR=3  CH=2  IF(Mid_out==1){ CH=TR; } P=16  #Strings;

	　上記を見ていただければ分かると思いますが、いくらか面倒なことになっております。
	外部からのコントロールであれば、TR=1 CH=16 はミキサー専用に使用されます。
	ただし、Nano Studioでミディファイルを読み込む際には、TR=1 CH=1 がミキサーデータとして読み込まれます。

	 -- IF(Mid_out==1){ CH=TR; } はミディファイル出力時に使用するためのもので、
	　実はこのファイルに記載されている出力先を、下記のとおりに変更すれば、
	　nano studioを外部からコントロールできます。

	// ■出力先

	Int Mid_out=0;	// [ミディ書き出し:1 ]
	Int extSW=1;	// [ nano:1 OMNI Mode:off BPM->Sync. ]

	nano studioの、1 - 8, 12 - 13 までをEden syn. 、10 - 11 TRG [BANK-import / DnB.trg] と指定すれば
	一応動くとは思います。、


	　・ミディエクスポート

	　あとサクラを使用してミディエクスポートの際、注意点。
	MMLファイルを再読み込みないし修正後、[最初から再生] を押すなどして、一度コンパイル(演奏データ変換)
	を通過させることが必須です。(ないしは、サクラ自身を落としてもう一度、起動しなおす手もあり。)

	-- コンパイルを忘れると、MMLは修正したのに出力されたミディファイルは変わってない! となるので気を付けましょう、、



*/
 
/*	□サクラの外部音源コントロールについて 


	・マルチポート出力

	　サクラの純正プレイヤーは実はマルチポート出力に対応しています。なので、
	MIDIポートの割り当てのポートアサインにより、いくつもの外部音源を同時にコントロールできます。

	　TR(1)CH(1)Port(1) などと指定すると、ポート1 につながった外部音源をコントロールできます。
	ポートアサインができるのならば、GS音源、XG音源併用可能かというとこれは難しいです。
	両音源はポート0 の出力のみ受け取ります、。これはGS,XG規格の仕様のためです。
	マルチポートがまだ、きちんと規定されていない時代の規格のためではないかと思われます。


	・ミディクロックの送出

	　当純正プレイヤーは意外と優秀でミディクロックの送出もします。
	外部音源の設定を、外部同期を受け付けるように変更することにより、ズレを抑止できます。

	　つまりソフトウェア音源などを仮想ミディなどで接続すれば、シンクがとれた状態でコントロール可となります。
	こちらで確認した限りではありますが、スタンドアロンで稼働でき、外部シンクのとれる音源、
	Proteus VX や Reason1.0、ReBirth などではうまく動きました。
	特に、Proteus VX はプログラムチェンジ(音色チェンジ)を受け付け、フリーウェアでもあるのでかなり実用的でした。
	これとは違い Reason1.0はそもそもプログラムチェンジという概念がないのですが、むしろ背面仮想パッチケーブルによる
	アサインの自由度を生かすためにも単に音色Ch数を増やし、マルチポート出力を使い多ch.接続するのが良いかと思われます。

	　なお、仮想Midi -> VSThostを経由すれば、Synth1などのVST音源を直接サクラからコントロールすることもできるはずです。
	ただし、負荷がたいへん高いようであまり現実的ではないかもしれません。、


	・コントロールチェンジ

	　また話は変わりますが、プログラムチェンジのみならず、コントロールチェンジを駆使すれば、
	各ソフトウェア音源のつまみもサクラから自由に変更可能です。
	音源に必ず付いてくるMidiインプリメンテーション・チャートに、コントロールチェンジ対応表が載っているので
	それを参考に、y70.T(21,33,!8^16 ) y71.T(33,36,!8^16 ) 左記のような記述で、外部音源のレゾナンスなどを
	サクラ側からリモートコントロールできます。
	人間業ではないコントロールや、わずかづつずれるシビアな変化を加えたい場合は効果的だと思います。


	　実は、TWでもこのようにコントロールしようと確認したのですが、何故かマルチポートがあまりうまく機能しません。
	何かを見落しがあるかもしれません、、



*/
 
/*	□ミキシング関連について 

	　ここからは主にnano studioでの工程説明です、自分メモも兼ねています。、


	・パラメトリックEQ

	　苦戦したのですが、要は聞きたくない成分を無くせば良いということに気付きました。
	まず、Gainを全部絞ってしまいます。
	低域のGainをフルアップし、周波数の数値を上下に変化させます。
	この時に気に食わない周波数成分を探ります、この周波数でつまみを止めます、。
	そしてこの低域ゲインを全部絞ります。
	今の手順で、中域、高域と周波数を調べます。
	それぞれの周波数が確定したら、低域から順に必要なだけGainを足します。


	・エコーについて

	　このへん好みにもよると思いますが、
	リバーブは定位の奥行き(HighDump)と定位の広がり(Dry/Wet)だけに使用したいので、
	各トラックの残響調節は後述するSend1:ディレイへのフィードバック量で決めてしまいます。


	　・Srnd1,Send2の使用法

	　通常リバーブ等をセッティングしますが、Send1はディレイをあえて選択しました。
	リバーブを使用すると低域が増えるためか、全体のマスター音量が上がるためです。
	Send1へエコーをアサインするのはフェーダーひとつで、全トラックのディレイ量をコントロールする
	目的もあります。
	Send2はクロスディレイの後段にローファイ(ビットクラッシャー)を入れてます。
	シュワーという感じの音になるので、パート切り替えの際にフェーダーを上げて差し込みました。


	　・コンプレッサー

	　音量を上げず、音圧をあげる役割ですが、実はあまりコンプの音が好きではありません。なので
	コンプはドラムとバッキングのみに最小限かけ、それ以外はMMLで.randomを書き込み、
	ダブルトラックで音圧を上げるという、昔ながらの手法を選択しました。
	また、きちんとしたミキシングをすれば、別にマスタリング段階での帯域分割コンプのような
	高級技法をとらなくても良いのではと思い、、今回いろいろ試行錯誤してみました。
	参考にならないかもしれませんが、一応ミキシング履歴は残してます、。


	　・簡易マスタリング

	　DAWは、Mixdown出力機能で直接waveデータへレンダリングします。、なので劣化がないのは
	良いのですがこれが何となく違和感を感じるので、出力されたwaveファイルを一度、
	アナログ回路を通しました。
	今回はアナログミキサーを経由しましたが、これはオーディオアンプでもかまいません。
	..むしろこっちのほうが場合よってはよいかも、
	バスドラで低域、ハイハット、スネアを聞きながら高域、EQ補正をアナログミキサーで加えます。
	数曲の自分の気に入っている市販品と比べながら補正すると良いです、。


	　・コンバート

	　最後に再録したwaveをogg変換[48.0k]して、アップまでの前期段階完了です。
	Nano studio の直接ogg出力よりも、高音質に変換するAIMP を使用しました。
	変換後、再生時のみ市販の曲と同じくらいの音量にするため、ヘッダのリプレイゲインを2dB追加しています。
	ただし、アップロード後のSoundCloudはリプレイゲインの参照はされないため、音量感は小さくなってしまいます、。



*/
 
/*	□ - ミキシング履歴 - 

'13 3 4		All		　ダブルトラック化のため、t v q.randomの再調整する
				ドラムは元の値のまま、必要なだけBacking,Stringsのフェーダーを上げる
				各パートのバランスをミキシング
				最終的にBacking,Stringsの音量を若干絞り、ドラムを際立たせる

'13 3 6		Dr.		コンブで圧縮し、マスターレベルを上げる
		All		パライコを再修正

'13 3 9		Sn,Bass		トラックのステップタイミング調整

'13 3 13	All		リバーブ量を減らし、音を明確にする
		Backing		リバーブに差をつけ、定位を前後へ伸ばす
		SqrPtn		パンに差をつけ定位を横に広げる

'13 3 14	Backing,Strings	v.randomの幅を狭くしレベルを一定にすることで、若干音圧アップ


'13 3 15	Dr.		Send1FeedbackLevを増やす
		Send1		　音量を変更、前半は絞ってダイレクト感を出す
				DelayをDry側へ絞る
		Send2		NoiseDelayのフィードバック量を絞る
		Bass		RevをRoom2でハイダンプする

'13 3 16	All		　レンダリングして仮アップwaveファイルを生成
				音楽プレイヤーのリプレイをアナログミキサー経由で、再録音
				ファイルをAIMPでogg化し、プライベートで仮アップロード

'13 3 20	BD		コンプのリリースタイムを限界まで伸ばす、PEQ MidWidthを広げ無駄をカット
		Sn		音量は絞る、Compのリリースタイムを若干増やす
		HH		パライコMidWidthの帯域幅を狭くして、アタック感を残す
				PEQのGainComp,CompのRMSをそれそれON、REVをHiDumpして低域を増やし、フェーダーは上げる

		Backing		　Send1のDelay出力を増やし煌びやかにする
				REV量を増やし低域の音量感を上げる
				PEQ再調整、Padコントロールと連動した音量調整を追加

		All		マスターフェーダーを上げて全体の音量を上げる
		Strings		温かみのため、PEQで中域のみアップ
		MeroPad		思いきって中域をカット、中抜け感を出す

		All		レベルオーバー対策でPANの再調整
		Dr.		　Send1Feedback出力変更、主にHHを絞る
				Send2Feedback出力をそれぞれ増やす

		Backing		　ベロシティを増やしたため、トラックVOLは下げる
				REVに差をつけて奥行きを出す
		SqrPtn		Pan,REV幅に差をつけて定位を広げる

'13 3 22	Strings		エレクトリックらしいフィルターPadを追加
		Backing		フィルターPadを12小節かけたロングフィルターへ変更


'13 3 30	All		グルーブが出ないので全体のテンポ同期をわざと外し、3ステップずらす
		MeroPad		広がりを出すためコーラスを追加

'13 3 31	All		ミキシング再調整
		Backing		　最初のクリックノイズを減らす
				後半入りのレベル低下、及びレゾナンス修正
		HH		裏打ちHHタイミングを、1ステップ遅らせる

'13 4 5		Bass		PAN,REVを修正
'13 4 6		Sqr_ptn		メロの上がり下がりを修正
		Backing		出だしのフィルターPadを修正

'13 4 7		Sqr_ptn		　休符や六連を使い、メロを手引きらしくする
				スケールを主張するため、休符r96を差し込みアボイド音へのアクセントをつける
				[アボイド音、HmP5B -> M3, Mixolydian -> b7 ]

'13 4 13	SqrPtn		出だしのタイミング、メロ微修正、PAN修正
'13 4 25	MeroPad		ベロシティ値を下げる
		Melo		レゾナンスフィルター追加
		Send1,2 	　Fadeinタイミングのずれを修正
				ミキシングレベル再調整
		Sqr_ptn		出だしをアウフタクトへ変更

'13 5 4		Send1		ディレイフィードバック量減らす、音の粒立ちをくっきりする
'13 5 5		SqrPtn		PAN修正のため、音量下げ
		Bass		REV再調整

'13 5 18	All		ライブ感が薄くなっているため、全体的にワイドレンジ化
		Dr.		ドラムのコンプを全て見直し
		HH		Attack遅らせRelease長めへ
		BD		Attackのみ少し遅らせる、SnはRelease長めへ変更

		BD		パライコ中域Widthを広げ、Gain若干抑え目へ
		Sn		パライコ中域Widthを狭くして抜けを良くして、高域の減衰ゲインをもどし
		HH		高域減衰ゲインをもどし低域Gainは減衰気味
		Backing		低域を薄く追加

'13 5 19	Mero		パライコ中域のGain減らし、帯域は細めへ
		All		Reverbの広がりを全トラック修正

'13 5 22	Mero		響き過ぎのため、Send1エコーアウトを減らす

'13 5 27	Send1		響き過ぎのため、Delay Feedbackを絞り、フェーダーも下げる

'13 6 5		All		アナログミキサーで簡易マスタリング



*/
  
