midiファイルの表現には色々と制約が多いので、自分でより高度なことを簡単に扱えるような独自のファイル形式を作っています。
(その形式においては処理を簡易化するためにデルタタイムに当たる数値は開始点からの絶対値だったり、エンディアンはそのファイルを作ったOSを何らかの方法で特定できるようにしておいて、それに合わせるようになってたり、固定長だったりとか、微妙に仕様は違いますが)
しかし、やはりDAWのようなソフトならば当然他のソフトとある程度の互換性は持たせたいので
midiファイルとしてのInput Output、つまり結果的には編集も可能にしているところなのですが(XFフォーマットVer2.03あたりを意識しながら)
このmidiファイル、(あるいはXFフォーマット限定の情報でも)に関して
歌詞情報等でUnicode文字を使えるような標準の方法(メタイベントか何かを利用して)ってありますか?
※通常はマルチバイトだけで、そういう事は独自拡張しか方法はないということならば、Unicode文字は自分のつくっているソフト専用でもいいので『独自に対応』しておき、通常はマルチバイトにしようと思っています。
(標準であるかないかにかかわらず、選択可にするようには組みそうですが)
No.2ベストアンサー
- 回答日時:
とりあえず「検索したらなんか出てきた」レベルなのでなんともいいにくいのですが, 純粋に「規格」として読むならその解釈で全部あってるはずです.
あ, SMF ではなく XMF (eXtensible Music Format) なら UNICODE が使えそうですね. 4.9 Synchronised lyrics/text によれば, 「言語」と「エンコーディング」の両方が指定できそうです.
参考URL:http://www.midi.org/techspecs/xmf/rp47public.pdf
お~!ありがとうございます。
XMFなんてものがありましたか!
確かにそう読めますね。
目的を読むと、現在作っている独自の形式と方向性は似ている箇所もあるようで
しかし、やはり詳細は実物をじっくりいじり倒してみないと見えません。
んで、かなり興味がわいたのですが
調べてもSMFのそれと比べて対応ソフトとか解説とかが恐ろしいほど見つかり辛く感じます。
手持ちのソフトで対応してるのが結構あれば良いのですが、そうでないとなるとファイル作成の実験そのものが困難を極めそうなことと
現状ではSMFにおいてUNICODEの問題は、結局は「流通レベルの問題」に等しい→XMFだと結果的に同じ問題にぶち当たる
となれば、時間の問題からいっても、ファイルサイズは多少大きくなっても、ひたすらに表現力を求めまくった自分のソフト専用(少なくとも公開直後は)の形式を煮詰める時間と、十分に普及しているSMFサイドへの対応を専決することにして
当初の作戦でいくのが、まずはベストと判断しました。
しかし、存在を知ったのは、今後役に立つ可能性も否定できません。
No.1
- 回答日時:
これはこれは、どうもありがとうございます♪
>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対応というのは「標準的」ではない、という感じになりそうですかね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- C言語・C++・C# プログラム内から、MIDIファイルの一部分だけを再生する方法 1 2023/02/15 11:08
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- その他(社会・学校・職場) 誰か聞いてください。 社会人6年目ですが、私はポンコツすぎますか? 上司にとあるAファイルの数式を全 1 2023/08/10 18:25
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) エクセルのファイルを複数のPCで同期する方法は? 7 2022/11/23 17:35
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(パソコン・周辺機器) 同じファイル名 上書きしないフリーソフトなどあったら教えて下さい。 仕事で大量の写真などを扱っており 3 2023/05/18 06:43
- フリーソフト ファイル保存できるデジタルノートアプリ 3 2022/05/03 09:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
バッチで118項目のCSVを処理し...
-
csvファイルを開かずに文字を検...
-
iniファイルに追記がしたいです。
-
SGファイルって何ですか?
-
ファイル名の先頭にアンダース...
-
ドラッグアンドドロップでファ...
-
大きいサイズのテキストファイ...
-
テキストファイルの最終行を削...
-
同じ名前のファイルを作った場...
-
C言語関数違いについて。
-
Excelマクロでの再読込み方法
-
WAVファイル同士の結合が可...
-
複数ブックの統合について Exce...
-
Cでのネットワークファイルの読...
-
fopenの"r+"モードで同時に読み...
-
C言語のfopenについて教えてく...
-
文書から任意の文字を抽出する...
-
HTMLファイルをメモ帳から開きたい
-
CSVファイル読み込み
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
CSVファイルへの保存の際、デー...
-
ファイルを記録してあるセクタ...
-
テキストファイルの最終行を削...
-
SGファイルって何ですか?
-
ドラッグアンドドロップでファ...
-
分割コンパイルの#defineについて
-
VBに、Cのincludeのようなもの...
-
fopenできる上限の変更
-
グローバル変数のよくない使い...
-
ファイルの結合
-
大きいサイズのテキストファイ...
-
iniファイルに追記がしたいです。
-
バッチで118項目のCSVを処理し...
-
ハッシュの計算時間について
-
C言語のfopenについて教えてく...
-
Javascript で INI の読み書き
-
Excelマクロでの再読込み方法
おすすめ情報