Hatena::ブログ(Diary)

グニャラくんのグニャグニャ備忘録@はてな このページをアンテナに追加 RSSフィード

業務でお世話になっている業者

2008-09-03

MIDIファイルをはてなのメロディ記法やピコカキコに変換する(mid2flmml)

ニコニコ大百科MMLで音楽を投稿できるサービスを始めたはいいが、

MMLって難しいですよねー。

というわけで、MIDIからMMLへの変換をするソフトを作ってみた。


mid2mmlというソフトウェアがあるが、やはりFlMMLとは文法がちょっと違う。


こういうのを書くときにはPythonで。

各種ライブラリが充実しているし、

あとでWin32用のフロントエンドを付けたくなったときもすぐ出来るし。

PythonInMusic

今回は、midi.pyというパブリックドメインSMFパーサを使いました。


適当にドラえもんの魔境編中盤のnsfをnsf2midiして、それをmid2flmmlで変換してみた。

Ticks->n分音符の変換がやはり難しい。というか、割り切れてないからズレるのは当然だな。

全体を把握してのテンポ調整なんかをしないとダメだなー。

とはいえ、音階はちゃんと取れていていい感じ。

T30
@V127O4B68R160A68R160<E68R160>B34R80A68R160<E68R160>B68R160B68R160A68R160<E68R160>B34R80A68R160<E68R160>B68R160B68R160A68R160<F+68R160C+34R80>A68R160<F+68R160C+68R160>B68R160A68R160<F+68R160C+34R80>A68R160<F+68R160C+68R160>A68R160G68R160<D68R160>A34R80G68R160<D68R160>A68R160A68R160G68R160<D68R160>A34R80G68R160<D68R160>A68R160A68R160G68R160<E68R160>B34R80G68R160<E68R160>B68R160A68R160G68R160<E68R160>B34R80G68R160<E68R160>B68R160B68R160A68R160<E68R160>B34R80A68R160<E68R160>B68R160B68R160A68R160<E68R160>B34R80A68R160<E68R160>B68R160B68R160A68R160<F+68R160C+34R80>A68R160<F+68R160C+68R160>B68R160A68R160<F+68R160C+34R80>A68R160<F+68R160C+68R160>A68R160G68R160<D68R160>A34R80G68R160<D68R160>A68R160A68R160G68R160<D68R160>A34R80G68R160<D68R160>A68R160A68R160A68R160A68R160<A68R36A68R160E68R160>A68R160A68R160A68R160A68R160<A68R160A68R160E68R160>A68R40O6F+60R240E60R240F+60R240E60R21>B60R240<D60R240F+60R240E60R240F+60R240E60R21>B60R240<D60R240E60R240D60R240E60R240D60R21>A60R240<C60R240E60R240D60R240E60R240A60R240E60R240D60R240>A60R40<F+60R240E60R240F+60R240E60R21>B60R240<D60R240F+60R240E60R240F+60R240E60R21>B60R240<D60R240E60R240D60R240E60R240D60R21>A60R240<C60R240E60R240D60R240E60R240A60R240E60R240D60R240>A60
;

T30
@V127O4B68R160A68R160<E68R160>B34R80A68R160<E68R160>B68R160B68R160A68R160<E68R160>B34R80A68R160<E68R160>B68R160B68R160A68R160<F+68R160C+34R80>A68R160<F+68R160C+68R160>B68R160A68R160<F+68R160C+34R80>A68R160<F+68R160C+68R160>A68R160G68R160<D68R160>A34R80G68R160<D68R160>A68R160A68R160G68R160<D68R160>A34R80G68R160<D68R160>A68R160A68R160G68R160<E68R160>B34R80G68R160<E68R160>B68R160A68R160G68R160<E68R160>B34R80G68R160<E68R160>B160R68B68R160A68R160<E68R160>B34R80A68R160<E68R160>B68R160B68R160A68R160<E68R160>B34R80A68R160<E68R160>B68R160B68R160A68R160<F+68R160C+34R80>A68R160<F+68R160C+68R160>B68R160A68R160<F+68R160C+34R80>A68R160<F+68R160C+68R160>A68R160G68R160<D68R160>A34R80G68R160<D68R160>A68R160A68R160G68R160<D68R160>A34R80G68R160<D68R160>A68R160A68R160A68R160A68R160<A68R36A68R160E68R160>A68R160A68R160A68R160A68R160<A68R160A68R160E68R160>A68R68O6D60R240C60R240D60R240C60R21>G60R240B60R240<D60R240C60R240D60R240C60R21>G60R240B60R240<C60R240>A+60R240<C60R240>A+60R21F60R240A60R240<C60R240>A60R240<C60R240E60R240C60R240>A60R240F60R40<D60R240C60R240D60R240C60R21>G60R240B60R240<D60R240C60R240D60R240C60R21>G60R240B60R240<C60R240>A+60R240<C60R240>A+60R21F60R240A60R240<C60R240>A60R240<C60R240E60R240C60R240>A60R240F60
;

T30
@V90O5E32R96F+32R96G32R96B32R96<E16R48E32R96E32R96D+20R68>B60R240<D+20R68>B60R240<D+60R240E60R240F+60R240E60R240D+32R19>D32R96E32R96F32R96A32R96<D16R48D32R96E32R96C+20R68>A60R240<C+20R68>A60R240<C+32R96>B60R240<C+60R240>A32R19E32R96F+32R96G32R96B32R96<E16R48E32R96E32R96D+20R68>B60R240<D+20R68>B60R240<D+60R240E60R240F+60R240E60R240D+32R19>D32R96E32R96F32R96A32R96<D16R48D32R96E32R96C+60R240D60R240E20R68D60R240C+60R240>A60R240<C+60R240D60R240E60R240F+60R240E60R240D60R240C+60R40O4E60R240D60R240E60R240D60R240D60R240D60R240G60R240G60R240E60R240D60R240E60R240D60R240D60R240D60R240G60R240G60R240<D60R240C60R240D60R240C60R240C60R240C60R240>F60R240F60R240F60R240F60R240F60R240F60R240F60R240F60R240F60R240F60R240E60R240D60R240E60R240D60R240D60R240D60R240G60R240G60R240E60R240D60R240E60R240D60R240D60R240D60R240G60R240G60R240<D60R240C60R240D60R240C60R240C60R240C60R240>F60R240F60R240F60R240F60R240F60R240F60R240F60R240F60R240F60R240F60
;

いつものごとく完成度1割くらいでCodeReposに放りこんでおきました。

フロントエンドとかnsf/spc対応とかに期待したいところ。ぽこぺん。

にゃんにゃん 2008/09/08 10:09 懐かしい、ドラえもん。

tasukuchantasukuchan 2008/09/09 20:01 ドラえもん、ひさびさに実機でやりたい。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

Profile

tasukuchan

tasukuchan

グニャラくんが技術メモをそこはかとなく書きつくるところ

Comment
カウンター

あわせて読みたい

なかのひと