2013-07-01から1ヶ月間の記事一覧

PortAudioでのマイク入力をSpeexでエンコード/デコードしてそのまま鳴らす

この例だとNSpeexが負荷の高いノイズフィルタとしか扱えてないのだけど、検証コードとしては十分。NSpeexエンコーダのポイントとしては、 16bit MONO サンプルレート: NB=8KHz, WD=16KHz, UWD=32KHz フレームサイズ: NB=160, WD=320, UWD=640 NSpeex.SpeexEn…

PortAudioでマイク入力をそのままスピーカーに出力するだけのコード

portaudiosharp - .NET bindings for the portable low-latency audio library PortAudio - Google Project Hostingを使えばいいのに、ちょっとラッパーの実装が気に入らないので自分でアンマネージドコードを呼び出してみている。(ちなみにportaudiosharp…

アンマネージドコードにCallbackを指定したらCallbackOnCollectedDelegateが頻発する

なんとなくPortAudioSharpを使わずに、自分でDllImportとか書いてPortAudioを使ってみている。そしたら、少し動かしているだけでCallbackOnCollectedDelegateが頻発して、少しはまってしまった。原因はcallbackOnCollectedDelegate MDAに書いてある通り、ア…

PortAudioをVisual Studio 2012でビルド

特に難しい点は無し。 PortAudioの最新のstable(pa_stable_v19_20111121.tgz)をダウンロード ASIO SDKをダウンロード ユーザ登録とかが面倒 (ASIO SDKのダウンロードの仕方 : 工作と競馬) ASIO SDKを ${PortAudio}/src/hostapi/asio/asiosdk に配置 ${PortAu…

gstremer-sharpでOgg/Speexを再生する

demuxerを使った場合のLinkのさせ方で詰まったのでメモ。 初期化 var path = @"C:\gstreamer"; Environment.SetEnvironmentVariable("PATH", String.Format(@"C:\Windows;{0}\lib;{0}\bin", path)); Environment.SetEnvironmentVariable("GST_PLUGIN_PATH", …

意識の高い無職にジョブチェンジしました

近いうちに会社(法人)を作る方向で動き始めました。もう少し無職期間を延ばすなり、どこかに就職するなりという選択肢もあったんですが、名古屋創業準備ルーム(ドリーム・ナビ)という創業支援事業に応募したら審査(書類+面談)に通ってしまったのが、…

.NETから叩ける組み込みブラウザエンジン

丸一日かけて調査したのだけど、直近では使わなさそうなのでメモだけ。状況が変わりやすい世界のようなので、1年後にはここに書いた情報は陳腐化して使えなくなってる可能性がある。 Firefox(Gecko) Firefoxをアプリ内に組み込みたい場合は、XUL RunnnerをGe…

.NET基礎勉強会でMSILの話をしてきました

動的なILの生成と編集 from terurou 自分より.NET力の高い方が来場されていたお蔭で、スライドの間違いを2か所修正できました。ありがたいことです。

PDFライブラリのlibHaru 2.3.0 RC2をビルドしてみる

とりあえず.dllおよび.soが作れるところまで。libHaruの配布元のwikiにはconfigure使えとかいろいろ手順が書いてあるんですが、2.3.0 RC2ではその手順通りではビルドできない感じなのでメモ。Windowsの手順がかなり手抜きですが、気になる人はMakefileをちゃ…

MuPDF conveter(MuPDFLib)でPDFを画像に変換してみる

MuPDFという軽量なPDFレンダラの.NETバインディングのMuPDF conveter(MuPDFLib)を使ってみた。簡単にPDFをWPFで表示できたりする。地味に32bit/64bit両対応しているのも良い。MuPDFのソースなりドキュメントを読まないとパラメータの意味がわからない部分…

自分でビルドしたPoppler 0.22.5 + .NETバインディングがうまく動かなかった

ここ数日、Popplerを自分でビルドしたりして.NETから叩いてみてたんだけど、どうも動作が不安定。 MinGWでPoppler 0.22.5をビルド - DenkiYagi Poppler 0.22.5の.NETバインディングを作成する - DenkiYagi こんな感じのコードが動いたり、AccessViolationExc…

Poppler 0.22.5の.NETバインディングを作成する

MinGWでビルドしたPoppler 0.22.5の.NETバインディングを作成する。Windows単体ではすんなり作成できそうにないので、Linux(Xubuntu)で作業した。 必要な環境 monoの開発環境。XubuntoでMonoDevelop 4が動かしたくて色々入れた後なので、どのパッケージが…

MinGWでPoppler 0.22.5をビルド

依存ライブラリが多くて疲れた…。ビルドした後から手順を書いてるので間違ってるかも。 参考にした手順 poppler - TeX Wiki MSYSでGTK+をビルド (2) - 七誌の開発日記 インストール手順メモ MinGW GLib, gettext, pkg-configのバイナリを/MinGWにぶち込む ht…

gstremer-sharpで明示的にデバイスを指定

例としてDirectSound Deviceを明示的に指定する。 var src = Gst.ElementFactory.Make("dshowaudiosrc"); var probe = new Gst.Interfaces.PropertyProbeAdapter(src.Handle); var devices = probe.ProbeAndGetValues("device-name"); src["device-name"] = …

.NETからGStreamerを使ってみる

GStreamerとは クロスプラットフォームのマルチメディアライブラリ。映像や音声の入力(デバイスでもファイルでもよい)をエンコードしたり、RTMPでストリーミングしたりとか、そういったものを簡単に作ることができる。なお、.NETからGStreamerをつかう実例…