2011年4月10日日曜日

midif0n バージョン1.3のファイルに関して

midif0nバージョン1.4を近日中にアップします。
ところで、midif0nバージョン1.3の説明が不足しているため、ここではファイル関係について取り上げます。

まず出力をSMF フォーマット0に変更した理由です。(XFファイルに変更)
僕がSMFフォーマットに関して、最も疑問に思い、最も欠けていると感じる部分は、メタイベントとしてコード情報が存在しないことです。もちろん単にコードを置くだけであれば、テキストデータやノート情報として代用することも可能です。しかし、プログラマーが操作できるデータとしてのコード情報はSMFに存在しません。疑問に思うのは、電子楽譜フォーマットとも言えるSMFに、何故、基礎データであるコードが入っていないのかという点です(まあ、この理由については関係者以外知る由もないのですが)。兎に角、コード情報が欲しかったので、バージョン1.3においてYAMAHAのXFフォーマットを採用しました。これは仕様書にSMF フォーマット0互換と明記されています。それがSMF0になった理由です。ところで、XFが何故SMF0に規定されているのでしょうか?僕が仕様書をチェックした限りでは、理由はメロディのチャンネル指定を行っていることぐらいしか思い当たりません。SMF1でメロディトラック指定をする場合、データとして持ちにくいという事情があるのかもしれませんし、あるいは単純に両方サポートするのが面倒だったのかもしれません。個人的には、互換性は重視して欲しいところですが。


何にせよフォーマットがどうであれ、midif0nは16トラック固定で扱っていることから、失われるデータはありません。ですから規定通りにSMF0にすることにしました。またXFフォーマットは、日本語のカラオケ用の歌詞情報を含まなければ、RIFFのチャンクも増えないことは確認しました。つまり、この時点ではSMFフォーマット0と何ら変わりがない訳です(コード情報はシーケンサ固有のメタイベント(Sequencer Specific)として扱われる)。基本的にXFよりSMFの方が通りがよいはずなので、記載はSMFをメインにすることにしました。



フレーズファイルについて
フレーズファイル(拡張子.midp)の実体は、SMF0です。
拡張子を変更すれば、多くのMIDIシーケンサーで内容を確認することが可能です。ここでSMF0にしたのは、高速化が主な理由です。拡張子を変更した理由は、検索用タグ等のデータを入れる可能性がある点も考慮しています(現状では入っていません)。フレーズファイルは、すべてのMIDIイベントが保存される訳ではありません。プログラムチェンジやRPNなどは保存しませんが、これに関しては今後正式にまとめるつもりです。


組み込みのフレーズファイルについて
組み込んであるいくつかのファイルは、プリセットフレーズというよりは、サンプル、検証用のものと考えて下さい。ですので今後、積極的に増やすつもりはありません。これらのファイルが邪魔な場合は、オプション機能で組み込みファイルのコピーを防止してから、削除して下さい。


組み込みの壁紙ファイルについて
UI変更により、バージョン1.2までに組み込んであった壁紙ファイルも変更しています。ピアノロール用の壁紙は、ファイル名に2が付くものと、付かないものとで、まったく同じ画像を用意しているのに気付いた方もいると思います。midif0nは組み込みファイルを一度ユーザーのDocumentsフォルダにコピーしますが、この時上書きはしません。つまりバージョンアップに伴い新しい画像に変更しても、ユーザーが気付かない可能性があります。この点を考慮し、壁紙変更をユーザーに確実に知らせるために、必ずコピーされるファイル名に2がついたものを用意しました。よって、バージョン1.4では、これらの重複ファイルの削除を行う予定です。


ところで、XFフォーマットに関して調べている間に、XFをサポートしているWindows向けのフリーのMIDIシーケンサーCY10があることを知りました。CY10はキーボード操作が中心のみならず、視覚障害者用の音声ガイド機能もあるため、完全に視覚に頼らないで操作できる点が興味深いところです。midif0nは視覚に頼らないと操作は不可能ですから、真逆なソフトウェアと言えるかもしれません。そして音を扱う以上、視覚に頼らないというのは、理に適った考え方であり、これには考えさせられるものがあります。

0 件のコメント:

コメントを投稿