bonar note

京都のエンジニア bonar の技術的なことや技術的でない日常のブログです。

Music::Phrase::MMLGenerator を CodeRepos で公開しました。

前回のエントリで書いた App::Randomizr はあまりのnamespaceセンスの無さに、尊敬する perl hacher 数名から「これはない」的助言を頂き、装いも新たに Music::Phrase::MMLGenerator として若干実装を換えつつ書き直しました。基本的には曲の一部分のフレーズをゆるい指定で半自動生成するモジュールです。ソースは CodeRepos にあがっています。

lang/perl/Music-Phrase-MMLGenerator
http://coderepos.org/share/browser/lang/perl/Music-Phrase-MMLGenerator

コマンドラインスクリプトの引数とかも変更しました。

MAKE_PHRASE(1)        User Contributed Perl Documentation       MAKE_PHRASE(1)



NAME
         make_phrase.pl

USAGE
         perl make_phrase.pl [−−tempo|−−octav|−−inst|−help|−play|−m] <block expression>

         ex)
         perl make_phrase.pl −−inst=37 −−tempo=90 −−octav=1,2 −midi 
             "A:1000100101000100,G:1000100101000100,E:1000100101000100,A:1000100101000100";

OPTIONS
         sound setting:

         tempo  − tempo
         octav  − octav (comma seperated, ex: 3,4,5)
         inst   − instrument code (40=violin)

         (experimental) bubble − bubble step (4 or 7)

         other options:

         help  − print instrument code list
         midi  − create midi file with pmml
         play  − play generated midi with QuickTime (Mac OS X only)
                 make_phrase creates midi file when you use −play.

まだ最初のcommitなのでかなり完成度低いですが、とりあえずpmmlの力を借りてなんとか動くってレベルです。これからは

  • pmmlの外部コマンドだけでなく、Perl module (MIDI-Perl? 自作?) でのmidi作成/再生を行う
  • 休符への対応。コード進行バリエーションの拡大
  • もっと面白いアルゴリズムがないか考える

ってあたりを中心に攻めていきたいなと思っております。興味のあるかたはガンガンcommitしていただけると嬉しいです。
とはいえ、PMMLのインストールから始めないといけないので今はまだかなりつらいですね。。

それにしてもCodeRepos面白いですね(id:yappoさんアカウント追加ありがとうございます!)。なんかこうしてプロジェクトがリスティングしてあると、見ちゃいますね。集まってる人のレベルが高くてすごいなあと思う一方、良い機会なのでいろんな人のソースを読んで勉強しようと思います。