SRC意見交換掲示板Mk2
(現在 過去ログ35 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■3655 / inTopicNo.1)  DirectMusicを使用したMidi演奏について
  
□投稿者/ やのっち -(2004/07/17(Sat) 18:19:13) [ID:kSEcp7Mq]
    2004/07/19(Mon) 02:56:02 編集(投稿者)

     こんにちは、やのっちと申します。
     ずっとプレイヤーオンリーでしたが、最近になってSRCシナリオを作り始めました。
     どうかよろしくお願いします。

     現在、うちの環境でDirectMusicを使用してMidi演奏を行うと、今までプレイしたシナリオに添付してあるMidiのうちのほとんどが正常に再生出来ません。
     具体的な症状は、
    ・一部のパートがピアノの音になる。
    ・発音した音がずっと伸びっぱなしになる。(放っておくと音の洪水になります)
    ・MIDIデータからの音源リセット命令が効かない。(前の曲の設定を引きずる)
    ・演奏が2週目になると、極端にボリュームが下がる。
    ・一部のパートのみキーがシフトする。
     ・・・・といったところです。

     現在、私の環境は、
    ・音源:Roland Sc88pro
    ・MIDIインターフェース:Roland MU-2
    ・OS:WindowsXP Professional Edition(SP1)
    ・CPU:Pen4 1.8G
     です。

     私自身が以前、どうすれば「SRCでMIDIが正常に再生出来るようになるのか」が分からずにかなり長い期間、困った経緯があります。
     これからSRCに触れられる方や、PC初心者の方で、この問題で躓く方もいらっしゃるのではないかと思います。
     そこで、この度作るシナリオでは、冒頭でMIDI演奏にDirectMusicを使用する設定かどうかInfo()関数で判別し、UseDirectMusic=Onの場合は、
    「MIDI演奏にDirectMusicを使用する場合、環境によっては正常に再生されない場合がございます」
    のような警告文が表示されるようにしようと思いました。

     そこでふと思ったのですが、実際にDirectMusicを使用して、正常にMIDIが再生されない方は全体に対してどの程度いらっしゃるのでしょうか。
     また、DirectMusicを使用しない場合、曲の切り替えに時間を要する為、演出面でも工夫する必要があるように感じました。


     もしよろしければ、皆様の

    ・DirectMusicによるMidi演奏に関する状況
    ・DirectMusicを使わない場合の曲の切り替えの間に対する考え方

     などをお聞かせ頂ければ有り難いです。
     以上、どうかよろしくお願いします。
引用返信/返信 削除キー/
■3657 / inTopicNo.2)  MIDI作者からの意見
□投稿者/ siny -(2004/07/18(Sun) 15:14:28) [ID:KASOxn6n]
http://www1.kcn.ne.jp/~ma_sugi/
    はじめまして、sinyと申します。

    私もオリジナルMIDIデータを公開している手前、
    今回のやのっちさんの意見は以前から気になっていました。

    この意見交換を機に、もっと汎用性のあるMIDIデータを
    供給できればいいな、と考えています。

    これは本来ならメールでやりとりすべき話題かもしれませんが、
    こちらも色々な環境における反応を知りたいと思いますので
    マナー違反の謗りを受けるのを覚悟でこのレスを書いています。
    ご容赦ください。


    早速ですが本題に入ります。

    【製作環境】-------------------------------------------------------------
    当方の製作環境は以下の通りです。

    音源 :Roland SC-88VL(結構古いGS音源)
        WinGroove(GS準拠だけどほぼGM音源)
        SB Live!シンセ(GS互換のSoundBlaster内臓音源)
        MIcrosoft GS Wavetable SW Synth(OSに付属のソフトGS音源)
    OS :WindowsXP Home Edition SP1
    CPU:P4(2.40GHz)

    【問題点】---------------------------------------------------------------
    上記環境において、DirectMusicをオンにした状態で
    SRC(2.0系)を実行した結果は、次の通りです。
    (MIDIデバイスはSRC.INIにて音源番号を指定して実行)

    (1)一部のデータにおいて特定のチャンネルがpiano1音色になる。
      (↑SC-88VLのみ)

    (2)同時発音数が多いデータにおいて、ノートが発音しっぱなしに
       なることがる。(SC-88VLのみ発生。再現性なし)

    (3)一部データにおいて、曲の冒頭が演奏されないことがある。


    さて、これらの状況に対する原因推測を行ってみました。
    (ただし、音源やSysEXに関する知識がとても中途半端なため
     正解かどうかは保証の限りではありませんが)

    【結論】-----------------------------------------------------------------
    先に結論を述べておきますと、これはどうやら
    SC-88系の音源の仕様とDirectMusicの仕様、
    およびMIDIデータ側の問題が複合して起こる現象のように思います。

    やってみないとわかりませんが、MIDIデータ側で対処すれば
    問題を暫定的に解決することが出来るのではないか、とも思います。

    やのっちさんに全パートpiano1音色になるというデータを
    提示していただければ、いくつかの対策を練ったものを
    作成しようと思っています。

    今後の拙作MIDIデータにも反映したいと思っていますので、是非。


    【DirectMusicを使わない場合の曲の切り替えの間に対する考え方】------------

    確かに、DirectMusicを使わない場合、数秒の停止時間が発生します。

    うーん。これはWindowsXPの問題なのでしょうか。
    というのも、以前使っていたWindows98SEのときは
    こんな停止時間はなかったように思うのですが。

    私は、この停止時間を演出でカバーするのは
    ほぼ不可能ではないかと思います。

    言うなればロード時間の長いコンシューマゲームのようなもの。
    いい所で流れをばつんと断ち切られてしまうという
    ゲームとしては致命的な欠点になりうると思いますし。

    現状では、なんとかしてDirectMusicを
    違和感なく使用可能にする方法を模索以外に道はないでしょうね。。。



    (次レス:補足事項)
