「サクラ」質問掲示板

サクラの質問掲示板です。
[一覧へ] > (@76) [低] [未処理]
@76■ (#245) 複数の曲を変数?で分ける方法。 - 素森 龍 (2013-11-07 19:52) /低 未処理
サクラ掲示板でよく見かける、
番号指定すれば、その指定した曲を聞くことが出来る記法を
試したいので他の人のmmlを覗いたのですが、
まだ、mmlの仕組みに慣れていないため、どれかわかりませんでした。
教えていただきたいのは、

番号指定の記法
それを指定する曲の入れ物(?)の記法。

の名前です。
すみません。^^;おねがいします。

(#246) ひな形を差し上げます。 - 矢部さん (2013-11-10 02:44) /低 未処理
/*
<考え方の大ざっぱな説明>
STRという文字列型の変数に、曲1つ分のソースをぶち込み、
INTという整数型で、鳴らさせたい曲の番号を選ばせる。
ソースの最後のSWITCH(HOGE)で、HOGEの中に、どの数が入っているかで分岐させる。
CやJavaやDelphiなどで使われている「型」という考えがわかると、何となくわかる予定。
どういうわけか、頭文字が大文字でないと、変数扱いしてくれません。
以下、ひな形です。ご自由に流用してください。
*/



//_得体の知れない設定(INT HOGE={0}の、数字を変更してください)。
INT HOGE=0
//_得体の知れない設定(繰り返す回数の設定)。
//~{くりかS}={[1}

/*
HOGEの数字を1にすると、AAが流れ、
2にすると、BBが流れる。
それ以外だと全部を順番どおりに。
そういう仕組みを、ソースの最後に仕込んである。
*/


//------------------------------------------------------------------------------
読む(gs.h);
読む(delay.h);



STR AA={
くりかS
ここ~に曲を1つ入~れる~♪
]
}

STR BB={
くりかS
ここ~にわ別の曲を1つ入~れる~♪
]
}


//_<強引に解決する何か>
//STR=ZZの中身は、音源リセット。
STR ZZ={
System.MeasureShift = 1;     //(弄らないこと)
r1 ResetGS; r4      //音源初期化命令
TrackSync;                   //全てのトラックを同期する


TR(1) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 @(1,0)
TR(2) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 @(1,0)
TR(3) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 @(1,0)
TR(4) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 @(1,0)
TR(5) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 @(1,0)
TR(6) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 @(1,0)
TR(7) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 @(1,0)
TR(8) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 @(1,0)
TR(9) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 @(1,0)
TR(10) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 音色(StandardSet)
TR(11) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 @(1,0)
TR(12) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 @(1,0)
TR(13) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 @(1,0)
TR(14) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 @(1,0)
TR(15) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 @(1,0)
TR(16) TrackKey(0) Key(0) REV(40) CHO(0) VAR(0) p%(0) EP(127) V(100) t(0) M(0) v127 @(1,0)
TR=10 GS_RHYTHM(1)
TR=11 GS_RHYTHM(2)
r4 TrackSync;
}


//_ここで鳴らす順番を書き込む。
//このひな形だと、ZZでリセットしてから曲を鳴らしてる。
//AAとかBBとか書いてるのは、MやPなどの1文字で働く命令とのかぶりを防ぐため。
SWITCH(HOGE){
CASE(1){ZZ AA}
CASE(2){ZZ BB}
DEFAULT{ZZ AA ZZ BB}
}

(#248) ありがとうございます(^^) - 素森 龍 (2013-11-10 21:53) /低 未処理
ご回答ありがとうございます。
使わせていただきます。

(#249) 追記 - 素森 龍 (2013-11-10 21:59) /低 未処理
ソースが必要だったんですか…。
ありがとうございます。勉強になりました。(^^)

(#245)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を平仮名で記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能