プロが教える店舗&オフィスのセキュリティ対策術

midiファイルの表現には色々と制約が多いので、自分でより高度なことを簡単に扱えるような独自のファイル形式を作っています。
(その形式においては処理を簡易化するためにデルタタイムに当たる数値は開始点からの絶対値だったり、エンディアンはそのファイルを作ったOSを何らかの方法で特定できるようにしておいて、それに合わせるようになってたり、固定長だったりとか、微妙に仕様は違いますが)


しかし、やはりDAWのようなソフトならば当然他のソフトとある程度の互換性は持たせたいので
midiファイルとしてのInput Output、つまり結果的には編集も可能にしているところなのですが(XFフォーマットVer2.03あたりを意識しながら)

このmidiファイル、(あるいはXFフォーマット限定の情報でも)に関して
歌詞情報等でUnicode文字を使えるような標準の方法(メタイベントか何かを利用して)ってありますか?


※通常はマルチバイトだけで、そういう事は独自拡張しか方法はないということならば、Unicode文字は自分のつくっているソフト専用でもいいので『独自に対応』しておき、通常はマルチバイトにしようと思っています。
(標準であるかないかにかかわらず、選択可にするようには組みそうですが)

A 回答 (2件)

とりあえず「検索したらなんか出てきた」レベルなのでなんともいいにくいのですが, 純粋に「規格」として読むならその解釈で全部あってるはずです.



あ, SMF ではなく XMF (eXtensible Music Format) なら UNICODE が使えそうですね. 4.9 Synchronised lyrics/text によれば, 「言語」と「エンコーディング」の両方が指定できそうです.

参考URL:http://www.midi.org/techspecs/xmf/rp47public.pdf
    • good
    • 0
この回答へのお礼

お~!ありがとうございます。

XMFなんてものがありましたか!
確かにそう読めますね。
目的を読むと、現在作っている独自の形式と方向性は似ている箇所もあるようで
しかし、やはり詳細は実物をじっくりいじり倒してみないと見えません。


んで、かなり興味がわいたのですが

調べてもSMFのそれと比べて対応ソフトとか解説とかが恐ろしいほど見つかり辛く感じます。

手持ちのソフトで対応してるのが結構あれば良いのですが、そうでないとなるとファイル作成の実験そのものが困難を極めそうなことと


現状ではSMFにおいてUNICODEの問題は、結局は「流通レベルの問題」に等しい→XMFだと結果的に同じ問題にぶち当たる


となれば、時間の問題からいっても、ファイルサイズは多少大きくなっても、ひたすらに表現力を求めまくった自分のソフト専用(少なくとも公開直後は)の形式を煮詰める時間と、十分に普及しているSMFサイドへの対応を専決することにして


当初の作戦でいくのが、まずはベストと判断しました。


しかし、存在を知ったのは、今後役に立つ可能性も否定できません。

お礼日時:2011/04/11 02:53

Lyric Meta Event に UNICODE を使うことはできそうだけどねぇ....



参考URL:http://www.midi.org/techspecs/rp26.php
    • good
    • 0
この回答へのお礼

これはこれは、どうもありがとうございます♪



>If an undefined <code_set> appears, lyrics should be ignored until a defined <code_set> appears.
>In addition, if a byte order mark which specifies UNICODE such as 'FF FE' or 'FE FF' exists, the character code SET should be treated as UNICODE.

未定義のコードセットが出たら定義されたコードセットが出るまで歌詞を無視すべき、そんでもって、もしUNICODE特有の文字が出たらそれはUNICODEとみなされるべき


ただし


>Other <code_sets> for different languages are not defined yet.
>AMEI/MMA will be responsible for defining those <code_sets>.

これやっぱり、この"yet"と"will"がポイントでしょうか…w


え~っと、このコードセットの指定のそもそもの使い方なのですが

(読む限り途中でコードセット変えてもいいようだけど)例えば、デフォルトのLATINとかを明示的に示すとすると

あらゆる歌詞が始まる前にLyric Meta Eventにて

{@LATIN}

を突っ込む、というだけで「仕様通りのはず」ということでしょうか?
つまりこの場合バイナリ的には


16進表記で
(デルタタイム) FF 05 08 7B 40 4C 41 54 49 4E 7D


となるはず、で

これは標準ではまだ決まってないけど自分で{@UNICODE}とかに対応するようにやったとしても、SMFの「仕様通りではある」ということでしょうか?


どちらも

{@LATIN}
{@JP}

に正確に対応してると考えられるシーケンサーがなんなのか、あるいはあるのかないのか分からないのですが

とりあえず、いずれにしても現状ではまだUNICODE対応というのは「標準的」ではない、という感じになりそうですかね?

お礼日時:2011/04/11 00:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!