2015年10月24日土曜日

raspberry pi 1 と 2

以前買ってしばらく遊んだあと放置されていた raspberry pi は、とうとうファイルサーバとして常時稼働するというお仕事を与えられた。楽譜作成環境でもある。

そうすると、ただ遊ぶための raspi がいなくなってしまった。

というわけで、そろそろ見てみぬふりをしていた raspberry pi 2 を買う時期ということかな。。

2015年10月20日火曜日

Windows8 で壁紙を変更するプログラム(C#)

Windows7 から自作の壁紙チェンジャーを使ってるんだけど、Windows8 で動かなかった。

壁紙の変更には Win32API の

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, [ファイルパス], [フラグ])

これを使ってて、どう調べてみても Windows8 からこれが使えなくなったという話はない。

戻り値も正常だし、でも壁紙は変わらない。

で、なにが問題だったかというと、ファイルパス。

元々、カレントディレクトリにあるファイルを指定してたのでファイルパスのところにはファイル名だけを指定してたんだけど、Windows7 だとそれでいいのに、Windows8 だとカレントディレクトリにあるファイルでもフルパスで指定する必要があるみたい。

フルパスで指定したら動いたんで詳しくは調べてないんだけど、この辺、仕様が変わったりしたのかな?

Windows7 で動いてたのがむしろたまたまなのかもしれないけど。。

2015年10月19日月曜日

Raspberry Pi を楽譜作成マシンにする

前回のエントリ で Windows 環境の abcm2ps に日本語タイトルをつける方法を紹介しましたが、同じ方法を Linux でやってみてもなかなかうまくいきませんでした。

それがこの度ようやくうまくいったので Linux 環境の abcm2ps で日本語を通す方法のご紹介です。

Linux といっても、今回は Raspberry Pi を使ってやってみました。これで、Raspi ひとつあればどこでも楽譜が作れるというすばらしい環境が作れます。

とりあえず、abcm2ps のインストール

> sudo apt-get install abcm2ps

apt-get でインストールできちゃうんだな。。ちょっとびっくり。。

続いて、日本語フォントも必要です。今回は IPAフォントを使ってみます。というわけで、IPAフォントのインストール

> sudo apt-get install otf-ipafont

そして、ghostscript のフォント設定。
/etc/ghostscript/cidfmap.d/ にフォント情報を追加します。

/etc/ghostscript/cidfmap.d/ 配下に 10local.conf みたいなファイル(たぶんファイル名は任意)を作って、、

ファイルの内容は、IPA Pゴシックなら

/IPA-PGothic << /FileType /TrueType /Path (/usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf) /CSI [(Japan1) 6] >> ;

こんな感じ。

他の例として、東風ゴシックならこう

/Kochi-Gothic << /FileType /TrueType /Path (/usr/share/fonts/truetype/kochi/kochi-gothic.ttf) /CSI [(Japan1) 6] >> ;

そして、/etc/ghostscript/cidfmap.d/ を変更したときに、フォントマップの更新を忘れずに。。(これ忘れててかなりハマった)

> update-gsfontmap

abc ファイルの方は Windows と同じ。

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

こんな感じの記述をしておけば、この場合、それぞれが IPA Pゴシックフォントで表示されます。

これを別ファイルにしておいて、

%%format [ファイル名]

みたいにすればファイルのインクルードができるので、全部の abc ファイルにこれをいちいち書くよりは楽かも。ちなみに別ファイルにしてインクルードするときはインクルードされるファイルの %% は不要みたいです。

ようするに、別ファイルにする内容は

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

こんな感じになります。

これで、Raspi ひとつで(日本語で)楽譜作り放題の環境のできあがり。

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 でも試してみました。それについては 次のエントリ で、、