【ABC記譜法】楽譜とMIDIを作成する手順

スポンサーリンク

それではいよいよ具体的にABC譜から楽譜やMIDIに変換する方法について解説していきましょう。ここではまずコマンドラインから実行する基本的な方法について述べた後、EasyABCを使った簡易的な方法について説明します。

前提として、【ABC記譜法】まずは環境作りから(コマンドライン編)で説明した準備ができているものとします。

1. コマンドラインからの実行方法

1. ABC譜を作成する

ABC譜は単純なテキストファイルなので、普通のテキストエディタで作成できます。Windows標準の「メモ帳」でも構いませんし、普段使っているお気に入りのエディタがあればそれを使って下さい。ただし、文字コードがUTF-8に対応していることが必要です。今どきUTF-8非対応のエディタはほとんどないと思いますが、念のため注意して下さい。

準備ができたら次のコードをコピペするなり、手打ちするなりして入力して下さい。今は操作の練習ですから中身まで理解する必要はありません。とりあえずこのまま写して下さい。


I:abc-charset utf-8
X:1
T:練習1
M:4/4
L:1/4
Q:1/4=100
K:C
%
CDEF | GABc | cBAG | FEDC |

入力できたら適当なファイル名を付けて保存して下さい。拡張子は”.abc”とします。ファイル名に日本語を使うと何かと面倒なことになるので、半角英数字とアンダーバーだけにするのが無難です。ここでは一応”exercise1.abc”として保存するものとします。このとき文字コードは必ずUTF-8として保存して下さい

また保存するフォルダもなるべく階層の浅いところで、日本語やスペースも使わないのが無難です。そうでないと後々面倒なことになります。たとえば”C:\abc”のような単純なフォルダ名がベストです。

2. abcm2psを実行する

ABC譜が作成できたら、いよいよ楽譜に変換してみます。まずコマンドプロンプトを立ち上げて、先ほど作成したABC譜のあるフォルダにカレントディレクトリを移動します。環境によって異なりますが、”C:\abc”に保存したとすると、コマンドラインから次のように入力すればOKです(’\’は本来¥マークですが、フォントの関係でバックスラッシュになってしまっています)。


> C:
> CD \abc

そして次にabcm2psを実行するコマンドを入力します。


> abcm2ps -v -O = exercise1.abc

ここで”-v”というオプションはSVGとして出力しなさいという意味、”-O”は本来出力先のファイル名を示しますが、ここでファイル名の代わりに”=”を指定するとABCファイルと同じファイル名で出力されるようになります。普通はそれで十分でしょう。ただしSVGの場合はページ分割があるので、出力されるページ数に応じて001, 002, 003,・・・のような3桁の連番が後ろにくっついた形になります。

最後の”exercise1.abc”は言うまでもなく入力ファイルを指定します。

最後にEnterキーを押すと実行されて、問題がなければ同じフォルダに”exercise1001.svg”というファイルができているはずです。元のファイル名にページ番号”001″がくっついたのでこうなったわけです。

もし何かエラーメッセージが表示されたらABCのコードが間違っている可能性がありますので、もう一度見直して下さい。

このSVGファイルはベクター形式のグラフィックですが、Webブラウザで表示することが可能です。IE9以降であればSVGに対応していますし、ChromeやFirefoxのようなメジャーなブラウザでもすべて対応しています。たぶんWindows7以降であれば”.svg”がIEに関連付けられているので、SVGファイルをダブルクリックすると自動的にIEが立ち上がると思いますが、”.svg”への関連付けを変更してやると普段使っているブラウザで閲覧することも可能です。

SVGをブラウザで表示させるとこんな感じになります。

exercise1
驚いたことに、日本語も普通に表示されてますね。先頭の”I:abc-charset utf-8″という行がミソなのですが、とにかくSVGで出力してやれば何の苦労もなく日本語を表示できるのです。

3. abc2midiを実行する

次にABC譜からMIDIファイルを作成してみましょう。今度はコマンドラインから次のように入力して下さい。

> abc2midi exercise1.abc -o exercise1.mid

ここで”-o”の後ろには出力先のファイル名を指定します。MIDIファイルの拡張子は”.mid”なので、元のABCファイルの拡張子を”.mid”に変えただけにするとわかりやすいでしょう。