引用返信/返信 削除キー/
■3658 / inTopicNo.3)  MIDI作者からの意見(補足事項)
□投稿者/ siny -(2004/07/18(Sun) 15:15:55) [ID:KASOxn6n]
http://www1.kcn.ne.jp/~ma_sugi/
    (補足事項)前レスで出した結論に到達するための根拠を以下に示します。

    【問題点】---------------------------------------------------------------
    前述の環境において、DirectMusicをオンにした状態で
    SRC(2.0系)を実行した結果は、次の通りです。
    (MIDIデバイスはSRC.INIにて音源番号を指定して実行)

    (1)一部のデータにおいて特定のチャンネルがpiano1音色になる。
      (↑SC-88VLのみ)

    (2)同時発音数が多いデータにおいて、ノートが発音しっぱなしに
       なることがる。(SC-88VLのみ発生。再現性なし)

    (3)一部データにおいて、曲の冒頭が演奏されないことがある。


    【原因の推測】-----------------------------------------------------------

    (1)GSリセットが曲の冒頭に存在しており、さらに
       問題のチャンネルに対してバンク・ナンバーが設定されている場合
       特定の音色が音色がpiano1になるようです。

       当方の環境において、バリバリのSC-88PRO向けデータの大半は
       再生時に何らかのチャンネルがpiano1音色になってしまってます。
       SRCに限らず、通常のMIDI再生アプリに同様の現象を確認しています。

       しかし、例外としてTMIDI PlayerによるSC-88proエミュレーション
       実行下においてはチャンネルがpiano1音色になることがありません。

       したがって、この問題はGS音源の各機種固有のものなのかもしれません。
       GSリセット直後に、音源に存在しないインストゥルメントを
       呼び出そうとすると、初期値のpino1音色になる…ってところでしょうか。

       …ただし検証する機材が足りないため詳しい原因は不明です。
       現在確認できたのはSC-88VLのみです。

    (2)ノートが発音しっぱなしの状況は、曲の製作時に多々起こってます。
       これもSC-88VLのみで確認している現象です。
       一応、音源の電源を切入すると回避できます。

       原因は、おそらく最大同時発音数が上限を超えたことにあると思います。

       経験的に、ボイス数の多い音色を多用する
       曲の製作段階では特に発生しがちです。
       曲の完成段階においては発音タイミングをずらしたり
       不要なパートを削ったりすることで同時発音数を減らした結果、
       ノートが発音しっぱなしになることは極端に少なくなります。

       なお、この現象もSC-88VLのみ確認しました。
       他の音源では単に一部の音が鳴らなくなるだけで、
       発音しっぱなしにはなりません。

    (3)DirectMusicを使用時は、どうも曲の先頭の数百ms分が
       すっとばされて再生されることがあるようですね。
       これもおそらく音源の仕様による問題なのだと思います。

       実際、私がSC-88VLを購入した直後に
       その時点で公開していたデータのほとんどが
       曲の冒頭が演奏されない状態だったので
       あわてて全曲こっそり差し替えした覚えがあります(苦笑)

       で、これも推測の域を出ないのですが、すっとばされた部分に
       コントロールの類があった場合、前の演奏状態を維持してしまうのが
       やのっちさんの仰る問題のおおよその原因だと考えられます。
       
       例えばマスターヴォリュームを操作したデータの後に
       演奏される曲は、その影響を受けて音が小さくなったりします。

       或いは、半音ずれたような変な音程で
       音が鳴ったりしてませんか? >やのっちさん


    以上です。
