MetaText  ={"                                                  '1分18秒'"} 
TrackName ={" 郷愁 'MSGSリアレンジ版'"}
Copyright ={"庚申works"}

/* 概要

もともと、VST音源で組んだ曲を、サクラのためにリアレンジを施しました。
ペダルを初めて使った曲になっています。

確認はXP+MSGS、TW+MSsyn.でのみです、聞いた感じではXP+MSGSがベスト

構造化エディタ対応です。

*/




 
/*	VST音源の元曲について 

https://soundcloud.com/kohshin/kyohshu

Pedalboard2というフリーソフトを使いました。
サクラ -> 仮想Midi -> Pedalboard2 & VST音源と接続しています。


使用しているVST Pluginリストです。
Kirnu			// VSTi
Synth1
Farbrausch V2
MrTramp2

PCM音源よりもFM音源ベースのVSTiが好みです。
V2は特にいい音がします。3オペとは思えないような音がします。

Slicer Box		// VSTe
ndcTrem_plus
Maxim16-2EQ / Minim4-2
GranComp3

いずれもフリーです。

*/



 
/*	コード展開 

 | Csus4  | CMaj     | Csus2   | Am7      |
 | Csus4  | CMaj     | Cm      | Csus2    |
 | Csus4  | CMaj     | Csus2   | E(7) Am7 |

 | Fm     | Fm   Fm7 | Bbm(7)  | Bbdim    |
 | Am7    | Csus2    | D7      | E(7)     |
 | Am7    |

以降に、コード展開の説明を付けました。

*/


 
/*	基本形 

['cfg']		// Csus4
['ceg']		// CM
['cd#g']	// Cm
['cdg']		// Csus2

今回は、基本的に内声クリシェで曲をつくってます。
cgは共通で、まん中の音のみ半音下降で、コードチェンジをしています。
以下にこのコードの説明です。

*/

 
/*	クリシェモーション Gt. 

	5F	- + - - - +	Dsus4
		    - - -
		    + + -
		        +


	5F	- + - - - +	DM
		    - - -
		    + + +


	5F	- + - - - +	Dm
		    - - +
		    + +


	5F	- + - - + +	Dsus2
		    - -
		    + +

何の曲か忘れてしまいましたが、パットメセニーの曲でつかわれていたもので、
いつも弾いていたのでポジションだけはよく覚えていました。
2弦の半音移動のみで、コードチェンジします。
当時はこの4コードの繰り返しから展開を広げることができませんでした、。

*/
 
/*	コード展開を広げる 

['cfg']	// 4小節基本形
['ceg']
['cd#g'] //-> 間引いて応用型へ
['cdg']

['cfg'] // 応用型
['ceg']
['cdg']
['"ace'] //<- 追加 / 変更 ['"ace'] Am -> ['"acg'] Am7omit5

コード展開を広げるときは基本形から追加するか、間引くかです。<- 自分の場合
Amならとおりそうだ、は学んできた経験とカンからです。

これでうまくいかなければダイアトニック方面から拾ってトライ&エラーです、つまり試行錯誤ですね、
最終的にはAm7omit5に着地しています。
'"ace'だと共通音が少ないので、'"acg'であれば展開がcg共通で、内声がfed"aとなり、流れは綺麗です。

*/


 
/*	当初の形 

TR=1
l2^4
[
['cfg']  // Csus4
['ceg']  // CM
['cdg']  // Csus2
['ace']  // Am -> ['"acg'] Am7omit5

['cfg']  // Csus4
['ceg']  // CM
['cd#g'] // Cm
['cdg']  // Csus2
]

この段階で伴奏は、3和音のみという制限を決めました。

*/




 
/*	応用型へ拡張 

['cfg'] // 応用型
['ceg']
['cdg']
['"acg'] // Am7omit5


['cfg'] 	//Csus4
['ceg'] 	//CM
'cdg' 		//Csus2
'eg#"b' //変形	//E(7) 2D:セカンダリードミナント
'cg"a' 		//Am7omit5
'cga' 		//


再度、繰り返す際は、若干のフェイクを入れます。
セカンダリードミナントが使いやすいです。

セカンダリードミナントは、Am7omit5から見て、5度下の7thコードです。
違うパートへ飛ぶ前に2Dを使用するのが、基本的なスタイルです。

*/


 
/*	以後のコード展開 

五度圏表を見ながら、選択できる組合せを考えました。
ただ一定の決まり事として同じコード機能を避けるようにしています。

*/


 
/*	履歴 

'13 6 11	スケルトンコード仮完成
		Cpart セカンダリードミナント追加
		コードアルペジオ付与
		オートパンエフェクト付加

'13 6 12	スケールのアルペジオへ修正
'13 6 13	Dpart 5度圏表を使いコードを修正
'13 6 14	適用スケールを修正
'14 6 31	VST版SoundCloudアップ

------------------------------------------------

'14 1 17	TW,MSGS向けアレンジ修正
'14 2 12	コメント書き込み
		初版アップロード

*/


 
Include(gs.h) 
	ResetGS()r4
	CH=10  GS_RHYTHM(1)r8

	SysEx$ = F0,41,10,42,12,{40,00,00,00,04,00,00},F7;r48	//MASTER TUNE 440Hz auto chksum


 
