Hatena::ブログ(Diary)

覚え書きにっき

2008-03-20 MMLの勉強8 このエントリーを含むブックマーク このエントリーのブックマークコメント

前回作ったロードランナー+αの曲をリズムを変えてMMLにしてみました。

ベースロードランナーで、

メロディ

シティコネクションアイスクライマーマリオUSAファンタジーゾーン

と流れていくだけでなく、

サブメロディメロディに追いかけるように

シティコネクションアイスクライマーマリオUSA

と流れています。

タイトルは「ロードランナーカノン」です。

ちなみに今知り合いが作成中の

D言語で作るロードランナーBGMに使用しています。

http://www.nicovideo.jp/watch/sm2584707

$Lode1 = C.C16R>G<C.C16R>G<C.C16R>ERF16R16F#16G.<D.D16R>G<D.D16R>G<D.D16R>F#RG16R16G#16A.;
$Lode2 = G.G16RDG.G16RDG.G16R>BR<C16R16C#16D.<C.C16R>G<C.C16R>G<C16R16C#R16C#R16C#4R4;
$Lode3 = <E.E16RC#D.D16R>B<C.C16R>BRG16R16G#16A.G.G16RDG.G16RD<C16R16CR16CR16C4R4;
$Lode4 = G.G16RDG.G16RDG.G16R>BR<C16R16C#16D.<C.C16R>G<C.C16R>GG#16R16G#R16G#R16G4R4<;
$Lode5 = G.G16RDG.G16RDG.G16R>BR<C16R16C#16D.<C.C16R>G<C.C16R>G<C16R16CR16CR16C4R4;
$Lode6 = F.F16RCF.F16RCG.G16R>BR<C16R16C#16D.<C.C16R>G<C.C16R>G<C16R16CR16CR16C4R4;

$City1 = C2R8E4D8F2R8E8>B<C8.>A2<D4E4>A2R8<D8>B8A8
         G2R8<D4E8G2R8D8.E8.G2R8ERAG8.D2R8G8E8D8;
$City2 = C2R8E4D8F2R8E8>B<C8.>A2<D4E4G2R8F8E8F8
         E8>B8<EDC#8D8>A8<D8>B8<C8>E8A8B8G8A8B8<C8D8E8>A4.B4.<C2.R4>;
$City3 = C2R8E4D8F2R8E8>B<C8.>A2<D4E4>A2R8<D8>B8A8
         G2R8<D4E8G2R8D8.E8.G2R8ERAG8.D2R2>;
$Ice1 = GRERF8.GR8<C>B<C>B<CR>GRERF8.GR8<C>B<C>B<CR>
        ARFRG8.AR8<DC#DC#DR>ARFRG8.AR8<DC#DC#DR>;
$Ice2 = BRGRA8.BR8<FEFEFR>BRGRA8.BR8<FEFEFR
        EC>GR<EC>GR<FD>AR<FD>AR<F#D>BR<F#D>BR<GDC>BA#AG#R;
$Ice3 = BRGRA8.BR8<FEFEFR>BRGRA8.BR8<FEFEFRER4R>BR<CRC#RF8RER4R8ER2R;
$USA1 = R8E8.R8RG8.AR8<CR2R>ARGREC8.DRERDRERD8.>AR8<
        D8&D24>A24<D24>A24<D24>A24<D24>A24<D24>A24
        <D24>A24<D24>A24<D24>A24<D24>A24<D24R12;
$USA2 = D8.RERD8ERD8.ER8A4GRAGRE8RDRCR
        E8&E24>G24<E24>G24<E24>G24<E24>G24<E24>G24
        <E24>G24<E24>G24<E24>G24<E24>G24<E24R12R8R8GR8DR8>BR8AR8GR<;
$USA3 = D8.RERD8ERD8.ER8A4GRAGRE8RDRCRC4R4>F#RGRG#RA8R<CR4R8CR2R;
$Fzone = E4D4CR>GAR8<C8ERERDDRC4.R>A8<D8.ER8>A8<D8.ER8>A8<D8.E4.R
         >AR<DE8.F2R8F8G8A8<C4>A4<CR>AR<D#DRC1&CR1>;

$CHf = V4 @n64 @E1,0,18,0,1 ;
$CHp = V2 @n64 @E1,0,18,0,1 ;
$SD = V10 @n120 @E1,0,18,0,1 ;
$OH = V4 @n32 @E1,0,64,0,10 ;
$Drum0 = $CHfC R $CHpC R $OHC8 $SDC R16R $CHfC R $CHpC R;
$Drum1 = $Drum0 $Drum0 $CHfC R $CHpC R $OHC 8 $SDC R16R 
         $CHfC R16RR8 $OHC8 $SDC R16R $CHfC R $CHpC R;
