TrackName ={"カノンアレンジ ver.1.891"} Copyright ={"庚申works"} /* 4分29秒の曲です。 ダウンロード有難うございます。 TW-music2で、バランスを整えてます、サクラ純正でも問題はないです。 参考程度ですがリリックにコードの流れは出力してます、。 各セクションにおいてのコード表記(カノンなどの名前)は便宜上のものです、。 最近、聞く曲がロックに回帰しているので、 それらしい曲を目指しました、カノンのロックアレンジです。 ロックの基本は 3和音で 3度抜きもありです、らしくなります。 3度抜きをパワーコードとか空虚五度などとも言います。、 まず、 ギターソロをシュミレーションしてみました、。 q127を設定、ゲートを長めにします。 -- ただし、q101以上とスラー[^]は相性が良くないようです... ギターのコード構成はユニゾンで鳴るケースが多いのでそれらしくしてみました。 コード構成音の、下から1,3,5番目の音を1oct.下へ移動し、 そしてユニゾンの音を下から1,3のみ1oct.上に加えています。、 弦は減衰特性があるので、EP.Wでコントロール。 EP.W(120,120,!8, 120,75+Random(10),!1+1) 以下で弦のピッチずれを再現してます。 BR(12) PitchBend.WR(60,-30,!4, 40,-50,!2, 20,-70,!1+1+1) PitchBend.Random=44 2小節単位でランダムにソロフレーズを生成し、繰り返します。 小節終わりの帳尻は、1oct.上の構成に変更して下から順に弾き、 つなぎを明確にしました。 ドラムです。ビートはシャッフル(ただし、3連)に頼ってます。、 リバーブは深めです。ゲートリバーブの代りです。 2小節ごとに固定ピッチを変更して、グループ感を足しています。 スネアは、リムとスネアの同時打ちで迫力を出しています。 ベースはドラムのスネアに被らないように弾いています。 1oct.上とユニゾン配置にしました。 ロックオルガンにモジュレーションを深めに入れています。 FX、効果音です、。sus4 add2のコードを徐々にピッチを上げています。、 全体のグループ感は、ベロシティであればこんな感じに読み出し、 各音ごとに、加算することでヒューマングループを出しています。 Function Velwte(){ RESULT=MML(v)+Random(2)-(Random(3)-2)*4; } //Function Str Beat= {}; v100 Beat= {v(}+Velwte()+{)n(}+60+{)}; Beat; // -> v(100+1+(1*4))n(60) -> v(105)n(60) Print(Beat); Beat= {v(}+Velwte()+{)n(}+60+{)}; Beat; // -> v(100+0+(2*4))n(60) -> v(108)n(60) Print(Beat); 基本的なコードの流れは、 クリシェパターンからつなぎコードを挟み、カノンへとたどり着きます。 最後に、フェードアウトします。 EP.T(120,0,!1+1+1+1+1+1+1+1+1+1) //全音符 10個でEP(120)からEP(0) ※構造化エディタ対応です。 与太話です。、 当初はリズムギターをシュミレートしていたのです。、挫折しました。 弦ごとにトラック分けし、ピッチずれを加えればうまくいくかもしれません。 ソロGt.であってもチョーキング(ベンディング)やフィードバック奏法、 ピッキングハーモニクスなど、音のバリエーションだけでもソロの再現は難しいです。、 さらに、音色の高音域に難がありまして、、サスティン不足でうまく再現出来ません、。 色々なテンションを試したかったので、3和音のくくりを超えてしまいました。 aug,dim,halfdimテンション以外は、すべて使っています。、 TimeBase=480 のままでした、後で気がついた... 以下は、読みたい方だけでいいです。... == コード展開-- こんな展開をしましたという事例です、、難しめです。、 == クリシェは、半音づつ下がるパターン、独自変数 Elm_chdを見れば一目瞭然なので、。 // Elm_chd =(0, 5, 7); ド ファソ Csus4 // Elm_chd =(0, 4, 7); ド ミ ソ CM7 // Elm_chd =(0, 3, 7); ド ミ♭ソ Cm7 // Elm_chd =(0, 2, 7); ド レ ソ Csus2 -- このコードが基本です、、カノンの基本コードを四和音へ転回 -- -------------------------------------------------------------------------------------- CM {CM7 [T]} GM {G7 [D]} Am {Am7 [T]} Em {Em7 [T,D]} FM {FM7 [SD]} CM-12 {CM7 [T]} Dm/F {Dm7/F [SD]} GM {G7 [D]} -------------------------------------------------------------------------------------- ダイアトニックコードの差替え // CM GM Em {Am7->Em7[T]} Am {Em7->Am7[T]} // Dm {FM7->Dm7[SD]} CM FM {Dm7/F->FM7[SD]} GM 9th転回 // CM9{M7->M9} G7#9 {7->7#9} Am9 {m7->m9} Em69 {m7->m6->m69} // ・F9th{M7..7->9} ・C69th{M7..6->69} Dm9/F{m7/F->m9/F} G7b9 {7->7b9} ・F9th,C69thのケースでは、9thであれば、M7の代理も可みたいです。、 11-13th転回 // CM11 {M7->M11} G7(11) {7->7(11)} Am11 {m7->m11} ・E7#11 {m7..7#11} // F9b5 {M7..6->9b5} ・Cm13 {M7..m7->m13} ・D9th omit3/F {m7..9} G13th {7->13} ・E7#11のケースは、Em7はドミナント[D]機能があるので7thに近いコードをあてはめても良い。、 ・Cm13 CM7[T]を、Cm7[TM]へ変更 ・D9th omit3/Fは、3度音がないので、M,mどちらでも可 */ Function Elm_bas(Int Ptn){ IF(Ptn==3){ //外部テータ参照 } FOR(Int Ei=0; Ei< SizeOf(Elm_copy); Ei++){ Elm_copy(Ei)=Elm_copy(Ei)+Shift_key+Master_key+Part_key; } } //Function Function Elm_wte(Array Ptn){ Elm_copy=(Elm_copy, Elm_copy(0)+12); //ボイシング拡張 Elm_copy(0)=Elm_copy(0)-12; // drop1&3&5 IF(3<= SizeOf(Elm_copy) ){ Elm_copy=(Elm_copy, Elm_copy(2)+12); Elm_copy(2)=Elm_copy(2)-12; } IF(5<= SizeOf(Elm_copy) ){ Elm_copy(4)=Elm_copy(4)-12; } IF(Ptn(0)==1){ //外部テータ参照 Elm_copy= ArraySortNum(Elm_copy); // 再ソート FOR(Int ELi=0; ELi< SizeOf(Elm_copy); ELi++){ //ヲクターブチェンジ Elm_copy(ELi)=Elm_copy(ELi)+12; } } ELSE{ Int Rev_tmp = Elm_copy(SizeOf(Elm_copy)-1); //トップフレーズ入替え Int Rdm_select = Random(SizeOf(Elm_copy)-1 ); Elm_copy(SizeOf(Elm_copy)-1)= Elm_copy(Rdm_select); Elm_copy(Rdm_select) =Rev_tmp; IF(Random(2)==0){ //リバースフレーズ FOR(Int Rev_i=0; Rev_i< SizeOf(Elm_copy)/2; Rev_i++){ Rev_tmp= Elm_copy(0+ Rev_i); Elm_copy(0+ Rev_i) = Elm_copy( SizeOf(Elm_copy)-1 -Rev_i); //最後を最初へ代入 Elm_copy( SizeOf(Elm_copy)-1 -Rev_i) =Rev_tmp; } } } FOR(Int Ei=0; Ei< SizeOf(Elm_copy); Ei++){ Elm_copy(Ei)=Elm_copy(Ei)+Shift_key+Master_key+Part_key; // +RandomSelect(0,12) } } //Function Function Velwte(){ RESULT=MML(v)+Random(2)-(Random(3)-2)*4; } //Function //v( Velwte() )と呼び出す、この以下3つでグルーブを生成 Function Gatwte(){ RESULT=MML(q)+Random(2)-(Random(3))*3-2; } //Function Function Timwte(){ RESULT=MML(t)+Random(5)+Mi*Random(4)-4; } //Function Function Tim_Dwte(){ RESULT=Random(2)-1; } //Function Function R_Gtptn(){ // Rhythmマクロ,q,v 外部指定  Array Elm_copy=Elm_chd; Elm_wte(); Chd={'}; FOR(Int Mi=0; Mi< SizeOf(Elm_copy); Mi++){ Chd= Chd+{ v(}+Velwte()+{) //q(}+Gatwte()+{) t(}+Timwte()+{) n(}+Elm_copy(Mi)+{) }; } Chd= Chd+{'}; } //Function Function S_Gtptn(Array Ptn){ //l,v 外部指定 //Elm_last Array Elm_copy=Elm_chd; Elm_wte(1); Array Elm_last=Elm_copy; //Elm_copy Elm_copy=Elm_chd; Elm_wte(0); Beat={}; Array Elm_tmp=Elm_copy; Array RS_ary=(); FOR(Int Li=0; Li< TimeBase*4*Ptn(1)/MML(l); Li++){ //外部テータ参照 IF(Ptn(0)!=3){ RS_ary=(6,4);} //外部テータ参照 ELSE{ RS_ary=(7);} IF(TimeBase*8/MML(l)-RandomSelect(RS_ary)<= Li){ Elm_copy=Elm_last;} Beat= Beat+{ v(}+Velwte()+{) q(}+Gatwte()+{) t(}+Timwte()+{) //n(}+Elm_copy((SizeOf(Elm_copy)-1)-(Li %SizeOf(Elm_copy)))+{)}; //逆さ読み n(}+Elm_copy(Li %SizeOf(Elm_copy))+{)}; } } //Function Function Basptn(Int Ptn){ //l,v 外部指定 Array Elm_copy=Elm_chd; Elm_bas(Ptn); //外部テータ参照 Elm_copy=(Elm_copy(0), Elm_copy(0)+12); Chd={'}; FOR(Int Mi=0; Mi< SizeOf(Elm_copy); Mi++){ Chd= Chd+{ v(}+(Velwte()-(Mi*6))+{) //q(}+Gatwte()+{) //t(}+Timwte()+{) n(}+Elm_copy(Mi)+{) }; } Chd= Chd+{'}; } //Function //初期化---------// Include(stdmsg.h); //ミディ音源リセットのおまじない System.MeasureShift(1); Time( 0: 1: 0); ResetXG();ResetGS();ResetGM(); //音源リセット命令 //変数初期化 ------ TimeBase=480; Tempo=126; Int AllMkey=1; //マスターキー Int KeyCs=-11+AllMkey; Int KeyDf= KeyCs+AllMkey; Int KeyD =-10+AllMkey; Int KeyDs= -9+AllMkey; Int KeyEf= KeyDs+AllMkey; Int KeyE = -8+AllMkey; Int KeyF = -7+AllMkey; Int KeyFs= -6+AllMkey; Int KeyGf= KeyFs+AllMkey; Int KeyG = -5+AllMkey; Int KeyGs= -4+AllMkey; Int KeyAf= KeyGs+AllMkey; Int KeyA = -3+AllMkey; Int KeyAs= -2+AllMkey; Int KeyBf= KeyAs+AllMkey; Int KeyB = -1+AllMkey; Int KeyC = 0+AllMkey; Str Part_str={}; Str Chd_str={}; Int Part_num=0; Array DrmPitch=(0,-6, 12, 6); Int SectorNum=0; Int Part_key =0; Array Elm_set=(); Array Mod_set=(); Int Master_key=48; Int Shift_key =KeyC; Array Elm_chd =(); Str Chd ={}; Str Keb ={}; Str Bas ={}; Str Beat={}; Str LH ={}; Str LF ={}; Str RH ={}; Str RF ={}; FOR(Int Trk=1; Trk<= 5; Trk++){ SWITCH(Trk){ CASE(1){ TR=Trk @19 Time(1:1:0) Panpot(36) V(63) EP(120) M(32) REV(36) CHO(6) Master_key=60; } CASE(2){ TR=Trk @30 Time(1:1:0) Panpot(115) V(90) EP(120) M(0) REV(30) CHO(0) BR(12) PitchBend.WR(60,-30,!4, 40,-50,!2, 20,-70,!1+1+1) //弦のピッチずれ PitchBend.Random=44 Master_key=48; EP.W(120,120,!8, 120,75+Random(10),!1+1); //減衰特性 } CASE(3){ TR=Trk @40 Time(1:1:0) Panpot(15) V(96) EP(120) M(1) REV(15) CHO(1) BR(18) PitchBend.WR(60,-30,!4, 40,-50,!2, 20,-70,!1+1+1) PitchBend.Random=11 Master_key=24; EP.W(120,120,!8, 120,75+Random(10),!1+1); } CASE(4){ TR=10 Time(1:1:0) Panpot(63) V(126) EP(120) M(0) REV(60) //音源部 $X{v(120)t(3+Tim_Dwte())n(35)0n(36),} $x{v( 85)t(3+Tim_Dwte())n(35)0n(36),} //BD $J{v(108)t(Tim_Dwte())n(42),} $j{v(80)t(Tim_Dwte())n(42),} //HH close $P{v( 60)t(Tim_Dwte())n(44),} $p{v(30)t(Tim_Dwte())n(44),} //HH pedal $H{v( 70)t(Tim_Dwte())n(46),} $h{v(40)t(Tim_Dwte())n(46),} //HH open //$G{v(108)t(Tim_Dwte())n(40),} $g{v(48)t(Tim_Dwte())n(40),} //Sn $K{'n40,,,106,(1+Tim_Dwte())n37,,,110,'}$k{'n40,,, 30,(1+Tim_Dwte())n37,,, 20,'} //Sn&Rim $L{'n40,,,110,( 1+Tim_Dwte())n37,,,115, Tim_Dwte() '} $l{'n40,,,110,(13+Tim_Dwte())n37,,,115,(12+Tim_Dwte())'} //Sn&Dub LH,RH同時使用でのみ $C{v(120)t(1)n(57),Tim_Dwte()} $c{v(60)t(1)n(57),Tim_Dwte()} //Cym,Tom $D{v(120)t(1)n(51),Tim_Dwte()} $d{v(60)t(1)n(51),Tim_Dwte()} //RideCym } CASE(5){ TR=Trk Time(1:1:0) @112 Panpot(96) V(48) EP(120) REV(84) CHO(32) Master_key=36; BR(2) } } //SW FOR(Int Part=1; Part<=13; Part++){ IF(Part==12){EP.T(120,120,!1+1+1+1+1+1+1+1+1+1+1+1+1+1,120,96,!1+1)} IF(Part==13){EP.T(96,0,!1+1+1+1+1+1+1+1)} IF(Trk==2){ IF(3<=Part & Part<=4){ Master_key=60;} IF(5<=Part & Part<=7){ Master_key=48;} IF(8<=Part){ Master_key=60;} } //IF(Trk==5 & 8<= Part){ Master_key=50;} IF(Part<= 6){ Part_key =0; SectorNum=4;} IF(7== Part){ Part_key =1; SectorNum=4;} IF(8== Part){ Part_key =4; SectorNum=8;} IF(Part==9 | Part==10){ Part_key =5; SectorNum=8;} IF(Part==11| Part==12){ Part_key =5; SectorNum=8;} IF(Part==13){ Part_key =5; SectorNum=4;} SWITCH(Trk){ CASE(5){ IF(Part<= 11){ IF(Part<= 6 | 8<= Part){ q100 v100 l1+1+1+1 r l1+1+1+1 BR(12) PitchBend.W(0,1,!2, 1,7860,!2+1+1, 7860,8075,!1); EP.W(0,120,!1+1+4, 120,127,!2+1, 127,0,!4) 'n(0+Master_key)n(2+Master_key)n(5+Master_key)n(7+Master_key)' PitchBend=0; EP=0; } ELSE{ l1+1+1+1 r } } } } //SW FOR(Int Sector=0; Sector< SectorNum; Sector++){ IF(Part<= 6){ Part_str={"クリシェ"}; Part_num=2; Shift_key =KeyC; SWITCH(Sector%4){ CASE(0){ v100 q99 t0 Elm_chd =(0, 5, 7); Chd_str={Csus4}; Keb={l12 ZZ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^}; Bas={l12 A^^ ^^^ ^^^ A^A A^^ ^^^ ^^^ A^^}; LH ={l12 Rhythm{Jrr jrr Jrr jrr jrr jrr Jrr jrr}}; LF ={l12 Rhythm{rhr rrr rrr rhr rrr rrr rrr rrr}}; RH ={l12 Rhythm{krr krr Krr krr krr krr Krr rrr}}; RF ={l12 Rhythm{Xrx rrr rrr XrX rrr rrx rrr rrx}}; } CASE(1){ v100 q99 t0 Elm_chd =(0, 4, 7); Chd_str={CM}; Keb={l12 Z^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^r}; Bas={l12 A^^ ^^^ ^^^ A^A A^^ ^^^ ^^^ A^^}; LH ={l12 Rhythm{Jrr jrr Jrr jrr jrr jrr Jrr jrr}}; LF ={l12 Rhythm{rhr rrr rrr rrr rhr rrr rrr rhr}}; RH ={l12 Rhythm{krr krr Krr krr krr krr Krr rrr}}; RF ={l12 Rhythm{Xrx rrr rrr XrX rrr rrx rrr rrr}}; } CASE(2){ v100 q99 t0 Elm_chd =(0, 3, 7); Chd_str={Cm}; Keb={l12 ZZ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^}; Bas={l12 A^^ ^^^ ^^^ A^A A^^ ^^^ ^^^ A^^}; LH ={l12 Rhythm{Jrr jrr Jrr jrr jrr jrr Jrr jrr}}; LF ={l12 Rhythm{rhr rrr rrr rhr rrr rrr rrr rrr}}; RH ={l12 Rhythm{krr krr Krr krr krr krr Krr rrr}}; RF ={l12 Rhythm{Xrx rrr rrr XrX rrr rrx rrr rrx}}; } CASE(3){ v100 q99 t0 Elm_chd =(0, 2, 7); Chd_str={Csus2}; Keb={l12 Z^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^rr}; Bas={l12 A^^ ^^^ ^^^ ^^A A^A ^^^ ^^^ ^^^}; LH ={l12 Rhythm{Jrr jrr Jrr jrr jrr jrr Jrr rrr}}; LF ={l12 Rhythm{rhr rrr rrr rrr rhr rrr rrr rrr}}; RH ={l12 Rhythm{krr krr Krr krr krr krr Krr rrr}}; RF ={l12 Rhythm{Xrx rrr rrr XrX rrr rrx rrr rrr}}; } } //SW } //IF IF(Part== 7){ Part_str={"つなぎコード"}; Part_num=1; SWITCH(Sector%4){ CASE(0){ v100 q99 t0 Shift_key =KeyC; Elm_chd =(0, 5, 7); Chd_str={Csus4}; Keb={l12 ZZ^ ^^^ ^^^ ^^^}; Bas={l12 A^A A^A A^A A^A}; LH ={l12 Rhythm{Jrr jrr Jrr jrr}}; LF ={l12 Rhythm{rhr rhr rhr rhr}}; RH ={l12 Rhythm{krr krr Krr krr}}; RF ={l12 Rhythm{Xrx rrr rrr XrX}}; } CASE(1){ v100 q99 t0 Shift_key =KeyC; Elm_chd =(0, 4, 7); Chd_str={CM}; Keb={l12 Z^^ ^^^ ^^^ ^^r}; Bas={l12 A^A A^A A^A A^A}; LH ={l12 Rhythm{jrr jrr Jrr jrr}}; LF ={l12 Rhythm{rhr rhr rhr rhr}}; RH ={l12 Rhythm{krr krr Krr rrr}}; RF ={l12 Rhythm{rrr rrx rrr rrx}}; } CASE(2){ v100 q99 t0 Shift_key =KeyCs+12; Elm_chd =(0, 5, 7,10); Chd_str={C#7sus4}; Keb={l12 ZZ^ ^^^ ^^^ ^^^}; Bas={l12 A^A A^A A^A A^A}; LH ={l12 Rhythm{Jrr jrr Jrr jrr}}; LF ={l12 Rhythm{rhr rhr rhr rhr}}; RH ={l12 Rhythm{krr krr Krr krr}}; RF ={l12 Rhythm{Xrx rrr rrr XrX}}; } CASE(3){ v100 q99 t0 Shift_key =KeyCs+12; Elm_chd =(0, 4, 7, 10); Chd_str={C#7}; Keb={l12 Z^^ ^^^ ^^^ ^^r}; Bas={l12 A^A A^A A^A A^A}; LH ={l12 Rhythm{jrr jrr Jrr rrr}}; LF ={l12 Rhythm{rhr rhr rhr rrr}}; RH ={l12 Rhythm{krr krr Krr rrr}}; RF ={l12 Rhythm{rrr rrx rrr rrr}}; } } //SW } //IF IF(8<= Part & Part<= 13){ Part_num=2; IF(Part==10 | Part==12){ v100 q99 t0 Part_str={"カノン 11,13th転回"}; SWITCH(Sector%8){ CASE(0){ Shift_key =KeyC; Elm_chd =( 0, 4, 7,11, 14, 17); Chd_str={CM11}; } CASE(1){ Shift_key =KeyG; Elm_chd =( 0, 4, 7,10, 17); Chd_str={G7(11)};} CASE(2){ Shift_key =KeyA; Elm_chd =( 0, 3, 7,10, 14, 17); Chd_str={Am11}; } CASE(3){ Shift_key =KeyE; Elm_chd =( 0, 4, 7,10, 18); Chd_str={E7#11};} CASE(4){ Shift_key =KeyF; Elm_chd =( 0, 4, 6,10, 14); Chd_str={F9b5};} CASE(5){ Shift_key =KeyC-12; Elm_chd =( 0, 3, 7,10, 14, 17, 21); Chd_str={Cm13};} CASE(6){ Shift_key =KeyD; Elm_chd =(-9, 0, 7, 10, 14); Chd_str={D9th omit3/F};} CASE(7){ Shift_key =KeyG; Elm_chd =( 0, 4, 7,10, 14, 17, 21); Chd_str={G13th};} } //SW } //IF IF(Part==9 | Part==11 | Part==13){ v100 q99 t0 Part_str={"カノン 9th転回"}; SWITCH(Sector%8){ CASE(0){ Shift_key =KeyC; Elm_chd =(0, 4, 7, 11, 14); Chd_str={CM9}; } CASE(1){ Shift_key =KeyG; Elm_chd =(0, 4, 7, 10, 15); Chd_str={G7#9}; } CASE(2){ Shift_key =KeyA; Elm_chd =(0, 3, 7, 10, 14); Chd_str={Am9}; } CASE(3){ Shift_key =KeyE; Elm_chd =(0, 3, 7, 9, 14); Chd_str={Em69}; } CASE(4){ Shift_key =KeyF; Elm_chd =(0, 4, 7, 10, 14); Chd_str={F9th}; } CASE(5){ Shift_key =KeyC-12; Elm_chd =(0, 4, 7, 9, 14); Chd_str={C69th};} CASE(6){ Shift_key =KeyD; Elm_chd =(-9, 0, 5, 7, 14); Chd_str={Dm9/F};} CASE(7){ Shift_key =KeyG; Elm_chd =(0, 4, 7, 10, 13); Chd_str={G7b9}; } } //SW } //IF IF(Part==8){ v100 q99 t0 Part_str={"カノン コード差替え"}; SWITCH(Sector%8){ CASE(0){ Shift_key =KeyC; Elm_chd =(0, 4, 7); Chd_str={CM};} CASE(1){ Shift_key =KeyG; Elm_chd =(0, 4, 7); Chd_str={GM};} CASE(2){ Shift_key =KeyE; Elm_chd =(0, 3, 7); Chd_str={Em};} CASE(3){ Shift_key =KeyA; Elm_chd =(0, 3, 7); Chd_str={Am};} CASE(4){ Shift_key =KeyD; Elm_chd =(0, 3, 7); Chd_str={Dm};} CASE(5){ Shift_key =KeyC-12; Elm_chd =(0, 4, 7); Chd_str={CM};} CASE(6){ Shift_key =KeyF; Elm_chd =(0, 4, 7); Chd_str={FM};} CASE(7){ Shift_key =KeyG; Elm_chd =(0, 4, 7); Chd_str={GM};} } //SW } //IF SWITCH(Sector%8){ CASE(0){ v100 q99 t0 Keb={l12 ZZ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^}; Bas={l12 A^^ A^A A^A A^A A^A A^A A^A A^A}; LH ={l12 Rhythm{Jrr jrr Jrr jrr jrr jrr Jrr jrr}}; LF ={l12 Rhythm{rhr rrr rrr rhr rrr rrr rrr rrr}}; RH ={l12 Rhythm{krr krr Krr krr krr krr Krr rrr}}; RF ={l12 Rhythm{Xrx rrr rrr XrX rrr rrx rrr rrx}}; } CASE(1){ v100 q99 t0 Keb={l12 Z^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^r}; Bas={l12 A^A A^A A^A A^A A^A A^A A^A A^A}; LH ={l12 Rhythm{Jrr jrr Jrr jrr jrr jrr Jrr jrr}}; LF ={l12 Rhythm{rhr rrr rrr rrr rhr rrr rrr rhr}}; RH ={l12 Rhythm{krr krr Krr krr krr krr Krr rrr}}; RF ={l12 Rhythm{Xrx rrr rrr XrX rrr rrx rrr rrr}}; } CASE(2){ v100 q99 t0 Keb={l12 ZZ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^}; Bas={l12 A^A A^A A^A A^A A^A A^A A^A A^A}; LH ={l12 Rhythm{Jrr jrr Jrr jrr jrr jrr Jrr jrr}}; LF ={l12 Rhythm{rhr rrr rrr rhr rrr rrr rrr rrr}}; RH ={l12 Rhythm{krr krr Krr krr krr krr Krr rrr}}; RF ={l12 Rhythm{Xrx rrr rrr XrX rrr rrx rrr rrx}}; } CASE(3){ v100 q99 t0 Keb={l12 Z^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^r}; Bas={l12 A^A A^A A^A A^A A^A A^A A^A A^^}; LH ={l12 Rhythm{Jrr jrr Jrr jrr jrr jrr Jrr rrr}}; LF ={l12 Rhythm{rhr rrr rrr rrr rhr rrr rrr rrr}}; RH ={l12 Rhythm{krr krr Krr krr krr krr Krr rrr}}; RF ={l12 Rhythm{Xrx rrr rrr XrX rrr rrx rrr rrr}}; } CASE(4){ v100 q99 t0 Keb={l12 ZZ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^}; Bas={l12 A^^ A^A A^A A^A A^A A^A A^A A^A}; LH ={l12 Rhythm{Jrr jrr Jrr jrr jrr jrr Jrr jrr}}; LF ={l12 Rhythm{rhr rrr rrr rhr rrr rrr rrr rrr}}; RH ={l12 Rhythm{krr krr Krr krr krr krr Krr rrr}}; RF ={l12 Rhythm{Xrx rrr rrr XrX rrr rrx rrr rrx}}; } CASE(5){ v100 q99 t0 Keb={l12 Z^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^r}; Bas={l12 A^A A^A A^A A^A A^A A^A A^A A^A}; LH ={l12 Rhythm{Jrr jrr Jrr jrr jrr jrr Jrr jrr}}; LF ={l12 Rhythm{rhr rrr rhr rrr rrr rrr rhr rrr}}; RH ={l12 Rhythm{krr krr Krr krr krr krr Krr rrr}}; RF ={l12 Rhythm{Xrx rrr rrr XrX rrr rrx rrr rrr}}; } CASE(6){ v100 q99 t0 Keb={l12 ZZ^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^}; Bas={l12 A^A A^A A^A A^A A^A A^A A^A A^A}; LH ={l12 Rhythm{Jrr jrr Jrr jrr jrr jrr Jrr jrr}}; LF ={l12 Rhythm{rhr rrr rrr rhr rrr rrr rrr rrr}}; RH ={l12 Rhythm{krr krr Krr krr krr krr Krr rrr}}; RF ={l12 Rhythm{Xrx rrr rrr XrX rrr rrx rrr rrx}}; } CASE(7){ v100 q99 t0 Keb={l12 Z^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^r}; Bas={l12 A^A A^A A^A A^A A^A A^A A^A A^^}; LH ={l12 Rhythm{Jrr jrr Jrr jrr jrr jrr Jrr jrr}}; LF ={l12 Rhythm{rhr rrr rhr rrr rrr rrr rhr rrr}}; RH ={l12 Rhythm{krr krr Krr krr krr krr Krr rrr}}; RF ={l12 Rhythm{Xrx rrr rrr XrX rrr rrx rrr rrr}}; } } //SW } //IF // /Keb/ q101以上とスラー[^]は組み合わせないこと ! 和音に難あり。 SWITCH(Trk){ CASE(1){ q99 Lyric= {MKey:}+(Part_key+AllMkey)+{ }+Chd_str+{ /KeyinC }+Part_str; WHILE(1){ IF(POS({Z}, Keb)==0){ EXIT} ELSE{ R_Gtptn(); // Chd出力 Keb=Replace( Keb, {Z}, Chd,off); //Z -> Chd差替え } } Keb; //MML出力 } CASE(2){ q127 IF(Part==11 & 4<=Sector){ IF(Sector==6){ l24} ELSE{ l20} } ELSE{ IF(Part==12 & Sector<= 0){ l20 } ELSE{ l16 } } S_Gtptn(Sector%4,Part_num); Beat; //MML出力 } CASE(3){ v120 q99 WHILE(1){ IF(POS({A}, Bas)==0){ EXIT} ELSE{ Basptn(Sector%4); // Chd出力 Bas=Replace( Bas, {A}, Chd,off); //A -> Chd差替え } } Bas; //MML出力 } CASE(4){ //Beat ={Rhythm}+CHR(123)+Rym+CHR(125); BR(12) PitchBend.onNote(DrmPitch(Sector%4) ); Sub{ LF;} Sub{ RF;} Sub{ LH;} RH; } } //SW } //FOR } //FOR } //FOR