問題なく実行できれば”exercise1.mid”ができているはずなので、それをダブルクリックするとメディアプレイヤーが起動してMIDIが再生されます。「ドレミファソラシド ドシラソファミレド」が聞こえましたか?

とりあえずコマンドラインから実行する方法はこれで終わりです。別に難しくはないでしょう?

2. EasyABCから作成する方法

1. ABC譜を作成する

基本的にコマンドラインの場合と同じですが、EasyABCの”ABC code”ペインに直接入力していきます。そのときコードが間違っていなければ右上の”Musical score”ペインにリアルタイムで楽譜が表示されていきますので、その場で確認ができて大変便利です。

ABC譜が作成できたらファイルに保存しておきます。メインメニューから”File→Save As”を選び、名前を付けてファイルを保存します。拡張子は自動的に”.abc”が付けられます。また先頭に”I:abc-charset utf-8″が入っていると自動的に文字コードをUTF-8として保存してくれます。何とEasyABCは初めから日本語に対応しているのです! 素晴らしいですね。

2. SVGを出力する

メインメニューから”File→Export selected→as SVG”と選択し、適当なファイル名を付けて保存するだけです。拡張子は自動的に”.svg”が付けられます。

EasyABC_svg

3. MIDIを出力する

メインメニューから”File→Export selected→as MIDI”と選択し、適当なファイル名を付けて保存するだけです。拡張子は自動的に”.mid”が付けられます。

EasyABC_midi

3. SVGからPDFに変換する方法

ここまででSVGの形で楽譜を作成する方法はわかりました。PCで閲覧するにはブラウザが一番便利ですから、普通はこれだけでも十分なはずです。ブラウザの印刷機能を利用すればプリントアウトも可能です。

実はabcm2psというツールはその名が示すように、もともとPS(PostScript)ファイルを出力するのが主目的でした。PSというのは一般にはなじみが薄いですが、デザインや印刷の分野では標準的なフォーマットであり、PSに対応したプリンタに入力すれば商業印刷のレベルで出力することが可能です。

しかしPCのユーザーにとって一番なじみが深いのはPDFでしょうから、PDFとして出力したいという要望は当然出てきます。そのためには従来、abcm2psでPSを生成した後、さらにGhostScriptやGhostViewのようなソフトを使ってPDFに変換するという手法をとっていました。つまりABC→PS→PDFという二段階でPDFを生成するわけです。

ところがこのPSというのは印刷用に特化された非常に複雑なフォーマットであり、日本語を通すことが相当に困難なのですね。一応できないことはないみたいですが、環境に依存する部分が多く、一筋縄ではいきません。それで自分も含めてほとんどの人がギブアップしていったのだと思います。

そこで目を付けたのがSVGなのです。上で実験しましたように、SVGで出力してやれば何の苦労もなく日本語が通ります。そしてSVGもベクター形式のグラフィックですから、そこからさらにPDFに変換することも可能です。つまりABC→SVG→PDFという二段階を経由すればPDF形式で日本語を含む楽譜の出力が可能になったわけです。

SVG→PDFの変換を行うツールはまたいろいろあるわけですが、ここでは一番簡単な方法として次の2つを紹介しておきます。

CubePDFを使う方法

CubePDFというのは仮想的なプリンタを実現する無料のソフトで、インストールしておくとテキストでも画像でも関係なく、印刷と同じイメージで何でもPDFとして出力することができます。

このソフトをあらかじめインストールしておき、ブラウザでSVGを表示させた状態で「印刷」メニューを実行し、プリンタの選択で「CubePDF」を選ぶとプリンタの代わりにCubePDFが立ち上がり、PDFとして出力することができます。

Inkscapeを使う方法

Inkscapeというのはフリーのベクター画像編集ソフトウェアで、Adobe Illustratorに匹敵するような非常に高機能なソフトです。このソフトはSVGを標準フォーマットとして採用していますので、abcm2psで出力したSVGファイルをそのまま読み込むことができます。

そしてInkscapeはPDFだけでなく、PNGなどのビットマップ画像も含めて多彩なエクスポート機能を持っていますので、ここからPDFとして出力することができます。

これらのソフトの使い方については一切質問に応じませんので、各自研究して下さい。

コメント