FlMML(はてなダイアリーの MML)に,暫定的に対応

MML to MP3 with ぼーか郎で,暫定的にではありますが,
FlMMLはてなダイアリーの MML)も受け付けられるようにしました.
[MML を直接書く] の下のラジオボタン選択してください.

はてなダイアリーで日記に載せられている MML が,MML to MP3 with ぼーか郎でも,なんとなくそれっぽく鳴ります.
鳴らないのも,まだかなりあります.

次の MML は,なんとなくそれっぽく鳴らすことができました.

http://d.hatena.ne.jp/marujx/20071011
http://d.hatena.ne.jp/marujx/20071014
http://d.hatena.ne.jp/hatenadiary/20071011/1192086766
http://d.hatena.ne.jp/spacecadet/20071017#1192623864
http://d.hatena.ne.jp/spacecadet/20071115#1195139400
http://d.hatena.ne.jp/solipt/20071017/1192561180
http://d.hatena.ne.jp/hatenadiary/20071012/1192132958
http://d.hatena.ne.jp/moetsukiro/20071012/1192193829

ただ,いまのところ,次の MML はうまく鳴りません.

× マクロを含む MML
△ ノイズを活用する MML
△ ボリューム変更を活用する MML

ボリュームについては,現在は,単純にスケーリングを調整しているだけなのですが,変換式を見直すことで,対応できるかもしれません.
(後日追記:単純に,デフォルト音量値を設定すればいいだけの気もしてきた(^^;))

ループ記述は,一応,処理しているつもりですが,若干へんなことが起こるかもしれません.

フォルマント・フィルタは,サンプリング音源でカバーします.つまり,ぼーか郎でカバーします.
したがって,

http://sketch.txt-nifty.com/blog/2007/10/flmml_3966.html

に挙がっている母音 @'a', @'i', @'u', @'e', @'o' 以外の音節も歌わせることができます.
つまり,@'ru' などが使えます.
使用できる音節は,

http://noike.info/~kenzi/cgi-bin/mml2mp3/doc/utau_mml.html#prgno_syllable_table

の表2のとおりです.


ごく簡易的な FlMML to MP3, SMF, WAV, AIFF 変換ツールとして使えるかもしれません.
でも,まだ,不完全です.
とりあえず,鳴り始めたので,公開してみました.

--

ぼーか郎 MML サンプル -- 「よ~ろれいっひー」
http://cancoffee2.at.webry.info/200711/article_27.html

ぼーか郎 MML サンプル -- 息継ぎのエミュレート
http://cancoffee2.at.webry.info/200711/article_18.html

ぼーか郎 MML サンプル -- 「謎」っぽいもの
http://cancoffee2.at.webry.info/200711/article_17.html

もっと手軽に「ぼーか郎」
http://cancoffee2.at.webry.info/200711/article_15.html

VOCALOID モドキ「ぼーか郎」を作ってみる -- 第4報 --
http://cancoffee2.at.webry.info/200711/article_14.html

VOCALOID MIDI 形式
http://cancoffee2.at.webry.info/200711/article_8.html

VOCALOID モドキ「ぼーか郎」を作ってみる -- 第3報 --
http://cancoffee2.at.webry.info/200711/article_7.html

VOCALOID モドキに,しゃべらせてみる
http://cancoffee2.at.webry.info/200710/article_3.html

VOCALOID モドキに名前をつける
http://cancoffee2.at.webry.info/200710/article_2.html

VOCALOID モドキを作ってみる -- 第2報 --
http://cancoffee2.at.webry.info/200710/article_1.html

VOCALOID モドキを作ってみる -- 第1報 --
http://cancoffee2.at.webry.info/200709/article_27.html

この記事へのコメント

2007年12月09日 05:18
うーん.MML レベルで変換するというこのアプローチは,FlMMLのマクロ展開を mml2midのマクロ展開に変換するのが,とーっても面倒だー.
FlMML のソースを取ってきて,中間形式を拝借したほうが,楽なのかも?
2007年12月09日 14:16
FlMML は,"ループ回数 999" とかも演奏できているから逐次処理をしているっぽい.
結論を出してから演奏する方式じゃないので,これは,本質的に完全に変換するのは無理だな.(不可能ではなく,無理).
適当な妥協点で打ち切らないと,変換できない.
2007年12月10日 02:14
おおーこれは!
さっそくやってみようかと思ったけど自作のMMLがほとんどないことに気がつきました(^^;

FlMMLのループとかマクロ展開は、プリプロセスの段階でガッツリ文字列置換してるだけなので、999回ループだと999倍のシーケンスデータになっちゃう悲しい仕様だったりします。
まあ利点もあるんですけどね。
2007年12月10日 19:54
FlMML の作者さんだっ!
おーさん,コメントをありがとうございます.

> さっそくやってみようかと思ったけど自作のMMLがほとんどないことに気がつきました(^^;

あら(^^;).
かくいう私もあまり手持ちがないです.
ツールの作者は,えてしてデータの手持ちがあまりないものなのかもしれませんね.

マクロ展開はまだですが,ループは MML 書式を変換して,展開を mml2mid にまかせてしまっています.
そうすると結果として,演奏時間"数時間"という長大な SMF ができあがるときがありまして(^^;),WAV に変換するのが現実的な時間で終わらないのです.
現在は,生成した SMF の演奏時間を調べて,5 分を超えるようなら,それ以降の演奏情報を削除するようにして対処しています.
("斬捨て御免" 状態です.)

FlMML はその場で演奏するので,長大な演奏時間の大作も演奏できる可能性があるのが利点ですね.

今後もよろしくお願いしまーす.
2007年12月10日 20:26
トラックごとに異なる MIDI チャネルを設定するのを忘れていたり,FlMML と mml2mid の MML の差異について勘違いしていたりしたのを直しました.
昨日よりもだいぶ聴けるようになったと思います.

あとは,マクロ定義と展開の書式変換ができれば,かなりのはてなダイアリーMML が聴けるようになりそうです.