2015年10月19日月曜日

abcm2ps で日本語タイトルの楽譜を作る (Windows編)

abcm2ps というのは私が愛用しているフリーの楽譜作成ソフトです。

ここでは詳しく説明しませんが、気になる方は、たとえば、

http://lang.x0.com/music/abc.htm
http://mahoroba.logical-arts.jp/category/dtm-daw/abc-notation

このへんなど見ていただけるといいかと思います。

ABC言語という楽譜記述用の言語で楽譜情報を入力して、abcm2ps でコンパイルしてやると楽譜が生成されるというなんともとっつきにくいソフトウェアなのですが、表現記号を抜いた音符の打ち込みだけなら、(慣れれば)かなり高速に行えるので重宝しているのです。

ただし、難点はタイトルなどに日本語(っていうか2バイト文字コード)が使えないこと。

…だったのですが、Ver.6.x.x から、UTF-8 が文字コードとして使えるようになり、日本語も使えるようになりました。とはいうものの、設定がかなり大変だったのでメモしておきます。

ここでは Windows7 で確認した方法を記載します。

ちなみに、ここで紹介する設定方法を確立してから知ったのですが、
http://mahoroba.logical-arts.jp/archives/1897
ps ファイルではなく、svg ファイルとして出力してやると、ここで紹介するようなややこしい設定をしなくても日本語で楽譜が出力できるようです(もっと早く知りたかった…)
でもいいんです、ps ファイルで出力したい方はこちらの方法を試してみてください。

とりあえず、GhostScript を日本語対応にしておく必要があるみたいです。じゃないと見れないので。
で、それについては GhostScript のインストール時に
Use Windows TrueType fonts for Chinese, Japanese and Korean
って項目にチェックを入れておくだけでいいらしい。バージョンいくつからそんなに便利になったかわからないけど、少なくとも最新版ならそんな感じ。これで自動的に cidfmap(デフォルトなら C:\gs\gs9.02\lib\cidfmap)にある程度のフォントが登録されますが、使いたいフォントが登録されていない場合は追加の必要があるようです。

MSゴシックが以下のように登録されていたので、

/MS-Gothic << /CSI [(Japan1) 3] /Path (C:/WINDOWS/fonts/msgothic.ttc) /FileType /TrueType /SubfontID 0 >> ; 

これを参考にして、FA丸ゴシックを追加してみたのがこんな感じ。

/FA-MARU-Gothic << /CSI [(Japan1) 3] /Path (C:/WINDOWS/fonts/fanrgo5.ttf) /FileType /TrueType /SubfontID 0 >> ; 

"FA-MARU-Gothic" 部分はフォント名で任意、C:/WINDOWS/fonts/fanrgo5.ttf はフォントファイルのパス。1ファイルに複数のフォントが入っている場合、"/SubfontID 0" の "0" 部分を変更する必要があるようです。他の部分はまだ詳細不明。 

GhostScript はそんなもんで、あとは ABCファイル側。だいたい以下のような感じで各部分のフォントを指定。 

%%beginps 
/FA-MARU-Gothic-UTF8-H /UniJIS-UTF8-H [ /FA-MARU-Gothic ] composefont pop 
%%endps 
%%font FA-MARU-Gothic-UTF8-H native 
%%titlefont FA-MARU-Gothic-UTF8-H native 32 
%%subtitlefont FA-MARU-Gothic-UTF8-H native 18 
%%composerfont FA-MARU-Gothic-UTF8-H native 12
%%footerfont FA-MARU-Gothic-UTF8-H native 11 
%%textfont FA-MARU-Gothic-UTF8-H native 16 
%%vocalfont FA-MARU-Gothic-UTF8-H native 13 
%%wordsfont FA-MARU-Gothic-UTF8-H native 16 

/FA-MARU-Gothic-UTF8-H ~ の行は使うフォントの指定らしいけどよくわからず。PostScript の文法が分からないとだめかな…。

分かるのは "/FA-MARU-Gothic" 部分は cidfmap で行の最初に記載したフォント名に対応してなきゃいけないってことくらい。 

で、 %%font 行以降の "FA-MARU-Gothic-UTF8-H" 部分は "/FA-MARU-Gothic-UTF8-H ~" 行の先頭に合わせる、と。native はよく分からなくて、その後の数字は文字の大きさなのでお好みで。 

分かったことはその程度。実用的にはこれで漢字表記のタイトルが出力されました。 

この方法でできた楽譜は こちら で公開しています。

あと、Linux でも試してみました。それについては 次のエントリ で、、

0 件のコメント:

コメントを投稿