Soundがcaptureできれば...その4

1.大分、進化いたしました。

サウンドカードも、192KHzまで対応できるものに、替えました。

Prodigy7.1XT と言う、サウンドカードです。私にしては、張り込んだ値段でした。(送料、税込み\12343) 珍しいなあ....(^_^;

48KHzサンプリングでの、24KHzまでの特性

                                Prodigy7.1XT

                            YAMAHA YMF724搭載バルク

ちょっと、ええようです。

Prodigy7.1XTのほうは、勿論、96KHzサンプリングできます。

新しい機能としては、窓関数をリアルタイムで、替えることができます。

spectrumに、殆ど、変化ないけど....

例によって、SoundLibraryのお世話になっております、m(_ _)m

 

新しい機能の目玉は、spectrum拡大ボタンをおすと、spectrumの表示が、大きくなります。

波形拡大にすると、以下のように、波形が拡大されて、表示されます。

種明かしは、波形、spectrum表示画面のベースに、splitContainerを、置いたのでした。

この両表示画面、及び、splitContainerのAnchorを、全方向に指定しておいて

このsplitContainerのsplitdistanceの位置を替えただけなんです、めちゃ簡単にできちゃいます。

private void split_button_Click(object sender, EventArgs e)

{

    spectrum_mag = !spectrum_mag;

    if (spectrum_mag)

    {

        splitContainer1.SplitterDistance = 4;

        split_button.Text = "波形拡大";

    }

    else

    {

        splitContainer1.SplitterDistance = splitContainer1.Height - 4;

        split_button.Text = "spectrum 拡大";

    }

}

 

全画面表示にも、対応しました。

最初は、只、縮尺率を掛けて、描画していたのですが、

「C# ゲームプログラミング 赤坂玲音 ソフトバンククリエイティブ社」を見て、大いに参考にさせて頂きました。

方法として、1番簡単なのが、座標変換です。ワールド変換を使います。

しかし、この方法は、元の画像が拡大されるので、ちょっと、汚くなります、あかん。

次は、メタファイルを、メモリーに描画して、出来上がった画像を、一挙に表示する方法です。

詳しく書けんけど、アウト。

最後は、書き方は、メタファイルと同じなのですが、BMPファイルをメモリに描く方法です。

これで、リソースの大食いを止められました、グッド。

問題は、描画が遅いことです。

波形の変化が、カクカクしていることです。

やっぱり、DirectDrawでないと、満足でけん....ちゅうことに、なりまして、

いざ、DirectXの DirectDraw を、始めんかな....しんど。.

H.18.8.9