Music::Phrase::Generator
以前 coderepos に Music::Phrase::MMLGenerator というモジュールをあげたのですが、中の構成がちょっと変だなと思うところもあったり、pmmlという外部アプリケーションに依存していたりしていたので、MIDI/MIDI::Simple等のモジュールを使って書き直そうと思っています。
こんな感じで再構成して、
Music::Phrase::Generator Music::Phrase::Generator::Beat Music::Phrase::Generator::Code Music::Phrase::Generator::Unit Music::Phrase::Generator::TrackLine
こんな風に書けるようにしたい。
my $beat = Music::Phrase::Generator::Beat->new( [qw/4 0 0 0 4 0 0 0 4 0 4 0 4 0 4 0/]); my $code = Music::Phrase::Generator::Code->new('Am'); my $unit = Music::Phrase::Generator::Unit->new( beat => $beat, code => $code, ); my (@tracklines); push @tracklines, Music::Phrase::Generator::TrackLine->new( instrument => 80, base_volume => 65, ); $tracklines[0]->push($unit); Music::Phrase::Generator->generate( tempo => 150, tracklines => \@tracklines, filepath => 'hoge.midi', );
コード進行と打鍵タイミングを与えるというコンセプトは変えずに、前後の音の関係性(前の音からどれだけ離れるのを許容するか等)を指定できるようにすると面白いかなと思っています。この本を読んで勉強してます。
というのも、sweet vacation の remix コンテストがあるらしく、それに面白いファイルを出したいなと思って最近見返しています。最初のは勢いで書いたのもあり結構直したいところが盛りだくさんですね。。
MySpace.com - "Sexy Girl" リミックスコンテスト
http://www.myspace.com/sweetvacationremix
こういう催しがもっとたくさんあると楽しいですね。