$Drum2 = $Drum0 $Drum0 $CHfC R $CHpC R $OHC16 $CHfC R $CHpC R $OHC16
         $CHfC R $CHpC R $OHC8 R16 $CHpC R $SDC R16R $CHfC R16R;


メロディ;
T160@3@W25O6L16V8@E1,0,80,8,0
/:
R1R1R1R1R1R1R1R1
$City1$City2
$Ice1$Ice2$Ice1$Ice2<
$USA1$USA2$USA1$USA3
$Fzone$Fzone
:/;

サブメロディ;
T160@3O5L16V6@E1,0,80,8,0
/:
R1R1R1R1R1R1R1R1
R1R1R1R1R1R1R1R1R1R1R1R1R1R1R1R8D#8.D#R8D#8.D#R8D8
$City1$City3
$Ice1$Ice2$Ice1$Ice3
$USA1$USA2$USA1$USA3
:/;


ベース;
T160@2O4L8V15@E1,1,0,127,0
/:
$Lode1$Lode2
$Lode1$Lode2$Lode1$Lode3
$Lode1$Lode4$Lode1$Lode4
$Lode1$Lode2$Lode1$Lode5
$Lode1$Lode2$Lode1$Lode6
:/

ドラム;
T160@4O6L32V3
/:18
$Drum1$Drum1$Drum1$Drum2
:/

2008-01-14 ゲームBGMのコード進行の勉強 このエントリーを含むブックマーク このエントリーのブックマークコメント

元々自作面のサイトを作るくらいロードランナーが好きな人なので、

その縁もあってロードランナーコード進行について、考えてみました。


|ドド*ソドド*ソドド*ミ*ファファ#ソ|レレ*ソレレ*ソレレ*ファ#*ソソ#ラ|

|ソソ*レソソ*レソソ*シドド#レ|ドド*ソドド*ソドド*ミ*ファファ#ソ|

に対して

|C|G|G|C|

T180 L8 O4 V15 Q10 @2 @E1,1,127,127,1 
ccr>g<ccr>g<ccr>e4ff+g< ddr>g<ddr>g<ddr>f+4gg+a
ggrdggrdggrc4c+dd+< ccr>g<ccr>g<ccr>e4ff+g< ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
rgr8grgr8rg < rdr8drdr8rd rdr8drdr8rd > rgr8grgr8rg ;

T180 L4 O6 V4 Q15 @2 @E3,1,40,0,1 
rer8erer8re > rbr8brbr8rb rbr8brbr8rb < rer8erer8re ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
crc8rcrc8cr > grg8rgrg8gr grg8rgrg8gr < crc8rcrc8cr ;

とするのが一番分かりやすいと思うんですが、Gが二つ繋がるのがどうもカッコ悪く思ってしまいます。

なので

|C|G|G7|C|

T180 L8 O4 V15 Q10 @2 @E1,1,127,127,1 
ccr>g<ccr>g<ccr>e4ff+g< ddr>g<ddr>g<ddr>f+4gg+a
ggrdggrdggrc4c+dd+< ccr>g<ccr>g<ccr>e4ff+g< ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
rgr8grgr8rg < rdr8drdr8rd > rfr8frfr8rf rgr8grgr8rg ;

T180 L4 O6 V4 Q15 @2 @E3,1,40,0,1 
rer8erer8re > rbr8brbr8rb rbr8brbr8rb < rer8erer8re ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
crc8rcrc8cr > grg8rgrg8gr grg8rgrg8gr < crc8rcrc8cr ;

とする手を考えますが、それもイマイチ面白みに欠けるなぁと思って

|C|Dm7|G7|C|

T180 L8 O4 V15 Q10 @2 @E1,1,127,127,1 
ccr>g<ccr>g<ccr>e4ff+g< ddr>g<ddr>g<ddr>f+4gg+a
ggrdggrdggrc4c+dd+< ccr>g<ccr>g<ccr>e4ff+g< ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
rgr8grgr8rg rfr8frfr8rf rfr8frfr8rf rgr8grgr8rg ;

T180 L4 O6 V4 Q15 @2 @E3,1,40,0,1 
rer8erer8re > rar8arar8ra rbr8brbr8rb < rer8erer8re ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
crc8rcrc8cr drd8rdrd8dr > grg8rgrg8gr < crc8rcrc8cr ;

どうせだったら色々コードを考えてみるかと、

|C6(9)|D7(9)|G7(13)G7(b13)G7|C6(9)Db7(9)|

