start

エースコンバット2の曲リスト

エースコンバット2の曲はシリーズ屈指の出来だと思うのですが、なぜかサントラが発売されてません。ネット上でも「サントラマダー?」という声が散見され、たのみこむでも発案がなされているのですが、一向に実現の気配がありません。

幸いにしてAC2の音楽はXA形式で収められているので、吸い出して44.1kHzのWAVEに変換すれば、CDなりAACなりにする事が可能です。そんな時、曲名等が不明のままだと気持ち悪いので、ゲーム本編のMusic Playerやネット上の情報を元にまとめてみました。

以下の表は入手可能な情報を元に、一部私の推測も含めて作成したものです。従って情報の正確性については一切保証致しかねます。悪しからずご了承下さい。

STR番号 Music Player
の順番
曲名 作曲者 備考
000114Warning Line高橋弘太
000210Bear Tracks諌山亘秀
000319Aerial Hawk大久保博/中西哲一/諌山亘秀
000418Blow Away大久保博/中西哲一/諌山亘秀
000517Elemental Particle大久保博/中西哲一/諌山亘秀
00068El Dora do高橋弘太曲名は高橋氏のサイトの表記に準拠
000715Melt Down大久保博/中西哲一/諌山亘秀
000822Sunset Glow高橋弘太
000912On The Sly大久保博/中西哲一/諌山亘秀
001021Night And Day大久保博/中西哲一
001116Fire Youngman諌山亘秀
00129Fire Away高橋弘太
001313Dead End大久保博/中西哲一/諌山亘秀
00143Dystopia高橋弘太
001523Dynapolis大久保博/中西哲一/諌山亘秀
001611Rising High高橋弘太
0017-Extra Ending諌山亘秀
00186Lodestone高橋弘太曲名は高橋氏のサイトの表記に準拠
00197Aim High諌山亘秀
0020-Normal Ending高橋弘太曲名は高橋氏のサイトの表記に準拠
002120Into The GEO大久保博/中西哲一/諌山亘秀
00224Invoke高橋弘太
002326A Fresh Youngster諌山亘秀
002431Ending Bad大久保博/中西哲一/諌山亘秀曲名は自信無し
00252Lighting Speed諌山亘秀
0026-Ending Attract Normal大久保博/中西哲一/諌山亘秀ノーマルエンディング時のAWACS音声
0027-Ending Attract Extra大久保博/中西哲一/諌山亘秀エクストラエンディング時のAWACS音声
002828Ending Attract大久保博/中西哲一/諌山亘秀
00291Title高橋弘太
0030-不明-謎の音声(ゲーム未使用?)
003124Completion高橋弘太
003225Failure高橋弘太
00335Briefing高橋弘太
003427Hangar高橋弘太
0035
-0064
-ミッション解説音声

STR番号PsxMCのそれに対応し、Music Playerの順番はゲームのおまけで用意されているMusic Playerの曲順に対応しています。Music Playerで聴けない曲に関しては「-」表記です。作曲者が連名になっている曲は、詳しい作曲者が分からなかった(絞り込めなかった)曲です。

(2015-03-05 追記) 旧blogからのデータ移行で久々に高橋弘太氏のサイトを見に行ったら、当時のままのページが存在してて少し感動。

MacにgEDAをインストール

Macで使える電子回路図エディタとして、彼の有名なQt-BSch3Vがあります。実際、コンパイルして使ってみたところ、BSch譲りの簡単で軽快な操作感はとても良かったのですが、どうにも回路図出力で得られる画像が美しくありませんでした。

そこで、GPLで開発されており、よさげな出力結果が得られそうな電子回路図エディタgEDAをインストールしてみました。

基本ライブラリとしてGtk+2とGUILEが必要なので、MacPortsで入れておきます。

$ sudo port install gtk2
$ sudo port install guile

尚、Gtk+2のvariantsにquartzがありますが、これを有効にするとgEDAのビルドでコケるので、無印でインストールして下さい。

また、お好みでlibstrokeを入れます。オプション扱いなので、入れなくても問題はありません。

インストールする場合は、libstrokeのconfig.guess, config.subを新しい物に置き換えて下さい(後でmakeするgschemのものでOK)。素の状態だとファイルの内容が古く「お前(Darwin)なんてターゲット知らねーよ」と言われconfigureが通りません。

$ tar xvzf libstroke-0.5.1.tar.gz
$ cd libstroke-0.5.1
$ ./configure --prefix=/opt/local --with-x
$ make all
$ sudo make install

prefixにはインストール先のディレクトリを指定します(以下同様)。これは各自の環境に合わせて変更して下さい。

ソースはgEDA Project Sourcesからダウンロードして下さい。

$ tar xvzf libgeda-1.2.0.tar.gz
$ cd libgeda-1.2.0
$ ./configure --prefix=/opt/local LDFLAGS=-L/opt/local/lib CPPFLAGS=-I/opt/local/include --with-x
$ make all
$ sudo make install

