JI3GAB/blog

ラジオに関する話題を中心につらつらと

portaudioのコンパイル

2006-09-23 23:30:21 | サウンドカード/ドライバ
以前紹介したDSsbpも含めて、サウンドカードとのデータのやりとりにはportaudioというライブラリを使っています。WindwosではMME,DirectSound,ASIO,WDM-KSに対応していますし、LinuxではOSSとAlsaと、ほとんどの方式に対応して、アプリケーションプログラムからは統一的なインタフェースでサウンドカードとのデータの受け渡しが出来るようになっています。こんな便利なportaudioなんですが、そのportaudioライブラリ自体のコンパイルがなかなかうまく行かなくて、今までASIOとWDM-KSに関してはコンパイルが通らなかったり、なんとか通っても正常に動作しないような有様でした。
WindowsでのコンパイルにはMingWというWindows環境でgccを使うためのプログラム一式を使っています。ちなみにこれはWideStudioについてくるのでそれを使っています。で、MingWの最低限のシステムだけではconfigureスクリプトが動かせないので、今まで自分でMakfefileを書いてコンパイルしていたのですが、MingWと組み合わせて使うMSYSというユーティリティのセットがあることをつい最近知り(きっと前からあったんだろうなあ…)、それを入れてshellを動かしてconfigure, makeしたらASIOもWDMもあっさりコンパイル出来て、テストプログラムも動作するようです。そんなわけで、もう先週の話ですけれど、最近ちょっとまたいじっていた自作の変調用プログラム(I/Qで出力し、アナログのAF-PSNの代わりにも使えるし、周波数をオフセットすることも出来る)に、その新しくmakeしたportaudioライブラリを組み合わせてASIOドライバを使って動かしてみたところ、時間遅れがかなり小さくなって、しゃべりながらモニターできるくらいになりました。
あとは、動作時にどういうカード/ドライバが使えるかを検出してユーザが選択できるようにしたいところなんですが、これがちょっと面倒で、なかなかやる気が起きません。一つには、portaudioがMMEとDirectSoundでは入力ポートと出力ポートを別々のデバイスとして扱うのに大して、ASIO、WDM(それからALSAも)では、入出力の両方の機能を持った一つのデバイスとして扱うので、それにあわせて処理を変えるのがなんとなく面倒だなあと重い腰が上がらないわけです。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Softrockの特性をテスト | トップ | Ubuntu Edgyへのアップグレード »
最新の画像もっと見る

コメントを投稿

サウンドカード/ドライバ」カテゴリの最新記事