2009年12月アーカイブ

現存するMMLコンパイラについて

mugeneは、MML(Music Macro Language)コンパイラのオープンな実装のひとつ(といっても対象はmugene MMLという独自の形式で、標準的なMMLとはずいぶん違う)。

今のところ、軽く調べると以下の3つが簡単に見つかる:

  1. テキスト音楽サクラ
  2. PMML
  3. mugene

『テキスト音楽サクラ』なんかもなかなか優秀なエンジンを含んでいるけど、Delphi(言語としてはObject Pascal?)で書かれていて移植性に乏しい。PMMLのインストールについては昔ブログにまとめたが、PMMLはあまりにも標準的なMMLからかけ離れているのと、今後更新される予定がなさそうなのが問題。mugeneはC#なので、.NET Frameworkの動くWindowsではもちろん、Monoさえ動けばLinuxでも使える。

Monoのインストール

mugeneの前にMonoをインストール。Fedoraならyumで入ります:

$ sudo yum install mono-core mono-devel

入手とインストール

mugeneはgithubで公開されてます:

atsushieno's mugene at master - GitHub

ので、githubからcloneしてconfigureしてmakeしましょー:

$ cd ~/src
$ git clone git://github.com/atsushieno/mugene.git mugene
$ cd mugene
$ ./configure
$ make
$ sudo make install

なぜか make install に失敗することがある(cpがコケる)ので、その場合は以下のように手動でインストール:

$ mkdir -p /usr/local/lib/mugene
$ cp mugene/bin/Debug/mml/* /usr/local/lib/mugene
$ mkdir -p /usr/local/bin
$ cp mugene/bin/Debug/* /usr/local/bin

実行してみる

Github の mugene の wiki からサンプルをコピーしてコンパイルしてみる:

//----two slashes are used to indicate a comment line---
#meta title "Rhapsody in Blue (introduction)"
#meta copyright "George Gershwin (1898-1937)"
1 t140 @71 V110 o6 l4 a2.g8a8gagfedc+c2dd+e2c+

サンプルはなぜか二重引用符が2byte文字か何かになっている(Wikiの記法との衝突?何かしらのエスケープ手段でもないのかしら)ので、それだけ書き換える。

$ mugene test.mml

何かしらのmidiが吐かれ、何かしらのメロディーが聴こえればOK。

Subversionでのコンフリクト

Subversion 1.6以降だと、コンフリクトが2種類に拡張されているらしい:

  1. ファイルコンフリクト
  2. ツリーコンフリクト

ファイルコンフリクトは普通のやつで、よく知られているほう。同じファイルの同じ行が変更された場合に起きる。

ツリーコンフリクトというのは、ファイルの存在そのものについてのコンフリクト。以下の場合に起きる:

  • HEADでは削除されたファイルに対して、変更をコミットしようとした
  • HEADでは更新されているファイルに対して、削除してコミットしようとした

ファイルコンフリクトだけの時代にはこれは検出できなかったそうな。

ツリーコンフリクトの解消

なぜか解消方法があまりWebにないけど、手動で変更を適用したあとに svn resolve すればいいっぽい。

$ svn resolve --accept working conflicted_file

このアーカイブについて

このページには、2009年12月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2009年11月です。

次のアーカイブは2010年1月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.32-ja