TimeBase=240 
Tempo=115


 
 Function OpenHHRool(){ 
  Int Tk=Time
  v77
  y64,127 l48 [8 n46 v+3 ] y64,0
  Time=Tk
 } //func


 
Function Slow(Str St, Int II){ 
 Int Tk=Time
 Int Vk=MML(v)
 Int i;
 Int Vel=88
 Int Ti=(!24)
 y64,127
 While(1){ i++
  Switch(i%4){
   Case(0){  }
   Case(1){ Vel=Vel-6 }
   Case(2){ Vel=Vel+6*2 }
   Case(3){ Vel=Vel-6 }
  } //sw

  v(Vel-i*4+i) l%(Ti+i*4-i) St; If(i==16){ Exit } // TimeBase=240
 }
 y64,0
 Time=Tk v(Vk) l1 // bug l% -> l
} //func


 
Function Fast(Str St, Int II){ 
 Int Tk=Time
 Int Vk=MML(v)
 Int i;
 Int Vel=66
 Int Ti=(!16)
 y64,127
 While(1){ i++
  Switch(i%4){
   Case(0){  }
   Case(1){ Vel=Vel-6 }
   Case(2){ Vel=Vel+6*2 }
   Case(3){ Vel=Vel-6 }
  } //sw

  v(Vel+i*3-i) l%(Ti-i*3-i) St; If(i==12){ Exit } // TimeBase=240
 }
 y64,0
 Time=Tk v(Vk) l1 // bug l% -> l
} //func


 
Time=(!2)TrackSync 
Int Tk;
#TR_D={ TR=10 Key=0 }	//HiHat
#TR_C={ TR=3 Key=0 }	//Clav
#TR_B={ TR=1 Key=0 }	//Harp
#TR_A={ TR=2 Key=0 }	//木琴


 
// 開始位置調整 
#TR_C r16
#TR_B r6
#TR_A r12 r96


 
//音色指定 
#TR_C @8  P=64 o5 l2  q91  v116 v.C(!1^1,116,106,1121,111) v.Random(12) t.Random(8) q.Random(8) REV=0
#TR_B @47 P=112 o8     q177 v121 REV=0
#TR_A @13 P=32 o6 l12 q63  v88  v.C(!12,77,55,88,66) v.Random(6) REV=0


 
//楽音出力 

#TR_C  y64,127['c"fg':rr]y64,0			//Csus4
#TR_B [r1]
#TR_A [y64,127 [gfc:<]>[fc"g:<]> y64,0]

#TR_C y64,127['c"eg':rr]y64,0			//CMaj
#TR_B Slow({cd`g}) [r1]
#TR_A [y64,127 [gec:<]>[ec"g:<]> y64,0]

#TR_C y64,127['c"dg':rr]y64,0			//Csus2 = D7sus4
#TR_B [r1]
#TR_A [y64,127 [cdg:<]>[dc"g:<]> y64,0]

#TR_C y64,127 'cg"a'^ y64,0			//Am7
#TR_B Fast({"cga}) r1
#TR_A y64,127 [gac:<]>[ca"g:<]> y64,0

#TR_C y64,127 r'c"ga' y64,0			//Am7
#TR_B r1
#TR_A y64,127 [bgc:<]>[bc"g:<]> y64,0



#TR_C y64,127['c"fg':rr]y64,0			//Csus4
#TR_B r1c1
#TR_A [y64,127 [cfg:<]>["gfc:<]> y64,0]

