OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

SMFのバイナリデータについて

  • 困ってます
  • 質問No.193320
  • 閲覧数165
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 60% (108/179)

Stabdard MIDI file をバイナリエディタで、直接いじってるんですけど、フォーマット1にして2つのトラックで音を同時に鳴らす際、トラックごとに音色を変えたいとおもったます。このときはやはり、プログラムチェンジの命令をつかうんでしょうか?いちおう、書いてはみたのですけど、上手くなりません。どなたか、実際にやってる方いらっしゃいましたら、教えてください。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル14

ベストアンサー率 68% (2350/3407)

回答が遅くなりましてすみません。

> GMオンというのはシステムエクスクルーシブメッセージですよね?
ハイ。その通りです。

> 複数のトラックチャンクがある場合、一つ目だけにいれればいいんでしょうか?
ハイ。その通りです。まぁ,どこに入れてもいいみたいですが,通例として第1トラック(トラックNo.0)に挿入するようです。中には第16トラックに入れてある例も見たことがありますが,この場合,必ず第1chへの命令でした。
また,このGMシステムオンのすぐあとにGSリセットやXGシステムオンと言うシステムエクスクルーシブメッセージが入ることもあります。

> このQuicktimeというものに対してのGMオンメッセージが見当たらないよな気がするんですが・・・。
> やはり、Quicktimeに対するなんか認識させるようなメッセージを書かないといけないんでしょうか?
QuicktimeはGS互換です。ですから,GMシステムオンとGSリセットがそれにあたります。
ただし,GS互換と言うことはローランド社が提唱するGSシステムと同じではないため,無効になる命令もあります。
なお,バイナリエディタでの編集作業ですから,
<GMシステムオン> F0 7E 7F 09 01 F7
<GSリセット> F0 41 10 42 12 40 00 7F 00 41 F7
を入力することになると思います。まぁ,普通はどちらかだけでいいようです。

ここで厄介になるのが,GMシステムオン命令だけなら音色を変更するのにプログラムチェンジだけでいいのですが,GSリセット命令を使った場合,バンクセレクト(MSB(0)とLSB(32):カッコ内はコントロールチェンジナンバーを表しています)と言うコントロールチェンジ命令をプログラムチェンジ命令の前に必ず挿入しなくてはいけなくなることです。これは,例えばグランドピアノ(プログラム 0)であっても何種類か存在し,それを指定するためなのです。
GSリセットの場合,この指定はMSB(0)を使用し,LSB(32)は必ず「0」を入力してください。
参考までにSC-8850で使われている音色マップをダウンロードできるページを参考URLに入れておきます。この中の「SC-55 マップ」(インストゥルメントとドラム)がQuicktimeでも使える音色だと思います。
ただし,GS互換をうたっているものの中にはただ単に「再生できる」というだけで,実際にはGM音源となんらかわりがないものもあります。
お礼コメント
yabuchanchan

お礼率 60% (108/179)

丁寧な御回答ありがとうございました。
さっそく、 GMオンをいれてみてつくってみましたら、音色のチェンジが
できました!!!
GSリセットはいれなくても、鳴ったみたいです。
でも、もっとそこら辺のところを追求してみたいと思います。
参考URLも非常に有用です。
ソフトを使ってるだけでは、絶対触れないようなことばかりで結構
難しいんですけど、がんばってみようと思います。
本当に、ありがとうございました。
投稿日時 - 2002-01-14 12:49:47
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル14

ベストアンサー率 68% (2350/3407)

GMオンなどの命令はちゃんと入れてありますか?これがないと上手くならないこともありますよ。 また,このGMオンなどの命令と同じタイミングではプログラムチェンジ命令などを実行させないでください。音源にもよりますがGMオンなどの命令をトラック1の第1小節第1拍目に入れ,それ以外の命令郡は第2拍目以降に入れてください。 ただし,これは4/4拍子・テンポ120の場合です。GMオンなどの命令が有効になるまでの時 ...続きを読む
GMオンなどの命令はちゃんと入れてありますか?これがないと上手くならないこともありますよ。
また,このGMオンなどの命令と同じタイミングではプログラムチェンジ命令などを実行させないでください。音源にもよりますがGMオンなどの命令をトラック1の第1小節第1拍目に入れ,それ以外の命令郡は第2拍目以降に入れてください。
ただし,これは4/4拍子・テンポ120の場合です。GMオンなどの命令が有効になるまでの時間は約1秒ありますのでそれを計算して他の命令を入力してください。

音色を変える命令は,プログラムチェンジでOKのはずですが・・・。MIDI音源によっては同時に処理が出来ない場合もあると思いますので,実行させるタイミングを少しずらしてあげてはいかがでしょう。
お礼コメント
yabuchanchan

お礼率 60% (108/179)

御回答ありがとうございました。GMオンというのはシステムエクスクルーシブメッセージですよね?複数のトラックチャンクがある場合、一つ目だけにいれればいいんでしょうか?また、音源としてMacでQuicktimeを使って作ったバイナリを鳴らしているんですが、このQuicktimeというものに対してのGMオンメッセージが見当たらないよな気がするんですが・・・。
やはり、Quicktimeに対するなんか認識させるようなメッセージを書かないといけないんでしょうか?
いろいろ質問してすみません。もしよければお返事ください。
投稿日時 - 2002-01-10 17:31:55


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