• ベストアンサー

VB 音の波形を取得する関数は?

wavデータから、データを読み込んで、その音データの波形を解析したいと思っています。  とりあえずは、VBで開発し、wavデータを再生することまでできました。しかし、音の波形を取得するには、どうすればよいかわからず、ここで質問させて頂きます。  関数、API、サイトなど、何か情報の書き込みをよろしくお願い致します。 m(_ _)m

  • Nickee
  • お礼率79% (107/134)

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

  • ベストアンサー
回答No.1

Wizard_Zeroと申します。 リアルタイムで鳴っている音を拾うにはwaveIn系のAPIを使うことで取得できます。 WAVEファイルから直接波形を取得するには、WAVEファイルを自力で解読するか、mmio系APIを使います。 圧縮かかってたりするとちょっと面倒かもしれません。

Nickee
質問者

お礼

ご回答ありがとうございます。 まだ、試しておりませんが、mmio系APIとwaveIN系APIの情報をもとに試行錯誤してみます。  ありがとうございました。

関連するQ&A

  • VBでのwavファイルの再生について

    実は今VB6を使ってゲームを作ってます。 wavファイルを再生させて音を出してるですが、少し困ったことがあります。使ってる関数はwin32APIのPlaySoundを使ってます。 普通に音を再生する分には問題ないのですが、非常に短い間隔で再生を繰り返すと音が鳴らなくなります。 再生時間0.07秒のwavファイルを再生し終わる前に、もう一度そのファイルを再生すると音が鳴らない。 PlaySoundの他にも音を再生するAPI関数があるようですけど、使い方が良く分かりません。 どうすればいいでしょうか? VB6で、OSはwindowsXP使ってます。

  • VBでRegisterWindowMessage関数を利用したメッセージの取得

    ICカードのリーダにアクセスする開発ツールでコールバック関係のAPIが提供されているのですが、「メッセージ値の取得はWindows APIのRegisterWindowMessage関数を利用して行う」とマニュアルにあり、呼び元でどのようにコーディングしたらよいか知識不足の為、わかりません。。。 API開発元に照会するべき事は照会しようと考えていますが、VBにてRegisterWindowMessage関数を利用したメッセージの取得方法についてサンプル等あれば、教えてください。 (VBほとんど初心者に近い腕前です。よろしくお願いします。) 参考の為にAPIの引数を記載します。(APIはVC++及びVBにて使用可能でありマニュアル上の記載はVC++でされています。)   関数名:set_call_back_parameters 引数(in): int handle; //ハンドラ unsigned char* message_of_card_find;     //カード認識時送信メッセージ unsigned char* message_of_card_loss;    //カード認識NG送信メッセージ unsigned long inerval;    //認識行う間隔 ミリ秒 unsigned long retry_count    //リトライカウント値 回数  ※引数のうちhandleがメッセージ値取得に関連していると思われるのですが、何をセットするのかわかりません。 (API開発元に照会すべき事であればそうします。)

  • VB6.0のレジストリ情報取得方法

    VB6でレジストリの情報取得について、質問いたします。 VBにて、レジストリのセクション名を取得(検索して存在するなら真の値を返すだけでもよい)したいのですが、APIとか関数はあるのでしょうかまたは、出来るのでしょうか?調べた限り見つからない・・・・(-_-; 宜しくお願いします。

  • VBでインストール済みアプリケーション情報を取得する方法

    VBにてPCにインストール済みアプリケーション(「コントロールパネル」ー「プログラムの追加と削除」に表示されるアプリケーション)の情報を取得死体のですが、これら情報はどのようにして取得できるのでしょうか? レジストリキーの検索やWMIなど探してみたのですが、うまい解決策が見つかりません。 API関数があるのでしょうか?

  • 二つの波形の合致を調べる方法は?

    波形解析について初心者の為、分かりづらいかもしれませんが宜しくお願い致します。 例えば、Excel等で単位の異なる二系列の折れ線グラフを描画したとします。 この二つのデータの波形が、どれくらい似ているかを調べるにはどの様な方法があるでしょうか。 解析ツール等を使うという方法ではなく、具体的な計算方法を教えて頂きたいのです。 二つの波形間を積分して、その面積を求めれば良いのか、フーリエ解析をすれば良いのか。。。等など通常はどのように解析しているのか、考えても良く分かりません。 どうぞ宜しくお願い致します。

  • WAVフォーマットについて

    WindowsのWAVフォーマットについて http://www.kk.iij4u.or.jp/~kondo/wave/ をもとに解析してるのですが、 PCM波形データの入っている部分がいまいちよくわかりません。 上記サイトには 16bitステレオの場合、16bit毎にLRLRLR・・・の順番でリトルエンディアンで書き込まれているように書いてあるのですが、 正弦波を録音した波形データを解析(PCM波形データ→Short値→文字列に変換)し、エクセルにはりつけてグラフを書いても、正弦波にはほどとおい、 ホワイトノイズ的な波形が描画されてしまいます。 そもそもPCMの解釈が誤っているのでしょうか? WAVファイルは再生すると、きれいな正弦波的な音が再生されるので、 こわれていることはないと思ってます。

  • VBで音声再生に関して

    ヘッダ情報のない16_khz,16_bitの音声ファイルをwavへの変換なしで直接取り出して 再生したいのですが、再生するAPIかなにかないでしょうか? メモリー上にバイト型配列でおきwavのヘッダ情報をつけ音声ファイルをくっつける という方法を考えついたのですが それだとPlaySound()APIではメモリー上から呼び出せず困っています。 wavファイルのヘッダ情報についてもわかりません。

  • Visual Basic5.0でファイルの取得

    VBの初心者です。 今、VisualBasic5.0を使って、UNIXの中のCSVファイルを取ってくるというプログラムを作っています。 API関数を使って取ってくることができるのは確認済みなのですが、できればAPI関数を使わずに取得したいのです。 VBhelpの中で使えそうなオブジェクトや関数など探してみたのですが、直接ファイルを取得するようなものは見つかりませんでした。 VB5.0を使ってプログラムを作るという条件があるので、最新のVB6.0の方でできるのかどうかは調べていません。 わかられる方がおられましたら、よろしくお願いします。

  • PCインストール済みのアプリケーション情報の取得方法

    初めての書き込みです。 掲示板はいつも参考資料として、拝見させて頂いてますが 今回は、どうしても参考のソースや情報がみつからなくて質問を 書き込ませて頂きました。宜しくお願い致しますm(_ _)m 会社でVB6を使って、パソコンのシステム調査のために、現在エクセルに出力させるプログラムを組んでいます。 メモリ・HDD・OSバージョン・CPUまでは、API関数を使い 情報を取得するように出来ましたが、一番重要な 「インストール済みのアプリケーション情報」の取得方法が いくら調べても、分らないのです(T_T) APIでレジストリのHKEY_CURRENT_USERのアンインストールの値を 読み込めばいいところまでは調べたのですが API自体、それほど把握していないので かなり悩みつづけている状態です。。。 参考ソースや他の方法があれば教えて頂きたいです。 宜しくお願い致します。

  • VB のデータ型関数について

    vb超初心者です。 データ型について疑問があります。 データ型の関数で、 1。データ型を調べる関数   IsNumeric等 2。データ型を変換する関数   Cint等 この2つの関数の違いが分かりません。  調べると変換とは同じ意味で理解しているのですが? どのように、どんな時に使いわけたらいいでしょうか? よろしくお願い申し上げます。

専門家に質問してみよう