JI3GAB/blog

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

portaudioでのWDM-KS

2006-11-29 00:17:06 | サウンドカード/ドライバ
先日のエントリで書いたようにportaudioのコンパイルがすんなり通ったので、しばらくWindows環境では主にASIOドライバを使ってDSPの実験などをやっていました。ここのところちょっと思うところがあってWDM kernel streamingも試してみようと思い、下準備は出来たような気がしたので、先ほどIQ出力のSSB変調プログラムに組み込んでみました。最初はうまく行ったのですが、一度オーディオストリームを止めてから再開すると固まってしまいます。うーむ、なかなか思ったようには行きません。原因は全然わかっていないのですが、とりあえず最新のソースを持ってきてもう一度portaudioを作り直してみようかなと思っています。
と思ってぶらぶらしていたら、junzoさんもportaudioにトライされているではないですか! ちょっとまだ詳しくは見ていないというか、MSの環境に詳しくないので良くわからないのですが、VC++での方が面倒なのでしょうか。きっとこの後はC#からportaudioの機能を使おうとされているのだと思いますが。その辺はFlexRadioのPowerSDRのソースが参考になるかと。

コメント (32)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« SDR-IQ from RFSpace | トップ | Voice Shaper »
最新の画像もっと見る

32 コメント

コメント日が  古い順  |   新しい順
PortAudio始めました (junzo)
2006-11-29 16:22:02
 GABさん こんにちは、junzoです。
はい、PortAudio ASIOを、始めました。
DLL化しないと、沢山のソースファイルを
Portaudio Windows ASIO with MSVCに従って、書かなければならんので、しんどい! まだ、PortAudioを始めたばかりなので、testプログラムを調べながら、Callbackに挑戦してます。VisualCに付きましては、Portaudio Windows ASIO with MSVC通りにすると、あっけなく、動作しましたので、これ(VisualC)を、使って行こうと思います。managedDirectXは、発展途上で、不安定なので、使用を、あきらめました。今、DirectX Graphicsも、VisualCで、触っております。いつか、DirectX Graphicsと、PortAudioを、合体するつもりで、おります。
PowerSDRのソースを見ると、PortAudioの各関数について、一つずつ、dll_importしておりまして、わたしゃ、そんな、しんどい事、ようしません hi。
そんな訳で、VisualCで、触り始めました。なにか、できましたら、ご報告申し上げますが、長いこと、かかりそうです。 73
返信する
最近のバージョン (JI3GAB)
2006-12-01 00:32:03
junzoさんこんばんは。そうですね、一つずつdll_importしてるみたいで、ある意味すごいですね。私のような無精者だと、あれをそのまま頂いてそれで済ましてしまうところですが。
ところで、私はしばらく前のバージョンのportaudioを使っていたのですが、junzoさんの記事を読んで新しいものを持ってきたら、MinGW環境ではまたまたすんなりコンパイルが通りません。うーむ、あまりこういうところで悩みたくないのですが...
返信する
ほんと、すごいですね (JUNZO)
2006-12-02 01:14:46
>一つずつdll_importしてるみたいで、ある意味すごいですね
 ほんと、すごいですね。こういった地道さは、趣味の範囲内では、私には無縁です。私は、C#に難癖をつけて、実は、本心はC++で、やりたかったのでしょう(自分でもその自覚がなかったものですから(^_^; )その、きっかけを待ってたようなものです hi。
>うーむ、あまりこういうところで悩みたくないのですが...
 私も、SH2-7047を触っていた時、GDB stubが、できるまで、えらい時間が、かかりました。ところが、GCCのver.upで、また、compileできなくなり、終に、SH2も、そこで、the end に、相なりました苦ーい経験が...VisualC++を使われたら? no problemですよ..無料でございますよ、と、悪魔のお誘いでーす。
 PortAudioの件なのですが、一通りのtestプログラムを当たりましたが、はっきりとは、Callbackのイメージが掴めていませんねん。FullDuplexを、目指してます。GDBさんのプログラムも、参考にさせていただきますね、ありがとうございます。
