楽譜生成プログラムabcm2ps,midi2abc

年越しに向けて,日記に書こうと思っていたブラウザタブを消化するエントリ.
きれいな楽譜を作ってくれるフリーソフトってあんまりないよねという話.楽譜形式で入力できるタイプはあるけど印刷できる品質で出力できるフリーソフトは知らない.Finale Notepadみたいに音符の入力はできるけど,midiを読み込んで楽譜に変換できないというのが多い気がする.

僕がやりたいのは基本的にリコーダー用にメロディラインを楽譜にするだけなんだけど,やはり入力はピアノロールor数値入力でやってmidiに残したい*1.欲しいのは楽譜であってmidiではないんだけど,こういう風に入力すると多くの場合,標準の出力ファイルはmidiになる.結局midiから楽譜に変換するという機能が必要になる.

まず見つけたのはABCという楽譜を記述するためのスクリプト言語みたいなもの.スクリプト言語というとエェーっと思うかもしれないが,これは後で自動化できるので大丈夫.下の楽譜配布サイトで見つけたけど,かなり高品質な楽譜を作ることができる.
abcm2ps の導入と使い方/やってみよう文字楽譜
このようなテキストを書いてこれをabcm2psというツールに通すとPostScript形式の画像に変換してくれる.これも他のソフトを使うとPDFに変換することができる.(最初に準備するものが結構多い…)

C/F/ F>G | A/c/ f/d/ c | d/F/ F G | A2 z |
A/d/ c>d | f/d/ c/d/ c/A/ | c/A/ F/A/ G/F/ | F2 z |]

こんな感じになる.ベクトル画像なのですごくきれい.

これでとりあえずABC言語からきれいな楽譜を作ることができるんだけど,いちいちABC言語を書くのもわずらわしい.midiがそもそも楽譜データのようなものなんだから,midi→ABC→ps形式まで一気にやってくれるソフトが…あった.

関連ツールは基本的に下のサイトで手に入る.
The ABC Plus project

  • abcm2ps binaries (abcm2ps-***-win32.zip)
  • abcMIDI binaries ( abcMIDI-***-win32.zip)

でもこれはコマンドラインツールなので

abcm2ps.exe -O= aka-tombo.abc

みたいなコマンドを打たなくちゃいけない.微調整がしたいときはオプション付きでいろいろやった方がいいんだろうけど,簡単にすませたい場合はやっぱりGUIが欲しい.GUIは下のサイトからダウンロード.→runabc.exe

runabcの設定〜実行ファイルの指定〜

これを起動したらまずはabcm2psやabcMIDIの実行ファイルの位置を指定する.スパナアイコンの「Options→abc executables」をクリックして,それぞれのソフトを指定する.abcm2psの実行ファイル(abcm2ps.exe)とabcmidiのフォルダを指定してやれば良い.ps形式の画像を見るためにはghostview(GSView)というソフトが必要なのでこれもダウンロードする.下のリンクを見ればわかるとおりこれでPDFにも変換できる.
GSView(Postscriptファイルを表示・PDF変換) インストール ガイド

runabcの設定〜abcコンパイラの設定〜

ABCのテキストを楽譜に変換するソフトの元祖はabc2psで他にもいくつかあるみたいだけど,ここではabcm2psを指定する.そのまんま「abc2ps」と書いてあるボタンをクリックして,「ps converter→abcm2ps」にする.

さらに,「abcm2ps」ボタンをクリックして「format」を押すと出力するpsファイルの形式を指定することができる.デフォルトだと変な出力になっていたのでこれを「pretty1」にする.これでA4用紙にちゃんと収まる.

runabcの実行〜midiからpsファイル出力〜

歯車アイコンをクリックして「midi2abc」をクリックしてようやく変換の画面へ.ここに書いてある設定は僕もまだあまり理解していないけど,とりあえず入力するmidiファイルを選んでmidi2abcをクリックするとABCファイルが生成される.

さらに,「display」をクリックするとABCファイルからpsファイルを生成して自動的にGSViewで表示してくれる(もちろんGSViewのパスの設定は必要).最後にGSViewでPDFに変換すれば楽譜の完成となる.
「channel」をクリックして,すべてのトラックを楽譜にするか特定のトラックだけを楽譜にするかを選択することができる.複数個のトラックを任意に選択することはできないみたいだ.

以上で説明終わり.初めは結構手間がかかるけど,いったん設定すれば簡単にmidiから楽譜にすることができる.ただし,複雑な楽譜になるとかなりひどいことになってしまうので一つのトラックの楽譜生成に使うのが無難だと思う.そのままだと一小節ごとの幅がころころ変わってしまうのもいただけない.midiからABCにした時点でABCスクリプトを直接いじればいいんだろうけど,それだとあまり意味がない.

ABC言語の仕様と設定はもう少し調べてみようと思う.ちなみに,上にあげたabcm2psは現在でも頻繁にバージョンアップされているし,関連ツールの開発もいろんな人がやっているみたいなのでそれなりにメジャーっぽい気がする.

ググってみたらこんな感じ.[abcm2ps]

  • 日本:674件
  • ウェブ全体:51,100件

まぁ,気が向いたら使ってみてね.

あと,似たようなものにMusiXTeXなんてのもある.日頃からTeX野郎な人にはこっちの方がいいかもしれない.
Klavis.info

*1:楽譜形式の入力は相当ショートカットキーが充実していないと使いづらい