T180 L8 O4 V15 Q10 @2 @E1,1,127,127,1 
ccr>g<ccr>g<ccr>e4ff+g< ddr>g<ddr>g<ddr>f+4gg+a
ggrdggrdggrc4c+dd+< ccr>g<ccr>g<ccr>e4ff+g< ;

T180 L4 O6 V4 Q15 @2 @E3,1,40,0,1 
rdr8drdr8rd rer8erer8re rer8erd+r8rd rdr8drdr8rd+ ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
rar8arar8ra < rcr8crcr8rc > rbr8brbr8rb rar8arar8ra+ ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
rer8erer8re rf+r8f+rf+r8rf+ rfr8frfr8rf rer8erer8rf ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
cr>g8<rcr>g8g<r dr>a8<rdr>a8a<r > grg8rgrg8gr < cr>g8<rcr>g8g<c+ ;

辺りで落ち着かせてみました。


で、そこまででほったらかしにしてたんですが、ニコニコ動画でこんな曲を拝見しまして、

D

「【初音ミク】 恋するロードランナー」(よよだいんさん)


あぁ、こんな風にメロディを付けると面白いんだ!!

と思ったので、他にも同じようなコード進行の曲をファミコンから探してきて、メドレーにしてまとめてみました。

D

ちなみに、

似たコード進行の曲として挙げたアイスクライマーBGM時はメロディの都合で後半の動きが違って

|C6(9)|D7(9)|G7(13)G7(b13)G7|C6(9)A7(b13)D7(9)G7(b13)|

T180 L8 O4 V15 Q10 @2 @E1,1,127,127,1 
ccr>g<ccr>g<ccr>e4ff+g< ddr>g<ddr>g<ddr>f+4gg+a
ggrdggrdggrc4c+dd+< ccr>g<ccr>g<ccr>e4ff+g< ;

T180 L4 O6 V4 Q15 @2 @E3,1,40,0,1 
rdr8drdr8rd rer8erer8re rer8erd+r8rd ddffeed+d+ ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
rar8arar8ra < rcr8crcr8rc > rbr8brbr8rb aa<c+c+cc>bb ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
rer8erer8re rf+r8f+rf+r8rf+ rfr8frfr8rf eeggf+f+ff ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
cr>g8<rcr>g8g<r dr>a8<rdr>a8a<r > grg8rgrg8gr < cc>aa<dd>gg ;

スーパーマリオUSA(夢工場ドキドキパニック)時は

|C6(9)|D7(9)|Dm7(9)G7(13)G7(b13)|C6(9)Db7(9)|

T180 L8 O4 V15 Q10 @2 @E1,1,127,127,1 
ccr>g<ccr>g<ccr>e4ff+g< ddr>g<ddr>g<ddr>f+4gg+a
ggrdggrdggrc4c+dd+< ccr>g<ccr>g<ccr>e4ff+g< ;

T180 L4 O6 V4 Q15 @2 @E3,1,40,0,1 
rdr8drdr8rd rer8erer8re rer8erd+r8rd rdr8drdr8rd+ ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
rar8arar8ra < rcr8crcr8rc rcr8c>rbr8rb rar8arar8ra+ ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
rer8erer8re rf+r8f+rf+r8rf+ rfr8frfr8rf rer8erer8rf ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
cr>g8<rcr>g8g<r dr>a8<rdr>a8a<r drd8r>grg8gr < cr>g8<rcr>g8g<c+ ;

ファンタジーゾーン時は

|C6(9)|D7(9)|Dm7(9)G11(13)G7sus4|C6(9)Db7(9)|

T180 L8 O4 V15 Q10 @2 @E1,1,127,127,1 
ccr>g<ccr>g<ccr>e4ff+g< ddr>g<ddr>g<ddr>f+4gg+a
ggrdggrdggrc4c+dd+< ccr>g<ccr>g<ccr>e4ff+g< ;

T180 L4 O6 V4 Q15 @2 @E3,1,40,0,1 
rdr8drdr8rd rer8erer8re rer8erer8rd rdr8drdr8rd+ ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
rar8arar8ra < rcr8crcr8rc rcr8crcr8rc > rar8arar8ra+ ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
rer8erer8re rf+r8f+rf+r8rf+ rfr8frfr8rf rer8erer8rf ;

T180 L4 O5 V4 Q15 @2 @E3,1,40,0,1 
cr>g8<rcr>g8g<r dr>a8<rdr>a8a<r drd8r>grg8gr < cr>g8<rcr>g8g<c+ ;

微妙に変化させてみましたが、きっともっといいコード進行があるんだろうなぁ。

2007-11-17 MMLの勉強7 このエントリーを含むブックマーク このエントリーのブックマークコメント