返信する
dssbp大いに参考になりました (junzo)
2006-12-02 19:18:48
GABさん、こんにちは。
dssbpのソースプログラム、有難く読ませて頂きました。Callback関数の中で、全て処理されておられるのですね、なるほどです。私や、てっきり、streamを止めて、処理し、又、Callbackを呼ぶのかと...大いに参考になりました、ありがとうございます。PortAudioも、とっくの昔に、dll化されておられるのですね...私のwebなんか、大恥ずかしですが、皆様のヒントになるかもと、日記風に書きなぐっております。
MinGWでの不具合を、お聞きして、私が引き金になったみたいで、申し訳ないです。MinGWは、全く知らないのですが、調べてみますと、こんな事が、書いてありました。Under certain circumstances you may find a bug in a base package, such as gcc, that is platform independent (ie/ can be reproduced on another platform other than Win32). In this situation please generate a simple test case that illustrates the bug using only standard headers and libraries. なので、もしかしたら、GCC自体のbugかも...それでしたら、http://www.gnu.org/software/gcc/bugs.html 等、参考になるかも知れません。御礼方々。
返信する
参考になって嬉しいです (JI3GAB)
2006-12-03 01:06:04
いやー、いい加減なソースコードで冷や汗物です。でもあまり類似のものがないようだったので、どなたかの参考になればと思い切って公開してみました。callbackは多分あれでいいのだと思います。私もtest/patest_fuzzとかあの変のソースをちょろっと見て、こんなもんかなとやってみたら動いたという感じです。
junzoさんのwebはきっと色んな方の参考になっていると思いますよ。dllの作り方だって環境によっても違うわけですし。
MinGW関係の情報ありがとうございます。gccのバグもあるのですか....今のところはそれ以前のところで止まっている気がしています。もうちょっと調べてまた報告したいと思います。
返信する
複素フィルタ方式で、SSB発生! (junzo)
2007-02-25 23:19:21
 GABさん、今晩は、junzoです。GABさんに教えて頂いたportaudio ASIOで、漸く、ある程度、満足のゆく、SSBを、得られました! carrier suppression 70dB以上、逆side band suppressionは、90dB以上は、あると思われます(ちょっと、控え目)。GABさん、酔漢さんに、教えて頂いたお陰です。現時点(2/25)で、当HPに、未発表なのですが、お礼を、先に申し上げたくて...どうも有難うございました。
返信する
Re: 複素フィルタ方式で、SSB発生! (JI3GAB)
2007-03-09 03:31:22
ごぶさたしてます。コメントに気づくのが遅くて済みません。複素フィルタ方式のところをざっと拝見しました。なかなか素晴らしい結果のようですね! あとでもう少し詳しく見たいと思います。
次はどのように進められるのか、また進捗を楽しみにしております。
私の方は前にちょっと言ってました「野望」があるのですが、全然進んでません。なんとかしたいと思っています。
返信する
Re: 複素フィルタ方式で、SSB発生! (junzo)
2007-03-09 20:51:37
 お蔭様で、何とかできました。ほんとに、ありがとうございます。GABさんの御計画、楽しみに、気長にまっております。...今は、受信の方を、確かめております。何とか、動作しました。現在、放心状態です。
-...- ところで、JA7TDOさんのSoft66の出力は、既にベースバンドに、落ちているのでしょうか?だとすれば、複素フィルタに掛けるだけで、いいのでしょうか?そこらへんが、まだ、解ってないのです。宜しければ、お教え下さい。なんせ、バーチカルアンテナを、恐々で、上げたんで、交信を聞きたくなってきました。
返信する
soft66 (JI3GAB)
2007-03-10 00:39:41
ベースバンドというのをどういう意味に解釈するかにもよりますが(って、私も何が正しいかわかってません)、soft66はベースバンドのI/Q出力が出てきます。soft66やsoftrockの基本形はコンバータのOSCは固定ですから、ソフトウェアの方で目的信号が0Hzに来るようにシフトして、そこで複素フィルタをかけるという処理になるかと思います。
実際に電波を受信すると、またやる気が湧いてくると思いますよ。
返信する
Re>soft66 (junzo)
2007-03-10 02:21:35
そうしますと、I/Q出力自体は、それぞれ、まだ、イメージ信号を持っているのでしょうか? 初歩的な質問で、すみません。
>ソフトウェアの方で目的信号が0Hzに来るようにシフトして、そこで複素フィルタをかけるという処理になるかと思います。
ここは、よく解りました。有難うございます。
>実際に電波を受信すると、...
そうだと思います。少しだけ、やる気が出てきました。
返信する

コメントを投稿

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