引用返信/返信 削除キー/
■3660 / inTopicNo.4)  Re[3]: MIDI作者からの意見(補足事項)
□投稿者/ やのっち -(2004/07/19(Mon) 04:51:08) [ID:kSEcp7Mq]
     Siny様、レス有り難うございます。

     まずはじめに、お詫びを申し上げなければいけません。
     全パートがピアノ1の音になると言うのは、私の勘違いでした。
     正しくは、Siny様のおっしゃる通り、一部のパートでした。
     いったい何をどうはき違えて、全パートと思いこんでしまったのか自分でも分かりませんが、Siny様、並びに記事を読んで混乱された方にお詫びします。
     本当に済みませんでした。
     
     さて、
    > 例えばマスターヴォリュームを操作したデータの後に
    > 演奏される曲は、その影響を受けて音が小さくなったりします。
    > 或いは、半音ずれたような変な音程で
    > 音が鳴ったりしてませんか? >やのっちさん
     御指摘の通り、これらの現象も確認しております。


     一応、今までやった事を報告しますと、先日まで自分なりの解決策として、曲冒頭の音源リセットのシステムエクスクルーシブを消去しておりました。
     これでなぜか、かなりまともに演奏出来るようになりました。
     原因は分かりません。
     意味の分からないデータは消去!!といったノリでやっていましたもので。
     ただ、所詮は焼け石に水状態でした。
     やはり、多少演奏がおかしかったです。
     最近(と言っても一昨日から)は考え方の方向性を変え、DirectMusicを使用しないで演奏した場合の、曲間の間を如何にごまかすような演出が出来るかという事に考えを巡らせています。
     限りなく難しい気はしますが・・・。


    > したがって、この問題はGS音源の各機種固有のものなのかもしれません。
    > GSリセット直後に、音源に存在しないインストゥルメントを
    > 呼び出そうとすると、初期値のpino1音色になる…ってところでしょうか。
     これについては、
    1.SRCのDirectMusicを使用しないで再生した場合
    2.CubaseSX
    3.Windowsメディアプレイヤー
    4.IEのマルチメディア再生
    の4通りのソフトで再生した場合は、いずれもまともに再生出来ました。
     だから、自分としては、各機種固有の問題というよりは、DirectMusicの仕様の問題ではないかという印象を持っています。
     あくまで印象です。
     しかし、お互いに検証した音源が同じRoland製と言う事で、DirectMusicとの相性が一致すると考えれば、各機種固有という風に考えられます。
     Yamaha製などはどうなんでしょうかね・・・・。


    > 一部データにおいて、曲の冒頭が演奏されないことがある。
     という事なら、確かにおおよその現象について納得できます。
     とすれば、曲の冒頭にダミーの命令を置くなどして、全体を後ろにずらす事で解決しそうな気がしますね。

     ただ、曲頭のデータの問題は解決出来ても、ノートが発音したままになる問題は残りそうですね。
     発音数を減らす事で頻度を落とせるとは言っても、DirectMusicを使わずに再生する場合より遙かに頻度多いと思いますし。
     何より、曲の迫力を犠牲にしなければいけないかも知れないのはもったいない限りです(涙)(その辺は職人さんの腕次第ですか???)

    P.S.
     使用する曲のうち、一部のパートがピアノの音になってしまうのは、38番と56番です。
     多分、20番もですが、目立たないので分かりません。
     よろしくお願いします。
引用返信/返信 削除キー/
■3661 / inTopicNo.5)  これで解決…かな?
□投稿者/ siny -(2004/07/19(Mon) 08:09:27) [ID:KASOxn6n]
http://www1.kcn.ne.jp/~ma_sugi/
    やのっちさんの報告を元に色々やってみた結果
    どうやら解決できそうです。

    試してみた対策としては以下の3点です。

    (1)エクスクルーシブの送信時間を60ティック空けて
       順次送るようにしました。具体的には次のような感じです。

       001:01:000 著作権表記
       001:01:060 曲名
       001:01:120 GM1 リセット
       001:01:180 GS リセット
       001:01:240 マスターヴォリューム=100
       001:01:300 マスターチューン=442

    (2)リセットから50ms以上空けてから
       コントロールの初期化を行うようにしました。

    (3)プログラムチェンジが1小節目の0ティックで定義されていたのを
       2小節目の0ティックで定義するように変更しました。


    これで、ほぼ確実にpiano1音色になる状況は回避できます。
    手持ちのシーケンサだと、データを手打ちでやり直さないといけないので
    非常に面倒なのが難点といえば難点ですが。
    高性能なシーケンサを購入すべきなのかな。

    あと、ノートが発音されっぱなしになるのは
    詳しく検証してみた結果、最大発音数とは
    あんまり関係なく起こるみたいです。

    じゃあ何が原因かと考えてみると、
    どうやらDirectMusicの仕様のような気がしますね。
    ソフト終了時などに、ノートオフが自動で
    入らなかったりするのかも知れません。

    まあ、GSリセットを当ててやれば鳴りっぱなし状態は
    解除できますので解決できなくもありません。

    以下に、作成したサンプルデータをUPしました。
    おそらくキチンと動作するはずなので、
    SRCで適当なシナリオにて再生してみてください。

    http://www1.kcn.ne.jp/~ma_sugi/upfiles/siny_sample.zip