LDFLAGS=-L/opt/local/lib CPPFLAGS=-I/opt/local/include にはライブラリとヘッダファイルのパスを指定します(以下同様)。概ねprefixにlibとincludeを付加したものを指定すれば大丈夫です。

$ tar xvzf geda-symbols-1.2.0.tar.gz
$ cd geda-symbols-1.2.0
$ ./configure --prefix=/opt/local
$ sudo make install
$ tar xvzf geda-docs-1.2.0.tar.gz 
$ cd geda-docs-1.2.0
$ ./configure --prefix=/opt/local
$ sudo make install
$ tar xvzf geda-utils-1.2.0.tar.gz 
$ cd geda-utils-1.2.0
$ ./configure --prefix=/opt/local LDFLAGS=-L/opt/local/lib CPPFLAGS=-I/opt/local/include 
$ make all
$ sudo make install
$ tar xvzf geda-gschem-1.2.0.tar.gz
$ cd geda-gschem-1.2.0
$ ./configure --prefix=/opt/local LDFLAGS=-L/opt/local/lib CPPFLAGS=-I/opt/local/include --with-x
$ make all
$ sudo make install
$ tar xvzf geda-gsymcheck-1.2.0.tar.gz 
$ cd geda-gsymcheck-1.2.0
$ ./configure --prefix=/opt/local LDFLAGS=-L/opt/local/lib CPPFLAGS=-I/opt/local/include 
$ make all
$ sudo make install
$ tar xvzf geda-gattrib-1.2.0.tar.gz 
$ cd geda-gattrib-1.2.0
$ ./configure --prefix=/opt/local LDFLAGS=-L/opt/local/lib CPPFLAGS=-I/opt/local/include 
$ make all
$ sudo make install

回路図を描くだけならば、ここまででOKかもしれません。

$ tar xvzf geda-gnetlist-1.2.0.tar.gz
$ cd geda-gnetlist-1.2.0
../configure --prefix=/opt/local LDFLAGS=-L/opt/local/lib CPPFLAGS=-I/opt/local/include 
$ make all
$ sudo make install
$ tar xvzf pcb-20070208p1.tar.gz
$ cd pcb-20070208p1
$ ./configure --prefix=/opt/local LDFLAGS=-L/opt/local/lib CPPFLAGS=-I/opt/local/include --with-x
$ make all
$ sudo make install
$ tar xvzf gerbv-1.0.2.tar.gz 
$ cd gerbv-1.0.2
$ ./configure --prefix=/opt/local LDFLAGS=-L/opt/local/lib CPPFLAGS=-I/opt/local/include
$ make all
$ sudo make install

以上でインストールは完了です。

xtermでgschemと打てば、回路エディタのgschemが起動する筈です。

