- 内蔵音源をmidi変換するスレ4曲目
784 :SOUND TEST :774[asge]:2016/02/28(日) 10:19:52.07 ID:9ukujudy - VGMデータについて教えて
VGMの仕様書を見ると 「VGMs run with a rate of 44100 samples per second. All sample values use this unit.」 っていう記述があるんけど、これはたとえばキーONのコマンドが連続していても、 1/44100ずつズレてチップに送られる(ズレて音が出てる)っていうことなの? 実はVGMデータをMIDIに変換しようとして、でも出来合いのツールだとうまく動かないので 個別にツールを作っているんだけど、そのズレが問題になってて、どうしよっかなぁって思って
|
- 内蔵音源をmidi変換するスレ4曲目
786 :SOUND TEST :774[sage]:2016/02/28(日) 12:02:26.79 ID:9ukujudy - >>785
コマンド毎に処理が1/44100秒かかる、というわけじゃないとは考えてます VGMを再生する側の動作としては、1/44100秒毎に音源チップ(のエミュレータ)に レジスタと値をセット、を繰り返すものだと思ってます (そのコマンドの処理には、今時のPCなら1/44100秒よりずっと少ない時間で済む、と) なので、VGMデータ上、例えばYM2612に対するch.1へのキーONのコマンドと ch.2へのキーONが2つ連続で並んでいた場合は、1つのコマンドは1/44100単位で 処理されるので、 ・チップ側に最初のch.1へのキーONのコマンドが送られる。FM音源チップはch.1でその音を出力する ・その1/44100秒後に次のch.2へのキーONのコマンドが送られる。FM音源チップはch.2でその音を出力する ということなので、2つの音は、1/44100秒ズレて出る、と思ってるのですが、どうでしょう
|
- 内蔵音源をmidi変換するスレ4曲目
788 :SOUND TEST :774[sage]:2016/02/28(日) 23:20:05.64 ID:9ukujudy - >>787
ということは、waitコマンドとかのサンプル数は、1/44100秒単位で指定すべし、ということなのかな?
|