引用返信/返信 削除キー/
■3663 / inTopicNo.6)  音源について。
□投稿者/ テルス -(2004/07/19(Mon) 13:56:43) [ID:anwfJnRA]
    2004/07/19(Mon) 13:57:33 編集(投稿者)

    No3660に返信(やのっちさんの記事)

    はじめまして、テルスといいます。
    MIDIの作成はからっきしですが、使用している音源についてで一言。

    >  Yamaha製などはどうなんでしょうかね・・・・。

    結論から云ってしまえば、YAMAHA製でも一緒です。

    私は再生にYAMAHAのMU-128を使用していますが、
    やはりDirectMusicを使用すると一部の音がピアノに化けるという症状が発生します。

    プレイ中、これが気になり過去幾度なく色々な音源を試してみました。

    今まで検証してきたのは、

    Roland ソフトウェア音源 VSC-3.2
    YAMAHA ソフトウェア音源 S-YXG50
    玄人志向 サウンドカードYMF-724(S-YXG50互換)
    Creative サウンドカードSoundBlasterLiveDA2 内蔵ソフト音源
    同 サウンドフォント。
    後はMicrosoft GS Wavetable SW synthです。

    と、これだけ試してみましたが・・・。
    サウンドフォントを除けば、全て音化けが発生していました。

    上ふたつのソフト音源に至っては、
    通常の再生ですら付属の専用プレイヤーを使用しないと、
    音抜けや音化けが発生します。

    やはりDirectMusicと音源との相性の問題だとは思いますが・・・。
    現状では、MIDI制作者の方に対応していただくか、
    mp3での再生を行うかの二択が一番満足のいく結果が出せるとは思います。
    mp3の場合、どうしても容量の肥大化という問題を抱えることになるのが、
    最大の問題ではありますが・・・。