しかし、そのままでは表示されるフォントが(´・ω・`)がっかりな感じなので、~/.gtkrc-2.0に以下の記述を追加します。

gtk-font-name = "Lucida Grande 14"

これでUIのフォントがMacっぽくなります(「っぽい」だけですが)。

Core MIDIの基礎

てれってれー、とCore MIDI/Core Audioの資料とサンプルを見ながら試行錯誤してた所、意外と簡単にSMFプレーヤが出来てしまいました。Core MIDIの日本語資料は殆ど見かけないので、備忘録兼これからCore MIDI触んべよ!という方の手助けになればと、分かった事を記します。

お約束ですが、本記事内容の正確性については保証致し兼ねます(何分、拙い読解力で英文資料を読んでいる為)。また、本記事の内容により生じた損害等の責任は、一切負い兼ねますので悪しからずご了承下さい。間違い等を発見されましたら、容赦なくツッコんで頂けると幸いです。

下の図はMac OS XのMIDIアーキテクチャを示したものです。

色々と描いてありますが、ここでは「MIDI Server」と「MIDI Client + アプリケーション」にだけ着目します。

まず「MIDI Server」ですが、その名の通りMac OS XのMIDIサービスを統括・提供するものです。OS X上で扱うMIDIデータは須く、MIDI Serverを通る事になります。システムに接続されているMIDIデバイスの管理の役割も担います。

次に「MIDI Client + アプリケーション」です。アプリケーションは……まぁ説明不要でしょう。MIDI Clientは、アプリケーションがMIDI ServerとMIDIデータのやり取りを行うためのオブジェクトです。逆に言えば、OS XでMIDIを扱うアプリを作ろうとすれば、何らかの形でMIDI Clientのお世話になります。

上の図で、MIDI Clientがアプリ内部にある方は、アプリケーションが明示的にMIDI Clientを生成し利用している様子を、MIdI Clientがアプリの外側にある方は、アプリ内部ではより上位のMIDI APIを利用するなどして直接MIDI Clientを使ってはいないものの、上位APIの下ではMIDI Clientが動いている様子を、それぞれ表しています。

続いてMIDI Client部分の詳細を見て行きます。

それぞれ、下層のオブジェクトが上に載っているオブジェクトを含む、という構造になっています。つまり、Channel 1〜16はMIDI Endpointが持ち、MIDI EndpointはMIDI Portが持ち……という具合です。

MIDI規格では、1本のMIDIケーブルで最大16チャンネル(パート)の情報を伝送出来ますが、このケーブルに当たるのが図中のMIDI Endpointです。ケーブルというよりも、DIN5ピンのMIDI端子の仮想表現と言った方がいいかもしれません。MIDI Endpointは1つに付き16チャンネルのMIDIデータを扱え、プログラム中ではMIDI Endpointをインタフェースとして、MIDIデータのやり取りを行います。

MIDI Endopointは、システムに存在するMIDIポート(MIDI端子という意味でのMIDIポート。後述するMIDI Portとは別物)を割り当てなければなりません。この際、ポートのデータ方向(入力なのか出力なのか)を問わず、自由に割り当てることが出来ます。

MIDI Portは同一データ方向のMIDI Endpointを束ねる役割を持ちます。データ方向毎にMIDI Portを生成し、そこにデータ方向が同じMIDI Endpointを登録します。基本的には、入力用のMIDI Portと出力用のMIDI Portを1つずつ用意し、MIDI Endpointを登録することになります。

ですが、必ずしも入出力両方を用意する必要はなく、入力か出力で最低1つのMIDI PortがあればOKです。また、同一方向のMIDI Portをいくつか生成し、それぞれのMIDI Portに自由にMIDI Endpointを登録しても問題ないようです。1)

1つのMIDI PortはMIDI Endpointをいくつでも持つ事が出来ます。従って上図の構成では、入力として16チャンネル、出力として16 x 3 = 48チャンネル持っている事になります。

MIDI Clientは、MIDI ServerとMIDIデータをやり取りするために、MIDIアプリケーションの土台となるもので、アプリケーション毎に必ず1つは必要です。一応、同一アプリケーション内で2つ以上のMIDI Clientを生成し、それぞれでMIDI Portを作るという事も可能なようです。2)

他にもMIDI Entityという概念があったりしますが、これは存在意義と使い方がよく分からないので、割愛します。資料によれば「MIDI Driverによって定義される、MIDIデバイスの機能の論理的グループ表現」との事なので、挙動はMIDI Driverごとに違うものと思われます。

長くなってきたので、以下に参考文献を示して、続きは次回にします。

    • Core MIDI(MIDI ClientとかMIDI Portとか)のリファレンス。
    • 微妙にハブられた感のある資料。ファイル名もCoreAudio.pdfとバッティング寸前(CoreAudio.pdfの方はCore Audioメインの解説)。Core MIDIに関する事はこれにしか書いてないので注意。

1)
実験の結果。Appleの資料にはこの辺の記述が見当たらなかったので、正確なところは不明です。まぁ、生成時には識別子を指定するので大丈夫だとは思いますが…。
2)
上に同じ。

Core MIDIに手を出してみる

ひょんな事からYAMAHAのXG音源MU1000を買ってしまいました。MIDIデータは聴き専門の私にとっては、正直、この音源を持っていても宝の持ち腐れ以上の何者でもない気がしますが、安かったので、つい……。一応、昔からの憧れの音源だったので。

MU1000とMacというと、ある意味DTMにおける最強に近い組み合わせだったりしますが、単に聴く用途だとそうでもなかったりします。

まともなMIDI再生ソフトが無いんですよね。Windowsで言う所のTMIDI Playerのようなソフトが欲しい所です。

無いんなら作ってしまえ(その技量があるかどうかは置いといて)と、Core MIDIの資料を漁っているのですが、これがまた全然ないっ! Core Audio以上にお寒い状況です。サンプルも/Developer/Examples/CoreAudio/MIDI/SampleToolsの1つだけ。ドキュメントもAPIのリファレンスだけ。関数群を羅列だけされて、一体どうしろと……。

一応、↑のサンプルを見れば、大体の流れは掴めるのですが、やっぱり公式な手順書があると安心感が違います。という訳で、早急にドキュメント類を整備して下さい、お願いします>Apple

実際にプレーヤを作るとなると、SMFの読み込みルーチンも書かないといけないし、そうなるとSMFの勉強もしないといけないし、結構大掛かりな事になりそうです。

tDiaryに移行

本日よりblogシステムをMovable TypeからtDiaryに移行します。

自称、クソゲ〜製作所「所長」が気分次第で書くので「不定」記です。

MTからtDへ移行を決めたのはいくつか理由がありまして、

  • tDのカテゴリ機能が便利そう
  • MTは規模的にちょっと大袈裟だったかも
  • 自分内の運用ルールがぐちゃぐちゃになってしまったので、一度リセットしたかった

という感じです。

現在あまり時間が取れないので、サイト構成等は旧態依然としていますが、その内きちんと整理したいところです。

これからもバシバシ「ツッコミ」を入れて頂ければ幸いです。

  • start.txt
  • 最終更新: 2022-07-27 15:26
  • by Decomo