とっても簡単にかいたつもりの仕様
mml ファイルの頭に、以下のようなものを付け加える。
(TiMidiTy++用を想定)
//
// sakurabgm 定義
//
Int LOOP=3 //sakurabgm:ループ数の指定,MIN=1,DEFAULT=3,MIN=999
Tempo 100 //sakurabgm:曲の速さ,MIN=60=遅い,DEFAULT=100=標準,MAX=160,速い
Key (0) //sakurabgm:調性,MIN=-12,低い,DEFAULT=0=標準,MAX=12=高い
Int NODTM=1 //sakurabgm:演奏の自然さ,MIN=0=DTM,DEFAULT=1=標準(上手),MAX=3=へたくそ
Str NAME={"春のそよ風に"}
Str AUTHOR={"なの"}
Str TIMIDITYCFG={"1-WithPiccoro.cfg=ピッコロとクラリネット,1-WithoutPiccoro.wav=バイオリン"}
Str COMMENT={"レビュー商品として、相場価格15万円~17万円の商品が当選してしまった?\\nあまりの驚きに、全てのレビュー曲を自分で作曲してしまおうという試みから\\n初めて、作ってみた第1弾の曲です。"}
Str LICENSE={"CC BY-SA"}
Str GENRE={"POP"}
Str LICENSEURL={"
http://creativecommons.org/licenses/by-sa/2.1/jp/"}
Str URL={"
http://club.coneco.net/user/41992/review/119458/"}
Str SAKURAURL={"
http://oto.chu.jp/mmlbbs6/post.php?mml_id=1215"}
Str CHORD={"F"}
■注意事項
テンポが動的に変わる場合、直接数値を指定せず、演算で行なわないといけない。
100から90に変わる場合、Tempo=Tempo-10
調性を指定する Key は、sakurabgm定義では
Key(半角スペース)(0)であること
それ以外の部分では、 Key(0)のようにスペースなしにしなくてはならない
ドラムパートやエフェクト等、ピッチを変えてはならないものは、MMLの最後に記述し
Key(0) を定義しないとならない
Includeのうち、サクラ標準に存在する物は、置き換えて使用してはならない。
可変ループ数で演奏をするため、以下の関数を用いて演奏させなければならない
Function LoopPlay(Str Mml, Int count) {
Str _MML
For (Int i = 1; i < LOOP + count; i++) {
_MML=_MML + #STR(Mml)
}
_MML
}
例:
トラック 1;
LoopPlay("cdefg")
#strtest={ドレミファソラシド}
トラック2;
LoopPlay(#strtest)
p.s.TWM2が、録音デバイスを経由せず、単なるWAVへのコンバーターとなれば、利用幅が広がるのだが。。。