• ベストアンサー

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

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

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

  • ベストアンサー
  • terra5
  • ベストアンサー率34% (574/1662)
回答No.1

デルタタイムを0でノートオンすれば和音では? ただ、実際の発音はMIDI規格上厳密には同時発音されませんけど。

参考URL:
http://www.pluto.dti.ne.jp/~daiki/Midi/AboutSMF_Inside.html
kitapei
質問者

お礼

ご回答ありがとうございます。当たり前のようですが、デルタタイム0でノートオフすればその和音をとめることができるんですよね?

関連するQ&A

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

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

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

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

    • ベストアンサー
    • Mac
  • バイナリファイルの書き出し

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

  • MIDIファイルをバイナリ⇒16進コード変換したい

    どのような方法を用いれば、MIDIファイルのバイナリコードを 16進コードに変換できますか。 ネット上で検索したところ、Node.js を使う方法しか見当たりませんでした。 自前で javascript を使用して、.binaryToString() を用いましたが この方法では、変換された結果には 英単語と 文字化けした文字列が混在していて MIDIファイルの部分的な編集作業に利用することが 困難なようでした。 MIDIファイルの内容を text editor 上で手直しするために できれば javascript でバイナリコードを editor 上で読めるように 変換する方法をご指導いただけますでしょうか。 よろしくお願いいたします。 .

  • javaでMIDIファイルの取り出しかたについて

    javaでMIDIファイルの中身(音の高さやノートオンなどの情報)を 取り出したいと思っています。 MidiFileReaderが使えるのかなとは思いますが、 具体的なプログラムの書き方が分かりません。 MIDIファイルの作成はサンプルをよく見るのですが、 取り出しのほうが見つけられないので 具体的に教えていただけると助かります。 よろしくお願いします。

    • ベストアンサー
    • Java
  • MIDI(SMF0)ファイルをSMF1に変換

    MIDIデータのSMF0ファイルをSMF1ファイルに変換したいのですが、何かいい方法はありますか?

  • バイナリファイル

    VBでバイナリファイルを読み込み、処理しようとしているのですが、VBではバイナリファイルを扱えないのでしょうか? APIしかないのでしょうか? 例) バイナリデータ:10(16進) 取扱データ:16(10進) 上記のことをしたいのですが、うまく扱えません。 CDecも"&H10"なら16として扱えるのですが、バイナリデータをそのまま数値化することができません。 何か良い方法があれば教えて下さい。

  • バイナリファイルの特定のバイナリ値をカウントする方法は?

    お世話になります。 質問です。 バイナリファイルから特定のバイナリ値を抽出して、 1バイト単位でカウントする方法はありますか? (例) バイナリファイル"FileA"のバイナリ値0xffをカウントする。 <FileAの中身> 0xfe 0xff 0xff 0x12 0x00 0x00 0xff 0x01 0x00 ↑のファイルから0xffを3カウントした。 $ hexdump -v <ファイル> | grep <ターゲットの値> | wc -w (質問を書いてる現在、linux環境が無いので記憶を頼りに書いてますので間違ってると思います) ↑のようにのような方法は思いつきましたが 「一度テキストにして~grepにパイプして~wcにパイプする」となると、 ファイルサイズに依っては処理に数時間費やしてしまいます。 なので、以下の条件を満たす方法を探しています。 (1)処理の無駄が少ない(バイナリを直接探す方法等) (2)できるだけシンプルにコマンドライン一行で実現 (3)スクリプトファイルを含むソースファイルを作る作業無し よろしくお願いします。

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

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

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

    質問なんですが テキストファイルを間違って消してしまって復元してみたのですがそのファイルがバイナリファイルとゆうファイルで開いてみても内容がわからなくなっています。 なんとか解析とかして読めるようにならないでしょうか? よろしくお願いします。