プログラミング > MML楽譜変換

Twitterとかでちょっとしたフレーズをうpしたい、
けれど五線紙なんて手元にないしペイントで作ってられないし
MIDIシーケンサとかあるけどスクショから画像つくるのも面倒臭いし…
という一部の人(含:私)のニーズにこたえるプログラムを組みたい。

仕様

  • オンラインで動作する  twitterと連携したいから、オンラインで動くとみんな使えてハッピー。
  • 画像は保存できる  せっかくだからフレーズメモとして保存しておけるとハッピー。
  • 作ったデータは即消去される  サーバへの負担とか、著作権的ななにかも回避できるとハッピー。

コマンド

  • テンポ  「t120」とか打てばその楽譜上そのタイミングに「♩=120」とかでてくるイメージ。
  • オクターブ  「o3」と打つとト音記号が出てくる。
     「o2」と打つとヘ音記号が出てくる。
     「o+」と打つと上に「8va...」みたいなのが出てくる。
     「o-」と打つと下に「8va...」みたいなのが出てくる。
  • 拍  「q3/4」とか打てば五線譜上に「3/4」の拍数が出てくるイメージ。
  • 調  「k5」とか打つと五線譜上最初に「#####」と出てくるイメージ。
  • 音符、休符  「cdefgab」でドレミファソラシの音符配置。「r」で休符。
  • 音長  「l(小文字のL)8」でデフォルトの音の長さを8分音符にする。
     音符や休符の直後に数字でその音符だけ長さを指定する。
     「c12」とか打つと4拍を12分割した音符=3連四分音符。
  • 臨時記号(#、♭、♮)  「c+」とか「g-」で#と♭を。「c++」で全音上げるか?
     「c=」で♮にしておく。
  • 小節区切り、演奏記号(ループ|:~:|)  「|(縦棒)」で小節の縦線。直後に拍コマンドとかテンポとか打てばいい感じ。
     「|:」はループ範囲の開始線、「:|」はループ範囲の終了線。
  • タイ、スラー  「&」を二つの音符の間に挟むと、記号の左右の音符をつなぐように括弧がでてくるイメージ。
  • グルーピング  「(」と「)」でフレーズをグルーピングできるイメージ。楽譜上の効果は特にない。
     二つのパートを並べたい時(メインメロの上パート、下パート)とか使用できる予定。
  • 和音(重ね合わせ)  「{」と「}」のペアで同時に鳴らす音符とかを指定する。
     「{ceg}」でデフォルト音長でドミソを配置。
     グルーピングされたフレーズも配置できる。
     このばあいグループのフレーズ長は同じでないといけない。
     「{(l8cc)(e4)(g4)}」でドが八分、ミとソが四分の和音。

実装というか動作というか

ほとんど書いたコマンドの並びで出てくるのでアセンブラと一緒。
変な順番で並べれば変な順番の通りに楽譜に変換される。察してはくれない。

  • 基本のオクターブと楽譜の記号  何も指定しないで書き始めるとト音記号の譜面になる。
     縦線の直後にオクターブ指定「|o3k-1」とか指定すると自然な譜面になりそう。
  • 画像の作り方  音符とかフォントにまとめてテキスト描画で描画するか
     透明度付きPNGをぺたぺた合成して描画するか
     それは実装時の気分次第。
最終更新:2015年08月29日 20:40
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。