先日のエントリで書いたようにportaudioのコンパイルがすんなり通ったので、しばらくWindows環境では主にASIOドライバを使ってDSPの実験などをやっていました。ここのところちょっと思うところがあってWDM kernel streamingも試してみようと思い、下準備は出来たような気がしたので、先ほどIQ出力のSSB変調プログラムに組み込んでみました。最初はうまく行ったのですが、一度オーディオストリームを止めてから再開すると固まってしまいます。うーむ、なかなか思ったようには行きません。原因は全然わかっていないのですが、とりあえず最新のソースを持ってきてもう一度portaudioを作り直してみようかなと思っています。
と思ってぶらぶらしていたら、junzoさんもportaudioにトライされているではないですか! ちょっとまだ詳しくは見ていないというか、MSの環境に詳しくないので良くわからないのですが、VC++での方が面倒なのでしょうか。きっとこの後はC#からportaudioの機能を使おうとされているのだと思いますが。その辺はFlexRadioのPowerSDRのソースが参考になるかと。
と思ってぶらぶらしていたら、junzoさんもportaudioにトライされているではないですか! ちょっとまだ詳しくは見ていないというか、MSの環境に詳しくないので良くわからないのですが、VC++での方が面倒なのでしょうか。きっとこの後はC#からportaudioの機能を使おうとされているのだと思いますが。その辺はFlexRadioのPowerSDRのソースが参考になるかと。
はい、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
ところで、私はしばらく前のバージョンのportaudioを使っていたのですが、junzoさんの記事を読んで新しいものを持ってきたら、MinGW環境ではまたまたすんなりコンパイルが通りません。うーむ、あまりこういうところで悩みたくないのですが...
ほんと、すごいですね。こういった地道さは、趣味の範囲内では、私には無縁です。私は、C#に難癖をつけて、実は、本心はC++で、やりたかったのでしょう(自分でもその自覚がなかったものですから(^_^; )その、きっかけを待ってたようなものです hi。
>うーむ、あまりこういうところで悩みたくないのですが...
私も、SH2-7047を触っていた時、GDB stubが、できるまで、えらい時間が、かかりました。ところが、GCCのver.upで、また、compileできなくなり、終に、SH2も、そこで、the end に、相なりました苦ーい経験が...VisualC++を使われたら? no problemですよ..無料でございますよ、と、悪魔のお誘いでーす。
PortAudioの件なのですが、一通りのtestプログラムを当たりましたが、はっきりとは、Callbackのイメージが掴めていませんねん。FullDuplexを、目指してます。GDBさんのプログラムも、参考にさせていただきますね、ありがとうございます。
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 等、参考になるかも知れません。御礼方々。
junzoさんのwebはきっと色んな方の参考になっていると思いますよ。dllの作り方だって環境によっても違うわけですし。
MinGW関係の情報ありがとうございます。gccのバグもあるのですか....今のところはそれ以前のところで止まっている気がしています。もうちょっと調べてまた報告したいと思います。
次はどのように進められるのか、また進捗を楽しみにしております。
私の方は前にちょっと言ってました「野望」があるのですが、全然進んでません。なんとかしたいと思っています。
-...- ところで、JA7TDOさんのSoft66の出力は、既にベースバンドに、落ちているのでしょうか?だとすれば、複素フィルタに掛けるだけで、いいのでしょうか?そこらへんが、まだ、解ってないのです。宜しければ、お教え下さい。なんせ、バーチカルアンテナを、恐々で、上げたんで、交信を聞きたくなってきました。
実際に電波を受信すると、またやる気が湧いてくると思いますよ。
>ソフトウェアの方で目的信号が0Hzに来るようにシフトして、そこで複素フィルタをかけるという処理になるかと思います。
ここは、よく解りました。有難うございます。
>実際に電波を受信すると、...
そうだと思います。少しだけ、やる気が出てきました。