MML記法ディチューンの機能がついたので、

前の日記音程の微調整をしてみた。


$Hz697 = @D98ER;
$Hz770 = @D80F#R;
$Hz852 = @D55G#R;
$Hz941 = @D15A#R;

$Hz1209 = @D60DR;
$Hz1336 = @D30ER;
$Hz1477 = @D95FR;

$L1 = $Hz697; $L2 = $Hz697; $L3 = $Hz697;
$L4 = $Hz770; $L5 = $Hz770; $L6 = $Hz770;
$L7 = $Hz852; $L8 = $Hz852; $L9 = $Hz852;
              $L0 = $Hz941;

$H1 =$Hz1209; $H2 =$Hz1336; $H3 =$Hz1477;
$H4 =$Hz1209; $H5 =$Hz1336; $H6 =$Hz1477;
$H7 =$Hz1209; $H8 =$Hz1336; $H9 =$Hz1477;
              $H0 =$Hz1336;

$Sin = T120 @0 V15 L32 O5 Q16 @E1,1,0,127,0 ;
$Lo =  $L0$L3$L5$L7$L8$L4$L3$L0$L5$L0  @D0 ;
$Hi = <$H0$H3$H5$H7$H8$H4$H3$H0$H5$H0> @D0 ;
$A = r4.V5 /:3 gr8. :/ r4.V15 ;
$B = /:15 g64r64 :/ r1 ;

$Sin @P40 $Lo $A /:99 $B :/;
$Sin @P88 $Hi $A /:99 $B :/;


今回は03-5784-3050だったので


$Lo =  $L0$L3$L5$L7$L8$L4$L3$L0$L5$L0  @D0 ;
$Hi = <$H0$H3$H5$H7$H8$H4$H3$H0$H5$H0> @D0 ;

と書きましたが、

この数値を入れ替えれば誰でも簡単に電話番号を入力することが出来ます。


どうぞご利用ください。

2007-10-24 MMLの勉強6 このエントリーを含むブックマーク このエントリーのブックマークコメント

今回はこんなネタで作ってみました。


$Sin = T120 @0 V15 L32 O5 Q16 ;
$A = @E1,0,0,127,0g1@E1,1,0,127,0 ;
$B1 = <erf#r erd#rerd#r f#rererer> ;
$B2 = a#rfr grg#rg#rgr fra#rgra#r ;
$C1 = r4. /:3 gr8. :/ r4. ;
$C2 = r4. /:3 rr8. :/ r4. ;
$D = /:15 g64r64 :/ r1 ;
$E = g4r4 ;
$F1 = <<<cr1>>> ;
$F2 = rr1 ;

$Sin $A $B1 $C1 /: $D :/ /:5 g64r64 :/ $F1 $A $B1 $C1 /:3 $E :/ g8 $F1;
$Sin $A $B2 $C2 /: $D :/ /:5 g64r64 :/ $F2 $A $B2 $C2 /:3 $E :/ g8 $F2;


電話の音をシミュレートしてみた。

まずはトーン音に使われているピッチを調べると、

DTMF - Wikipedia

http://ja.wikipedia.org/wiki/DTMF


DTMFの規格


規格としては、ITU-T勧告Q.24などで規定されている。

DTMFマトリックス 引用者一部抜粋

Hz120913361477
697123
770456
852789
941 *0#

次に各音程ピッチを調べると、孫引きですが以下の通り。

Tone Research page

http://www.image.esys.tsukuba.ac.jp/~murayama/hobby/tone1.html


十二平均律の基本周波数

単位はHz、理科年表より抜粋)引用mmlに合わせて記法変更

音階O1O2O3O4O5O6
C32.70365.406130.81261.63523.251046.5
C#34.64869.296138.59277.18554.371108.7
D36.70873.416146.83293.66587.331174.7
D#38.89177.782155.56311.13622.251244.5
E41.20382.407164.81329.63659.261318.5
F43.65487.307174.61349.23698.461396.9
F#46.24992.499185.00369.99739.991480.0
G48.99997.999196.00392.00783.991568.0
G#51.913103.83207.65415.30830.611661.2
A55.000110.00220.00440.00880.001760.0
A#58.270116.54233.08466.16932.331864.7
B61.735123.47246.94493.88987.771975.5

(国際基準に基づく十二平均律音階。c4 、c5音階は省略)

近似的には

0=O5A#+O6E

1=O5F+O6D#

2=O5F+O6E

3=O5F+O6F#

4=O5G+O6D#

5=O5G+O6E

6=O5G+O6F#

7=O5G#+O6D#

8=O5G#+O6E

