• ベストアンサー

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

gakushanekoの回答

回答No.1

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

yabuchanchan
質問者

お礼

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

関連するQ&A

  • バイナリでSMFを直接つくる

    質問させて頂きます。バイナリで直接MIDIファイルを作ってるんですが、あるポイントで和音を鳴らしたいんです・・・。この和音を鳴らす方法ってどのようにやってますか?ほぼ同時に幾つか音をノートオンすれば鳴りそうですがもっとうまい方法ってないもんでしょうか? どなたか、おしえて下さい。

  • バイナリファイルの書き出し

    バイナリファイルにデータを書き込むプログラムを作りたいと思っています。実は、Standard MIDI Fileのバイナリファイルを作りたいんです。 SMFについては、今まで、直接バイナリエディタで開き、16進数の数字をいじくって、データ書き換えたりしてたので直接バイナリファイルに16進数での数字を書きたいんです。 たとえば、テキストファイルに903C408360803C0000みたいに吐き出すプログラムでは、バイナリファイルに書き出してからバイナリエディタで開くと こいつがさらに16進数に変換されてしまいますよね? そうならないようにするにはどうやればいいんですか?

  • この方法でバイナリデータが読めるのでしょうか

    あるプログラムでバイナリ出力しているファイルがあります。これを単純にfread()で読み込んで、今度はfprintf()で出力すればどうなりますか?やりたいことは、バイナリ出力されたファイルをテキストファイルに変換したいのですが、この方法で、バイナリファイルが読めるでしょうか? ちなみに、読みたいバイナリファイルは、fwrite()で書き出したファイルです。 あと、「バイナリファイルです」と言って貰ったファイルを、windowsのテキストエディタなどで開くと、appleなどの通常のアルファベットの単語と、あとは訳のわからないものが見えるのですが、これってバイナリファイルじゃないですよね?appleなどと書いてあるのですから。 間違えていましたら、訂正お願いします。

  • バイナリファイルについて

    DataForkerというバイナリエディタで、MIDIのデータを書いたのですが 保存のしかたがよくわかりません。そのまま、適当にファイル名付けて、 .midと拡張子付けただけでは、これはMIDIファイルとして認識されないんでしょうか?

    • ベストアンサー
    • Mac
  • バイナリエディタって?

    ファイルをいろいろなアプリケーションプログラムから 開くことができますが、バイナリデータとしてみる あるいは16進数表示のデータとして表示するのはバイナリエディタとやらを使ってひらくのでしょうか? それってどこにあるのかわかりません。フリーウエアでダウンロードするのか プリインストールされているのでしょうか。昔はダンプリストとやらで ずらずらっとファイルを16進数表示できてましたが。 このあたりについておわかりの方お教えください。

  • FORTRAN77で作ったプログラムを開くとバイナリファイルと認定され、編集できません

    FORTRAN77を最近勉強し始めました(プログラミング自体が超初心者です)。 ネットで情報を集め、コンパイラーはFTN77、エディタはCPadというフリーソフトを インストールし、実際にプログラムを作って実行してみたました。 一応は上手くいったみたいなのですが(非常に簡単な計算なので)、 いったんエディタを閉じて再び開いてみると、 「ファイル~~~はバイナリファイルと判定されました。無視して開きますか?」 という警告が出て、開いてみると意味不明な文字列が書いてあるだけで もともと何が書いてあったかわかりません。 どうしてこのようなことになってしまうのでしょうか?

  • スタンダードMIDIファイルを作りたい。~音色の設定について~『Performer』

    PCはMAC、シーケンスソフトは『Performer』を使ってます。 そして『TRITON』を音源として使ってます。 スタンダードMIDIファイルとして保存する方法はわかるのですが、問題は音色の設定です。 通常『Performer』でスタンダードMIDIファイルを作る時、デフォルトパッチの設定はトラックには書き込まれないので、トラックの先頭に、プログラムチェンジを(イベントとして)入力しておく必要があるそうです。 そうしようとしたのですが、例えばプログラムチェンジを「♯1」としたら、 「piano」となってほしいのに「Patch 1」となってしまい、困ってます。 どの音色でも同様です。 あと、10チャンネルにいれてもドラムの設定になりません。 GM音源を『performer』で、普通に使いこなせるためにはどんな設定をすればいいんでしょうか? 説明書も読んだんですが、どこに解決法がのってるかわかりません。 どうか、早めに回答お願いします。

  • バイナリファイルとプログラミング

    バイナリファイルとプログラミング 今、とあるバイナリファイル(NIfTI)をC言語で可視化したいと思っています。 ただバイナリファイルを利用するにはフォーマットさえわかればいいんでしょうか? http://nifti.nimh.nih.gov/nifti-1/ のようなフォーマットの形式を見ても 実際にプログラミングではどういう風にやっていけばいいのか何もわかりません。 アドバイスをお願いします。

  • C++でバイナリデータの扱い方

    以下のプログラムで接続先からバイナリデータを取得しているのですが coutで出力しても画面に何も表示されません。 ------------------------------------------------------ /*include部分は省きます*/ std::string bin; //1 clx::http session(clx::uri::encode(ip), 80); //2 session.get(clx::uri::encode(param)); //3 bin = session.body(); //4 std::cout << bin << std::endl; //5 ------------------------------------------------------ 上記プログラムを空ファイルにリダイレクトしバイナリエディタで見たら ちゃんとデータは書き込まれていました。 5行目を以下のように変えても空欄が出力されただけで文字は表示されませんでした std::cout << std::hex << bin << std::endl; しかし以下のようにすると文字数は表示されました。 std::cout << bin.length() << std::endl; やりたいこととしてはphpのpack()、unpack()的な部分です。 例えば 値をフォーマットを指定してバイナリデータとして出力 $val=pack("L", 35); とか バイナリデータを変数から指定バイト分取り出して10進数で画面に出力 $bin=(バイナリデータ); $val=unpack("c",$bin); echo(sprintf("%d",$val)); です。 バイナリの扱いはリトルエンディアンです。 ご教示お願いしますm(__)m

  • FA-06、Import SMFについて

    FA-06を使っているシンセ初心者です。 1.FAで楽曲のスケッチを行う 2. DAW(Studio One)を使用してMIDIデータを編集する 3. FAにImport SMFから戻して伴奏として使う 以上のことをしようとしていたのですが、3.にて問題が起こりまして、1つのパートに全てのパートのMIDIデータがごっちゃになった状態で読み込まれてしまいます。 SMFのフォーマットを1にして読み込む、あらかじめプログラムチェンジで音をそれぞれ指定するなども試してみたのですが、一向に解決せず、お手上げの状態です。 どなたか解決法をお知りの方がいらっしゃいましたら、ご教示いただけると幸いです。 ※OKWaveより補足:「電子楽器メーカーローランド製品、ボス製品」についての質問です。