引用返信/返信 削除キー/
■3664 / inTopicNo.7)  Re[5]: これで解決…かな?
□投稿者/ やのっち -(2004/07/19(Mon) 14:56:29) [ID:kSEcp7Mq]
    2004/07/19(Mon) 22:13:39 編集(投稿者)

     検証およびデータの対応、ありがとうございます。
     まともに再生出来ました。
     SRCのDirectMusicで10回程再生してみましたが、今のところ曲の途中でノートが鳴りっぱなしになる現象は起こっておりません。

     Siny様が前レスで提示された方法で、多分今までの問題はほぼ解決出来ると思います。
     その上で、捕捉というか、私なりに考察してみました。


     先ほど試してみたのですが、音の洪水になるのは、その曲の前にペダルを使う曲を再生した場合、リセット命令が飛ばされると、そのチャンネルのペダルが下がりっぱなしになる為に起こるみたいです。
     再生ソフトのバグや諸々の事情で起こる場合もあるみたいですが・・・・。

     先ほど行った簡単な実験の結果をあげておきます。
    (ペダルを使う曲の例として、霜月氷雪様の Dfa_11.mid を使用させて頂きました)

    #[test01.eve]
    #  Siny様の元の56番のデータではリセットと全てのチャンネルの
    # プログラムチェンジがポジション 0001.01.01.000(曲の一番最初)
    # に置かれています。
    #  eveファイルを開いて、dfa_11.mid がある程度再生されたところ
    # で画面をクリックすると、ピアノの音が伸びっぱなの状態で再生が
    # ストップします。
    #  もう一度クリックすると、ピアノの音が止まり、一瞬経ってから
    # siny056.mid が始まりますが、一部の音がピアノ1の音で再生され
    # ます。音の洪水は起こらないみたいです。
    スタート:
    StartBGM dfa_11.mid
    Wait Click
    StopBGM
    Wait Click
    StartBGM siny056.mid
    Wait Click
    Exit

    #[test02.eve]
    #  Siny様の元の56番のデータから、システムエクスクルーシブの
    # みを削除して見ました。便宜上 siny056_r.mid とします。
    #  音源のリセット命令無し、ポジション 0001.01.01.000 に全チャ
    # ンネルのプログラムチェンジが置かれた状態です。
    #  各チャンネルとも音色はきちんと変わっています(多分)が、音
    # 源がリセットされていない為、前の曲のペダルの設定を引きずって
    # しまい、特定のチャンネルのノートがオフされずに発音したままの
    # 状態になり、音の洪水になります。
    スタート:
    StartBGM dfa_11.mid
    Wait Click
    StopBGM
    Wait Click
    StartBGM siny056_r.mid
    Wait Click
    Exit

    #[test03.eve]
    #  Siny様がDirectMusic用にリニューアルされたデータを使用。
    #  データの仕様の詳細は、Siny様の前レスを参照。
    #  正常(意図通り)に問題なく再生されます。
    スタート:
    StartBGM dfa_11.mid
    Wait Click
    StopBGM
    Wait Click
    StartBGM siny056-r01.mid
    Wait Click
    Exit


     以上の事から推測するに、Midiが正常に再生されなかった根本的な原因は、リセット命令とその他の命令が時間的に近すぎた事ではと思いました。
     Midi音源がリセット作業をしている最中にプログラムチェンジが送信されて来たから、音源の方で対応出来なかったのではと。。。
     また、音楽再生という作業そのものが、バックグラウンドでリアルタイムに行われる処理の為、最初の方の処理が不安定になり、データの頭が正常に処理されないという事が起こるのではないかと思いました。
     DirectMusic以外のソフトで正常に再生出来るのは、ソフトがその辺のタイミングを上手くとってくれているのではないでしょうか。
     そう言えば、Cubaseというソフトの昔のバージョンには、再生ボタンを押してから、実際に再生されるまでの待ち時間をms単位で指定する機能があり、この数値を小さくしすぎると、正常に再生出来ないという事が起こっていました。(主に、テンポやタイミングに関する問題でしたから、今問題にしている内容とは少しズレていますが。)
     DirectMusicはMidiの再生に特化したソフトではなくあくまでハードをコントロールする為のAPIだから、必要最低限の事しかやっていないとかなんとか・・・・(想像です。すみません。m(_ _)m)

     長々と蛇足を宣ってしまいました。
     資料も無しに書いていますので、もし間違った事を言ってしまっていたら、御指摘お願いします。
     ではでは。
引用返信/返信 削除キー/
■3666 / inTopicNo.8)  Re[5]: 音源について。
□投稿者/ やのっち -(2004/07/19(Mon) 16:09:48) [ID:kSEcp7Mq]
    > テルス様

     なるほど、参考になります。

     今までのSiny様とテルス様のレスと、私の考察を併せて考えますと、音化けの原因は、一般のMidi再生に特化したソフトと、DirectMusicというものの根本的な考え方の違いにありそうですね。
     また想像になりますが、Midi再生ソフトという物は、多少無理目なデータでも、綺麗に再生出来るような工夫が凝らしてあるのでは無いでしょうか。
     例えば、音源のリセット命令の直後に音色の設定がある場合、音源のリセット動作が完了してから音色の設定を送信するように、タイミングを取るとか・・・
     それに対し、DirectMusicは、単にハードを直接制御する為のWindowsの機能であり、データをそのまま何も加工せずに送信する、、、つまりは、DirectMusicで再生したMidiこそが、そのデータと音源との本来の動作なのでは無いかと・・・・。
     そう考えれば、No3661でSiny様の提示された方法が、音化けをはじめ、現状の問題に最も有効な対応方法と言える気がします。

     今まで私は、DirectMusic→ほとんどのMidiが正常に再生出来ない→扱いが難しい→しょぼい といった印象でしたが、どうやら認識を改める事が出来そうです。

     音は映像とともに、ゲームを盛り上げる為の演出の2大要素と思います。
     自分も最近シナリオを書き始めまして、なるべく良い状態(プレイヤーが気持ちよくプレイ出来る状態)を作り上げて行きたいと思っています。
     今回、このスレッドを通して、自分の中で少しでも良い作品を作る為の足がかりになったと思います。
     取り敢えず、この問題はこれで解決とさせて頂きますが、また他に何か考えなり突っ込みなりある方がいらっしゃいましたら、書き込んで頂けると有り難いです。
     どうも有り難うございました。
解決済み!
引用返信/返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

- Child Tree -
- Antispam Version -