9=O5G#+O6F#

としておきます。

かなり違うけど今は細かいピッチは付けられないからね。

将来的にはディチューンでもう少し調整できるかも。


後は手近な電話番号を見つけて、

はてな 会社概要

http://www.hatena.ne.jp/company/

03-5784-3050

代入するだけ。


何も番号を押してない時の「ツー」の音程だけど、

耳で聞き比べた感じ、GとG#の間くらいのピッチに聞こえました。

少なくとも私の自宅電話の「ツー」はmmlで鳴らすGよりは高いっぽい。

2007-10-23 MMLの勉強5 このエントリーを含むブックマーク このエントリーのブックマークコメント

前に作成した分(→http://d.hatena.ne.jp/sho_taro_123/20071011)の不具合

どうやら、マクロが導入された際の調整で何か問題があったせいらしいという事が分かりました。

言語として完全に完成されていないうちは、

細かい部分で永遠に全く同じように鳴るとは限らないところが、

なんというかデジタルっぽくないですね。今後も出てきそうな問題点です。


マクロに対応したバージョンで作成しなおしてみました。

マクロを使うとなんかすっきりして嬉しい。


$T = T195 ;

$melo1 = $T @3 L8 O6 V10 @E1,0,20,0,1 ;
$int1 = ee4e4ce4g1 ;
$A1 = /: c4.>g4.e4.a4b4a+a4g6<e6g6a4fg4e4cd>b4.< :/ ;
$B1 = /: r4gf+fd+4e4>g+a<c4>a<cd4. / gf+fd+4e4<c4cc2> :/ d+4.d4.c1 ;
$C1 = /: cc4c4cd4ec4>ag2< / cc4c4cde1r :/ $int1 ;
$D1 = /: ec4>g4.g+4a<f4f>a2 / b6<a6a6a6g6f6ec4>ag2< :/ b<f4ff6e6d6c1 ;

$hamo2 = $T @3 L8 O5 V8 @E1,0,20,0,1 ;
$int2 = f+f+4f+4f+f+4b2g2 ;
$A2 = /: e4.c4.>g4.<c4d4c+c4c6g6b6<c4>ab4a4efd4. :/ ;
$B2 = < /: r4ed+d>b4<c4>efg4cef4. / <ed+d>b4<c4f4ff2 :/ g+4.f4.e1 ;
$C2 = /: g+g+4g+4g+a+4ge4ec2 / g+g+4g+4g+a+g1r :/ $int2 ;
$D2 = /: <c>a4e4.e4f<c4c>f2 / g6<f6f6f6e6d6c>a4fe2 :/ g<d4dd6c6>b6ge4ec2 ;

$bass3 = $T @2 L8 O4 V15 Q15 @E1,1,0,127,1 ;
$int3 = ddrdrddr<gr4.>gr4. ;
$A3 = /: gr4er4cr4frgrg-fre6<c6e6frdercr>abgr4 :/ ;
$B3 = /: cr4gr4<cr>fr4<ccr>frc / r4er4g<cr<grggr>>gr :/ rg+r4a+r4<cr4>ggrcr ;
$C3 = > /: g+r4<d+r4g+rgr4cr4>gr / g+r4<d+r4g+rgr4cr4>gr :/ <$int3 ;
$D3 = /: cr4f+gr<cr>frfr<cc>fr / dr4fgrbrgrgr<cc>gr :/ gr4gg6a6b6<cr>grcr4. ;

$HH = V4 @n64 @E1,0,18,0,1 ;
$BD = V10 @n120 @E1,0,18,0,1;
$CC = V4 @n0 @E1,0,64,0,10 ;
$drum4 = $T @4 L8 Q6 $HH ;
$int4 = crc16r16crc16r16crcr4crc16r16c16r16c16r16 ;
$A4 = /:8 $BDc16r8.$HHc12r12c12$CCcr$HHc12r12c12 :/ ;
$B4 = $A4 ;
$C4 = /:4 $int4 :/ ;
$D4 = /:8 c16r16r4c16r16$CCcr$HHc16r8. :/ ;


$melo1 $int1 /:2 $A1 /: $B1 :/ $C1 $A1 /: $D1 :/ $C1 $D1 :/ ;
$hamo2 $int2 /:2 $A2 /: $B2 :/ $C2 $A2 /: $D2 :/ $C2 $D2 :/ ;
$bass3 $int3 /:2 $A3 /: $B3 :/ $C3 $A3 /: $D3 :/ $C3 $D3 :/ ;
$drum4 $int4 /:2 $A4 /: $B4 :/ $C4 $A4 /: $D4 :/ $C4 $D4 :/ ;