#TR_C y64,127['c"eg':rr]y64,0			//CMaj
#TR_B r24 r1c1 r-24
#TR_A [y64,127 [ceg:<]>[c"ge:<]> y64,0]

#TR_C y64,127['c"e-g':rr]y64,0			//Cm
#TR_B g1 r24 c1 r-24
#TR_A [y64,127 [c"e-g:<]>[ce-"g:<]> y64,0]

#TR_C y64,127['c"dg':rr]y64,0			//Csus2 = D7sus4
#TR_B r1c1
#TR_A [y64,127 [gcd:<]>["gcd:<]> y64,0]



#TR_C y64,127['cfg':rr]y64,0			//Csus4
#TR_B Slow({>"ceg<}) g1 r24 c1 r-24
#TR_A [y64,127 [cgf:<]> [fc"g:<]> y64,0]

#TR_C y64,127['c"eg':rr]y64,0			//CMaj
#TR_B r1e1
#TR_A [y64,127 [cge:<]> [e"gc:<]> y64,0]

#TR_C y64,127 'c"dg'^ y64,0			//Csus2 = D7sus4
#TR_B r24 g1 r-24
#TR_A y64,127 [cgd:<]> [dc"g:<]> y64,0

#TR_C y64,127 '"eg#"b'^ y64,0			//E(7)
#TR_B r-24 g#1 r24
#TR_A y64,127 [g#e"b:<]> [g#"eb:<]> y64,0

#TR_C y64,127['c"ga':rr]y64,0			//Am7
#TR_B a1
      r24 b1  r-24
#TR_A y64,127 ["agc:<]> ["agc:<]> y64,0
      Tk=Time y64,127 ["bcg:<]> ["bcg:<]> y64,0
#TR_D Time=Tk OpenHHRool()



#TR_C y64,127 'c"fa-'^ y64,0			//Fm
#TR_B r-24 f1 r24 // cd-e fga-b
#TR_A y64,127 [cfa-:<]> [cfa-:<]> y64,0

#TR_C y64,127 'c"fa-' y64,0			//Fm
#TR_B e-2 // cd-e- ga-
#TR_A y64,127 [a-cg:<]> y64,0

#TR_C y64,127 'e-"fa-' y64,0			//Fm7
#TR_B d-2 // cd-e- ga-
#TR_A y64,127 [ga-e-:<]> y64,0

#TR_C y64,127 'b-d-"f'^ y64,0			//Bbm(7)
#TR_B r-24 c1 r24 // cd-e fga-b
#TR_A Tk=Time y64,127 [cd-f:<]> [cfd-:<]> y64,0
#TR_D Time=Tk r32 n46,4^12 n42

#TR_C y64,127 'b-d-"e'^ y64,0			//Bbdim
#TR_B r24 Fast({>'"cga'<}) r-24 "b-1
#TR_A y64,127 [ecd-:<]> [cd-e:<]> y64,0



#TR_C y64,127 '"cga'^ y64,0			//Am7
#TR_B c1
#TR_A Tk=Time y64,127 [cg"b:<]> [c"bg:<]> y64,0
#TR_D Time=Tk r-16 n42,12 n44,16 v-20 n42

#TR_C y64,127 'dg"c'^ y64,0			//Csus2 = D7sus4
#TR_B r-24 d1 r24
#TR_A y64,127 [cdg:<]> [cdg:<]> y64,0

#TR_C y64,127 'df#"c'^ y64,0			//D7
#TR_B r24 f#1 r-24
#TR_A Tk=Time y64,127 [f#dc:<]> [f#dc:<]> y64,0
#TR_D Time=Tk r-16 v-40 [n46,16 v+20] n44 n42

#TR_C r24 y64,127 'e"g#b'^ y64,0 r-24		//E(7)
#TR_B g#1
#TR_A y64,127 [g#be:<]> [g#b`e:<]> y64,0



#TR_C y64,127'a"gc'^ 'a"g"c'^1 y64,0 [4 r]	//Am7
#TR_B [a1r2 : r-24 g2 r24 ] r12 e2 r-12
#TR_A Tk=Time [y64,127 [ <[3 cg"b:>]:c"b"g< ]:>"bc"g<< y64,0 ] `bg`c1< y64,0
#TR_D Time=Tk r-8 v-60 [3 n42,24 v+20 ] n46,1 r1^1 r16 v-40 n44 v+20 n42,16 v+20 n42


 	
