// 黒鍵のエチュード Etuden Op.10-5 /////////////////////////////////////////////////////////////////////////////////////// // 各種設定らしきもの Int MSGS=0 Int TWM2=0 Int TIMIDITY=0 Int BRIGHT=0 Int LOOP=2 Int KEY=0 Int TEMPORATIO=100 Int TEMPODIFF=0 // Base Tempo=116 Int IGNORETEMPO=0 Int TINY=0 Int GAKUHU=0 //Int DEBUG=1 //Mute(1,2,3) // ↑上2行のコメント外すと、メトロノームだけが鳴るなの。どうやって使うかは秘密なの。ぐすぐす;; //////////////////////////////////////////////////////////////////////////////////////////////// 拍子 2,4 IF(KEY %12 = 1 || KEY % 12 = 6 || KEY % 12 = -11 || KEY % 12 = -6) { 曲名{"白鍵のエチュード Etuden Op.10-5"} } ELSE { 曲名{"黒鍵のエチュード Etuden Op.10-5"} } 作者{"Fryderyk Franciszek Chopin MML by ななこっち★"} IF(MSGS=1 || TWM2=1) { ResetGS } #METORONOMEMML={M8m8m8m8} IF(TINY=1 || GAKUHU=1 || TWM2=1) { Expression.Frequency(2); Modulation.Frequency(8); System.TimeBase=96 } ELSE { Expression.Frequency(1); Modulation.Frequency(1); System.TimeBase=3072 } #PEDALON={Sub {r64y64,127}} #PEDALOFF={r-36 y64,0 r36} /////////////////////////////////////////////////////////////////////////////// // title: "rchord.h" ver 1.01 // description: 和音を下からランダムなタイミングで演奏するインクルードファイル(2015/05/24) // keywords: SAKURA Function by ななこっち★ @nanakochi123456 // HP: http://nano.daiba.cx/ /////////////////////////////////////////////////////////////////////////////// // rchord.h 和音をランダムなタイミングで演奏する /////////////////////////////////////////////////////////////////////////////// // Function RCDINIT(min, value) // 乱数値の最小値、最大値を設定する。両方0にすると、同一タイミングで演奏します。 // // Function RCD(mml) // ランダムに演奏したい和音のMMLを入力する /////////////////////////////////////////////////////////////////////////////// // Example // Include(rchord.h) // RCDINIT(53,513) // l4 RCD(ceg) // l8 RCD(<b>fg) // l8 RCD(ceg) /////////////////////////////////////////////////////////////////////////////// // テストする場合、コメントアウトを消して下さい。 //Int TEST=1 /////////////////////////////////////////////////////////////////////////////// Int RCD_MIN=192 Int RCD_MAX=768 Function RCDINIT(Int MIN, Int MAX) { RCD_MIN=MIN RCD_MAX=MAX } Function RCD(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(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="" } ELSE { BUF=BUF+"Sub" + CHR(123)+R+ML+CHR(125) IF(RCD_MAX>0) { R=R+"r"+Random(RCD_MIN, RCD_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" IF(DEBUG=1 || TEST=1) { Print(BUF) } BUF } IF(TEST=1) { TR(1) Tempo 50 l4 RCDINIT(32,40) l4 RCD(ceg) l8 RCD(<b>fg) l8 RCD(ceg) RCDINIT(96,425) l4 RCD(ceg) l8 RCD(<b>fg) l8 RCD(ceg) RCDINIT(193,765) l4 RCD(ceg) l8 RCD(<b>fg) l8 RCD(ceg) RCDINIT(0,0) l4 RCD(ceg) l8 RCD(<b>fg) l8 RCD(ceg) } /////////////////////////////////////////////////////////////////////////////// // title: "rmelody.h" ver 0.25 // description: 単音をランダムな音量とタイミングで演奏するインクルードファイル(2015/05/25) // keywords: SAKURA Function by ななこっち★ @nanakochi123456 // HP: http://nano.daiba.cx/ /////////////////////////////////////////////////////////////////////////////// // rmelody.h メロディー等をランダムなタイミングで演奏する /////////////////////////////////////////////////////////////////////////////// // Function RMDINIT(rmin, rmax, vmin, vmax) // 休符乱数値の最小値、最大値、最小、最大音量設定する。両方0にすると、同一タイミングで演奏します。 // // Function RMDR(rmin, rmax) // 休符乱数値の最小値、最大値の設定のみする // // Function RNDV(rmin, rmax) // 音量乱数値の最小値、最大値の設定のみする。 // 同一の値を設定を両方に行うと、固定音量となる。 // rmaxを省略すると、rmin、rmax共に加算、または減算を行なう // // rmin, rmaxは与える休符値、vmin, vmaxは与える音量値 // Function RMD(mml) // ランダムに演奏したいメロディーのMMLを入力する /////////////////////////////////////////////////////////////////////////////// // Example // Include(rchord.h) // RMDINIT(53,513,90,110) // l4 RMD(ceg) // RMDV(5) // l8 RMD(<b>fg) // RMDV(-5) // l8 RMD(ceg) /////////////////////////////////////////////////////////////////////////////// // テストする場合、コメントアウトを消してください。 //Int TEST=1 /////////////////////////////////////////////////////////////////////////////// Int RMD_RMIN=192 Int RMD_RMAX=768 Int RMD_VMIN=95 Int RMD_VMAX=100 Int RMD_CRESC=0 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 BUF="" R="" For(Int i=1; MID(MML, i, 1)!=""; i++) { M=MID(MML, i, 1) // Print("Start Str="+M) IF((ASC(M)>=48 && ASC(M)<=57) || M="r"||M="."||M="^") { IF(TO>=1) { LenStr=LenStr+M //Print("LenADD:"+LenStr) } ML=ML+M } ELSE { IF((ASC(M)>=97 && ASC(M)<=103)) { //Print("Note:"+M) TOKEN++ TO=1 FM=RRMML+VL+ML+RMML IF(TOKEN>1) { C++ IF(FM!="") { BUF=BUF+"Sub{"+FM+"}r"+LenStr } // TO=0 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 { //Print("Other:"+M) 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 } } } IF(DEBUG=1||TEST=1) { Print("Token "+ TOKEN + " Count "+ C + " Str="+M+" ML="+ML+" Len="+LenStr+" TO="+TO+" BUF="+BUF) } } FM=RRMML+VL+ML+RMML IF(FM!="") { BUF=BUF+"Sub{"+FM+"}r"+LenStr } IF(DEBUG=1 || TEST=1) { Print(BUF) } BUF } IF(TEST=1) { #basemml={ l8 [4 RMD(cdefgfed) RMDV(-5)] RMDV(15) RMD(c4g4f4d4) } TR(1) Tempo 120 o6 // 下手過ぎあひゃひゃ RMDINIT(32,40,70,110) #basemml // まぁまぁ RMDINIT(96,425,70,110) #basemml // 上手 RMDINIT(193,765,100,110) #basemml // DTM RMDINIT(0,0,110,110) #basemml TR(2) Tempo 120 o4 // 下手過ぎあひゃひゃ RMDINIT(32,40,70,110) #basemml // まぁまぁ RMDINIT(96,425,70,110) #basemml // 上手 RMDINIT(193,765,100,110) #basemml // DTM RMDINIT(0,0,110,110) #basemml TR(10) $M{n(MetronomeBell),} $m{n(MetronomeClick),} [40 Rythm{M4m4m4m4} ] } /////////////////////////////////////////////////////////////////////////////// // 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={M4m4m4} IF(#METORONOMEMML="") { #METORONOMEMML={M4m4m4m4} } IF(TEST=1) { DEBUG=2 Tempo 200 } IF(DEBUG>=1) { IF(DEBUG=2) { #DEBUGMML1={Sub{@1v90V(127)'v90o5do6fo7a#o8d'}} #DEBUGMML2={Sub{@1v90V(127)'v90o5co6eo7g#o8c'}} #DEBUGMML3={Sub{@1v127V(127)'v127o4cdefgabo6cdefgab'}} } 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,0) /////////////////////////////////////////////////////////////////////////////// // テストする時は、以下のコメントを外してください。 //Int TEST=1 //Int LOOP=5 /////////////////////////////////////////////////////////////////////////////// Function LoopPlay(Str Mml, Int count) { Str _MML For (Int i = 1; i <= LOOP + count; i++) { _MML=_MML + Mml } _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 } IF(GAKUHU=1) { RCDINIT(0,0) } ELSE { RCDINIT(370,856) } Key(KEY) Int QTemp Function QSet(value) { QTemp=value } Function Q(value) { Str MML="q" IF(GAKUHU=1) { MML=MML+"100" } ELSE { MML=MML+(value * QTemp / 100) } MML } #V_PIANO={ #REV V(100) M(0) IF(BRIGHT=1) { @(BrightPiano) } ELSE { @(GrandPiano) } QSet(100) } // Tempo TR(16) // 1 TmpChangeR(116,0) [6 r2] // loop start #tempoloop={ TmpChangeR(110,!2) TmpChangeR(92,!2) TmpChangeR(110,0) TmpChangeR(119,!4) r4 [4 r2] TmpChangeR(112,!1) TmpChangeR(105,!2) // 2 TmpChangeR(100,0) TmpChangeR(110,!2) TmpChangeR(105,!2) TmpChangeR(120,0) TmpChangeR(123,!2) TmpChangeR(117,!2) TmpChangeR(100,0) TmpChangeR(105,!4) TmpChangeR(110,!4) TmpChangeR(105,!2) TmpChangeR(100,0) TmpChangeR(107,!2^2) TmpChangeR(115,!2^2^2^2) TmpChangeR(123,!2^2^8) TmpChangeR(95,!4.^2) [ TmpChangeR(116,0) TmpChangeR(113,!2) TmpChangeR(100,!2) TmpChangeR(116,0) [2 r2] ] TmpChangeR(105,0) TmpChangeR(108,!1) TmpChangeR(105,!1) TmpChangeR(108,0) TmpChangeR(113,!2) TmpChangeR(108,!2) TmpChangeR(90,!2) TmpChangeR(70,!2) // 3 TmpChangeR(105,0) TmpChangeR(116,!4) r4 [5 r2] } // loop end LoopPlay(#tempoloop,0) TmpChangeR(112,!2^2) TmpChangeR(118,!2^2) [4 r2] TmpChangeR(110,!2) TmpChangeR(85,!2) TmpChangeR(35,0) r24 TmpChangeR(80,0) r12 TmpChangeR(100,!4.) TmpChangeR(90,0) r2 TmpChangeR(116,0) [5 r2] TmpChangeR(125,!2^2^2) [3 r2] TmpChangeR(127,!2) TmpChangeR(110,0) TmpChangeR(127,!2^2) TmpChangeR(110,!2^2) TmpChangeR(80,0) r12 TmpChangeR(60,0) r12 TmpChangeR(80,0) TmpChangeR(90,!4.) TmpChangeR(67,!12) // pedal part #p1={ [ [1 r2] [1 #PEDALON r8. #PEDALOFF r16r4] [4 #PEDALON r8. #PEDALOFF r16] [1 r2] [1 #PEDALON r8. #PEDALOFF r16r4] [2 #PEDALON r2 #PEDALOFF] ] } // #p2={ [4 #PEDALON r8. #PEDALOFF r16] [4 #PEDALON r8. #PEDALOFF r16] [4 #PEDALON r8. #PEDALOFF r16] // [1 #PEDALON r4 #PEDALOFF r4] // [1 r2] [1 #PEDALON r2 r2 #PEDALOFF] [2 #PEDALON r4 #PEDALOFF #PEDALON r8 #PEDALOFF #PEDALON r8 #PEDALOFF] [2 #PEDALON r2 #PEDALOFF] [2 #PEDALON r4 #PEDALOFF r4] [2 #PEDALON r4 #PEDALOFF] [1 #PEDALON r2 #PEDALOFF] [2 #PEDALON r2 r2 #PEDALOFF] [2 #PEDALON r2 r4 #PEDALOFF #PEDALON r4 #PEDALOFF] [2 #PEDALON r2 r4 #PEDALOFF #PEDALON r8. #PEDALOFF #PEDALON r16 #PEDALOFF] [4 #PEDALON r8 #PEDALOFF] [1 #PEDALON r4 #PEDALOFF] [2 #PEDALON r8 #PEDALOFF] [1 #PEDALON r4. #PEDALOFF] [1 #PEDALON r8 #PEDALOFF] [1 #PEDALON r4. #PEDALOFF r8] } // #p3={ [ [1 r2] [1 #PEDALON r8. #PEDALOFF r16r4] [4 #PEDALON r8. #PEDALOFF r16] ] [8 #PEDALON r8. #PEDALOFF r16] [2 #PEDALON r2 #PEDALOFF] [1 #PEDALON r2 r2 #PEDALOFF] [1 #PEDALON r2 #PEDALOFF] [2 #PEDALON r4 #PEDALOFF] [4 #PEDALON r8 #PEDALOFF r8] r4 [3 #PEDALON r8 #PEDALOFF r8] [8 #PEDALON r8 #PEDALOFF r8] [2 #PEDALON r4 #PEDALOFF r8 #PEDALON r8 #PEDALOFF] [1 #PEDALON r4 #PEDALOFF r8] [5 #PEDALON r24 #PEDALOFF r24r24] r8 [15 #PEDALON r8 #PEDALOFF] #PEDALON r2 #PEDALOFF #PEDALON r1 #PEDALOFF } #m1={ l24 [ RMDV(95,100) [RMD(g-b-d-g-e-g- d-g-<b->d-<g-b-)] RMD(d->d-<a->d-<a->a-<a->a-e-a-e->e-<) RMD(e->e-<a->e-<a->a-<a->a-d-a-d->d-<) [RMD(g-b-d-g-e-g- d-g-<b->d-<g-b-)] : RMD(e->e-<a->e-<a->a-e-a-e->e-<a->a-<) [6 RMDV(-5) RMD(b->b-<) ]> ] RMD(e->e-<a->e-<a->a- e-a-e->e-<a->e-<) RMD(e->e-<a->e-<d->d- <a->d-<a->a-d->d-<) } #m2={ l24 [ RMD(a-b-a-e->e-<e- d-e-d-<a->a-<a-) RMD(a-b-a-e->e-<e- d-e-d-<a-8^24) : >RMD(e-a-b-a-e- d-a->d-e-d-<b-) RMD(a->e-a-b-a-e- d-a->d-e-d-<b-) RMDV(-3) ] >RMD(a-g-a-g-a- >g-<a-g-a-g-a-) <RMD(a->a-g-a-g-a->g-<a-g-a-g-a-) [RMD(<b->b-g-b-g-b->g-<b-g-b-g-b-)] RMD(g-b-g- >b-<b-g- >a-<b-g- >g-<b-g-) RMD(>d-<b-g- >b-<b-g- >a-<b-g- >g-<b-g-) [RMD(d->d-<b->d-d->d- <b->d-<d-d-<b->d-<)] RMD(d->d-<b->d-d->d- <a->d-<d-d-<a->d-<) RMD(d->d-<g->d-<d-d-<g->d-<d-d-<g->d-<) RMD(e-g->d- e-<g->d- e-g-d- e-g->d-<) RMD(e-g->d- e-<g->d- e-g-d- e->d-<g-) RMD(e-g->e- d-<g-e-> d-<g-e- d-g-e-) RMD(d-<g->e- d-<g-e-> d-<g-e- d-g-e-) RMD(<a->e-g- a-e-g- a->e-<g- a->e-g-) RMD(<a->e-g- a-e-g- a->e-<g- a->g-e-) RMD(a-g->e-< a-g-e- a-g-e- <a->g-e-<) RMD(a-g->e-< a-g-e- a-g-e- <a->g-e-<) [RMD(d->d-<a-> d-<a->a- d-a-<a- >d-<a->d-<)] RMD(d->d-<a-> d-d->d- <a->d-<d- d-<a->d-<) RMD(a->a-d- a-a->a- d-a-<a- a-d-a-) [RMD(d-e-d- >e-d->e- d-e-d- <d-e-d-<)]> [4 RMD(>d-e-d-< d-e-d-)] } #m3={ [RMD(g-b-d-g-e-g- d-g-<b->d-<g-b-)] RMD(d->d-<a->d-<a->a-<a->a-e-a-e->e-<) RMD(e->e-<a->e-<a->a-<a->a-d-a-d->d-<) [RMD(g-b-d-g-e-g- d-g-<b->d-<g-b-)] [RMD(e->e-<a->e-<a->a-<) [3 RMD(b->b-<)]>]< [ RMD(b->b-e- b-<a->a- <a->a-d- a-<g->g-<) RMD(d->d-<a- >d-<a->a- <g->g-d- g-d->d-<<) ] [4 RMD(b->b-e- b-<a->a-<)]> [RMD(d-b-<a- >a-d-b- <a->a-d- b-<a->a-)] RMD(>e-d-<b- a-g-e- d-<b-a- g-e-d-) RMD(<a-4 b-8.a-16) RMD(g-8r8 >> a-b-a-d->d-<d-) RMD(d-e-d- <g->g-<g- a-b-a- d-8^) RMD(g-a- b-a-g- d-a->d- e-d-<a-) RMD(g->d-g- a-g-e- d-a->d- e-d-<a-) RMD(g-a-g- d->d-<d- d-e-d- <a->a-<a-) RMD(a-b-a- g->g-<g- d-4^) RMD(g-a- b-a-g- d-a->d- e-d-<a-) RMD(g->d-g- a-g-e- <a->d-a- b-a-d-) RMDV(-15) [3 RMD(b-d-a- <b->a-d- g-<b->e- <a->d-<d-)] [RMD(b-g->e- <d->d-<a-)] Sub{ Q(50)RMD(b-8) RMDV(15) Q(95)>RMD(d-8g-8b-8>d-8g-8b-8>d-8) [4 RMD(g-8b-8)] } <<< r8 RMD(b-a-g- >e-d-<b-> g-e-d-) RMD(b-a-g- >e-d-<b-> g-e-d- b-a-g->) [4 RMD(e-d-<b-> g-e-d-)] RCD(<b->g-) <r v118 RCD(g->g-<) RCD(e->e-<) RCD(d->d-<) RCD(<b->b-) RCD(<a->a-) RCD(<g->g-) RCD(<e->e-) RCD(<d->d-) < RCD(<b->b-) RCD(<a->a-) l8 RCD(<g-8>g-8)r8 > v123 l4 RCD(b-4>d-4g-4b-4<) < RMDV(125,127) <RMD(g-2) v0g-2 } #bdg={RCD(b->d-g-<)} #ceg={RCD(>c-e-g-<)} #adf={RCD(a->d-f<)} #ace={RCD(a->c-e-<)} #acd={RCD(a->c-d-<)} #fd={RCD(f>d<)} #af={RCD(a->f<)} #ga={RCD(>g-a-<)} #fb={RCD(>fb-<)} #fa={RCD(>fa-<)} #gb={RCD(>g-b-<)} #df={RCD(>d-f<)} #aeg={RCD(a->e-g-<)} //#adfm={RCD(a->d-f-<)} #acg={RCD(a->cg-<)} #bdg={RCD(b->d-g-<)} #bg={RCD(b->g-<)} #bdf={RCD(b->d-f<)} #bdfm={RCD(b->d-f-<)} #gdfm={RCD(g>d-f-<)} #ameg={RCD(a>e-g-<)} #adg={RCD(a->d-g-<)} #acga={RCD(a->cg-a-<)} #ge={RCD(g>e<)} #cdf={RCD(>c-d-f<)} #ae={RCD(a->e-<)} #fbd={RCD(fb->d<)} #chord1={ l8 [ [ #bdg #ceg #bdg r r #ceg #bdg r : r #adf #ace r r #ace #acd r ] l4 r8 #ae r8 : l8 #fd >#fd <r4 ] r8 l8 #af r4 } #chord2={ l8 #ga #ga #fb #fa #gb #ga #df r r #aeg #adf r r #acg r #adf r #ga #fb #fa #gb #ga #df r v100 [r #aeg rr] r #bdg rr [3 r #bg rr] r #bdf rr r #bdfm rr r #gdfm r #adf r #ameg rr v110 r2 r4 l8.#adg l16 #adg l2 #adg r2 r2 r4 l8.#acga l16 #acga l2 #acga r2 v110 [ r4 l2 #af l8. #ge l16 #af ] Q(90) Sub { RMDV(115,124) r8 l8 >RMD(f g- g a-4 g g- f) RMDV(119,126) r RMD(a-b->c-4<b-8a-8)< } v90 r8 l8 RCD(a->d-<) RCD(a>d-<) RCD(b->d-<) l4 RCD(>c-d-<) l8 RCD(b->d-<) RCD(a>d-<) RCD(a->d-) rrr< r4r8r8 Q(55) } #subchord2={ l8 >c<a->d-<a-> c<a->d-<a-> r2 r2 r<a->d-<a-> c<a->d-<a-> [24 r2] < rr l4 #cdf l2 #cdf } #chord3={ l8 [ #bdg #ceg #bdg r r #ceg #bdg r : r #adf #ace r r #ace #acd r ] [r #ae #fbd r] #cdfa={RCD(>c-d-fa-<)} #bdgb={RCD(b->d-g-b-<)} #cea={RCD(>c-e-a-<)} #bdg={RCD(b->d-g-<)} #aea={RCD(a->e-a-<)} #aega={RCD(a->e-g-a-<)} #adga={RCD(a->d-g-a-<)} #gad={RCD(>g-a->d-<<)} #dadg={RCD(d-a->d-g-<)} #dac={RCD(d-a->c-<)} //-- [ r #cea r #bdg r #cdfa r #bdgb ] l4 r8 #aea r8 l4 r8 #aega r8 r4 #adga #gad r4 Sub{r32 #dadg } r2 l2 #dac #bg={RCD(b->g-<)} #ca={RCD(>c-a-<)} #af={RCD(a->f<)} #fce={RCD(f>c-e-<)} #dd={RCD(d->d-<)} #gbe={RCD(g-b->e-<)} #acf={RCD(a->c-f<)} #mdad={RCD(<d-a->d-)} #mgbg={RCD(<g-b->g-)} #gdb={RCD(g->d-b-<)} #db={RCD(>d-b-<)} #cf={RCD(>c-f<)} #bg={RCD(b->g-<)} //-- l8 [#bg d- #ca #af] #bg r #fce #dd #gbe #dd #fce #dd [#bg d- #ca #af] #bg >d-< #fce #dd #gbe #dd #fce #dd l4 #db r8 l8 #acf l4 #bg r8 l8 #cf l4 #bg r4 r2 //-- r4. l24 < RMDV(95,102) RMD(g->d-b-<) RMD(g->d-b-<) RMD(b->g->d-<<) RMD(>d-b->g-<) RMD(g->d-b-<) RMD(b->g->d-<<) RMD(>d-b->g-<) [3 RMD(g->d-b-<) RMD(d-b->g-<) ] l24 RMDV(100,110) RMD(g-r g- e-d-<b- a-g-e- d-<b-a-) RMD(g-8) r8 l4 #gdb } #bass1={ l8 [ RMD(g-g-g-r) RCD(<g->g-)rrr RCD(<d->d-)rr<RMD(a-)> RMD(d-4.)r RMD(g-g-g-r) RCD(<g->g-)rrr : RMD(c-rrc-) RMD(<b->b-r4) ] RMD(crr<a->) RMD(d-rrr) } #bass2={ r2 r2 RMD(crrd-)< RMD(a-rd-r) RMD(a-)rrr rrrr> RMD(c)rr<RMD(c)> RMDV(110,120) RMD(c)rr RCD(<c>c) RCD(<d->d-)r RCD(<c>c) RCD(<d->d-) RMDV(112,120) RCD(<d>d)r RCD(<c#>c#) RCD(<d>d) RCD(<e->e-) rr RCD(<e->e-) RCD(<e>e)rr RCD(<e>e) RMDV(115,120) RCD(<f>f)r RCD(<e>e) RCD(<f>f) RCD(<g->g-)r RCD(<f>f) RCD(<g->g-) RCD(<g>g) r RCD(<a->a-) r RCD(<a>a)rr < RCD(<a>a) [ l2 RCD(<a-2>a-2) r2 r2 r2 ] RMDV(110,115) l8 RMD(d-)rrr r2> RMD(d-)rrr r2 RMD(d-)rrr r2 rRMD(d-)rr r2 } #bass3={ l8 RMD(g-g-g-r) RCD(<g->g-)rrr RCD(<d->d-)rr<RMD(a-)> RMD(d-4.)r RMD(g-g-g-r) RCD(<g->g-) rrr [RMD(c-)rr<RMD(b-)>] RMDV(80,95) [ RMD(c-rd-r) RMD(c-r<b-r>) ] RMDV(85,100) RMD(c-rrc-) RMD(crrc) RMD(d-4)r4 r2< RMD(d-2) r2 > [ [RMD(g-2)] [RMD(g-8r8 d-8r8)] ] l8 RMDV(85,100) RMD(g-4rd-) RMD(g-4r) RMDV(-3) RMD(<d-) RMD(g-4rd-) [RCD(<g->g-) RMD(d-)] RCD(<g->g-) rrr RMDV(3) [3 r2] l24 RMDV(100,110) rr> RMD(g- e-d-<b- a-g-e- d-<b-a-) l8 RMDV(110,120) RCD(g->g-)> r4. RMDV(127,127) RCD(<<g-2>g-2>) } TR(1) o7 #V_PIANO Q(70)v110 RMDINIT(270,856,95,100) #tr1={ RMDV(95,100) Sub{#p1} #m1 Sub{#p2} #m2 } LoopPlay(#tr1,0) RMDV(95,100) Sub{#p3} #m3 TR(2) o4 #V_PIANO #tr2={ Q(55)v90 Sub{#p1} #chord1 Sub{#p2} Sub{#subchord2} Q(40) #chord2 } LoopPlay(#tr2,0) Q(55) Sub{#p3} #chord3 TR(3) o4 #V_PIANO Q(95)v115 RMDINIT(270,856,100,110) #tr3={ Sub{#p1} #bass1 Sub{#p2} #bass2 } LoopPlay(#tr3,0) Sub{#p3} #bass3