掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
音のリミッター機能を作るには? (ID:53146)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめまして、Visual C++6.0の経験が、約3週間のカミ—ヤ777といいます。よろしくお願いします。 『著作者:田辺義和氏 Windowsサウンドプログラム』のリアルタイム処理の WaveThruプログラムを応用して、リアルタイムに雑音(騒音)をおさえつつ、 過小な音量を大きくしたり、過大な音量を小さくするマルチなリミッター機能を作っています。 ↓以下が、そのアドレスになります。 http://www.cactussoft.co.jp/download.htm ボリュームコントロール機能は、WaveOutSetVolume()関数やWaveOutGetVolume ()関数を使いました。 私としては、入力された音のレベルを求めて、この大きさを使って、レベルをコントロールできるのでは? と思っています。 そこで、このソースの『WaveThruDlg.cpp』の、入力側の録音バッファがある GetRecBuffData(CBuffPos* pBuffPos, LPBYTE pBuff, DWORD nLength) 関数にレベルをコントロールできそうな情報があるのか?、深いところまで理解していないですが これに一次のIIRフィルタを用いれば、入力レベルを検出できるのではないかと思っています。 そして、この検出された入力レベルをもとに、再生側である出力の SetPlayBuffData(CBuffPos* pBuffPos, LPBYTE pBuff, DWORD nLength)関数と、 組み合わせて数値演算式で処理を行えば、リミッタが実装できるのではないかな? と思っています。 それか、ボリュームコントロール機能を作る際に用いた、WaveOutSetVolume()関数や WaveOutGetVolume()関数を使うことで、できるのかな?とも思っています。 ただ、これらの作り方が見えてこず、わからない状態で、しかも、 期日も迫っていますので、非常に困っています。 どういった関数やを使えばいいのか、コードを書けばいいのかわかりません。 誠に恐縮ですが、アドバイスよろしくお願いします。失礼します。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.