読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

やっぱり1発では動かない。

WAVファイルを読み込み非同期で再生しながら、マイク入力をキャプチャし、ミックスして出力に送ろうとしている。ようやくコンパイルが終わり動かしてみたらスピンロックを多用しているのが効いたかCPU負荷が98%近くまで上昇しPCが死亡。恐ろしいプログラムだ…

やばい。忘れかけている。

次は線形代数とか実数の微積分周りを勉強しようかなと思っているけど、先に勉強したはずの複素数解析を忘れかけている。やはりくり返し畳み込むように勉強しないと老いた脳みそにはなかなか刻み込まれない。でもオイラーの公式はなぜかしっかり頭に残ってい…

もう少しでできそう

マイク入力(キャプチャデバイス)とWAVファイルデータをミックスして出力するように改造している。もう少しでできそうなのだがヤル気が萎えてきているせいで遅々として進まない。寒いせいだろうか。 マイク入力(キャプチャデバイス)とWAVファイルデータを…

物理情報数学A - とりあえず1回見終えた。

物理情報数学Aは通しで1回見終えた。なんか留数定理はわからないようなわかったような感じ。もう一回見ないとだめかな。 実数の微積分を学ぼうとWebをさまようと「理系インデックス」を発見した。でも内容が難しいんだよね。文字だけだと頭にあんまり入って…

大幅な作り直し

今までの延長線上で作りなおそうと思ったけれど、クラスの構造から大幅に見なおすことにした。具体的には下記の図のように改造しようとしている。 それぞれの四角は個別のクラスとして実装し直す。それぞれは別々のスレッドで動作する。スレッド間でデータを…

留数定理

デジタル信号処理の周辺知識として物理情報数学Aをずっと観ていたが、ついに11回目(公開されている最後の動画)に到達した。最後は留数定理と言うものだけれどこれは積分値は留数の和になるというもの。なんだかよくわからないが、すごい感じ。

What happens when audio rendering fails? - Larry Osterman's WebLog - Site Home - MSDN Blogs

What happens when audio rendering fails? - Larry Osterman's WebLog - Site Home - MSDN Blogs. あ、そうだIAudioSessionControlの実装を忘れていた。これ読んで思い出した。

キャプチャ対応の進捗や今後とか

キャプチャ対応だが今週末の土日でなんとか鳴るかなと言った進み具合である。 一応方向性としては再生アプリではなく、DAW/トラッカーのようなものをめざしている。なのでそれを構築するために必要な知識を得つつ、巷のコードを参考にしながら興味のある機能…

キャプチャデバイスのサポートと出力部分の見直し

キャプチャデバイスのサポート部分の実装をしつつ、出力部分の見直しをしている。 今まではWAVファイルの読み込みや再生に合わせて出力をコントロールしていた。再生を停止すると出力もストップするといった具合に。でもキャプチャデバイスをサポートすると…

まだまだ頑張っている

物理情報数学Aは第7回の途中まで観ている。ちらっとフーリエ解析の話も出てきたりしている。 ざっと観ているだけなので理解は浅い。何度か見直したり、演習問題もアップされているので自分で解いてみたりしてみないといけないかなと感じている。 物理情報数…

ぼちぼちと実装中

入力部分をぼちぼち実装中。出力とは初期化処理はほとんど変わらない。違うのはキャプチャデータを取得する部分だけだ。ループバックキャプチャもあわせて実装しようかなと考えている。

入力部分をぼちぼち作る

入力部分をボチボチ作っている。今日中の完成は無理かなー。

バッファ周りの処理の改良は一段落

バッファ周りの処理の改良は一段落した。共有モードの問題も解消している。続いてキャプチャークライアントを作ろうと思っている。wasapiのラッパークラスにコードを付け加えて作ろうかなと思っている。レンダラーとほとんど同じコードなので。 MSDNにも書い…

引き続き物理情報数学Aを見続けている。

物理情報数学Aは第6回まで見終えた。なんか好きなドラマを観るような感覚で非常に面白い。コーシーの積分定理とか周回積分とか。なんかデジタル信号処理からどんどん離れていっているような気もするが、面白いのでよしとする。

やっぱり動画はわかりやすい

物理情報数学Aを動画で観ているけれどわかりやすい。 コンテンツ自体のわかりやすさ(山本さんの解説は論理的でわかりやすい)もあるけど、動画はそもそも声と黒板の文字や絵が同時に入ってくるので頭に入りやすいのではないか。要するに動画は単位時間あた…

DirectComputeでデジタル信号処理

bitspersampleconv2を覗いているとComputeシェーダでリサンプルとかFFTとかをするコードを見かけた。良いアイデアだと思った。GPUは超並列演算装置みたいなもんだから、フィルタ演算やFFTにフィットするのではないかな。

「物理情報数学A」や「みその計算物理学」

物理情報数学A 慶応大学の物理情報数学Aの講義動画。 まだ第2回目の途中までしか見ていないけれど、フーリエ解析に必要な複素数・複素平面・極座標・オイラーの公式がすごく理解できた。やっぱりこのあたりをおさえとかないと「やる夫のデジタル信号処理」は…

入門線形代数

デジタル信号処理では線形代数の知識もいる。残念ながら私の知識は皆無。ググるとものすごくやさしく解説しているコンテンツを発見。 入門線形代数

デジタル信号処理で参考にしているサイト

デジタル信号処理の勉強をするために参考にしているサイト。 やる夫で学ぶディジタル信号処理 FFT (高速フーリエ・コサイン・サイン変換) の概略と設計法 初歩からのFFT 新フーリエの冒険 畳み込み(合成積) Pythonで音声信号処理 デジタル信号処理 物理…

フーリエ変換の式からFFTコードへの壁

フーリエ変換はなんとなくわかったような感じなのだが、これをプログラムに落としこむ方法がまだわからない。FFTのサンプルコードは山のようにあるので見てみるとかなりシンプルなコードとなる。なんでこんなに簡単な積和演算になるのか。DFTの要素数を2の冪…

新 フーリエの冒険

デジタル信号処理に関する資料を漁っているけど前提となる知識をかなり要求されるため、私のような前提知識なしの人間にはもうほんとにきつい。でもこのサイトは非常にわかりやすい。フーリエ変換が易しく図解されており、すっと頭に入ってくる。 http://izu…

パーセバルの等式

やる夫で学ぶディジタル信号処理の100ページあたりまでを何回も読み直している。 パーセバルの等式あたりで???となってくる。意味はなんとなくわかるけれども関数の内積がちんぷんかんぷん。ベクトルの内積からやりなおさないと。。 ___ / \ / \ /…

コンピュータ音声処理

ものすごい昔に買った「コンピュータ音声処理」。「音声合成」「音声分析」「音声認識」の3章にわかれている。 「音声分析」の章はまさにフーリエ変換の内容。当時はまったく理解できなかったが。あ、今も理解できていないか。。「音声合成」はPCM、ADPCM、D…

信号処理工学 I

とある大学の信号処理工学講義資料を見つけたの読んでいた。第2回目まではやさしい感じでわかりやすいのだが、第3回目で急激に難しくなる。スライドの4枚目でいきなり「線形性」「時不変性」「因果的」「安定」と来る。このあと数式がごちゃごちゃと出てくる…

マルチレート信号処理 レート変換とマルチレートフィルタ

PlayPcmWinの作者のブログに「マルチレート信号処理」の書籍が紹介されていた。思わず衝動買い。内容はやはり難しい。。いつかそのうち理解できるだろうとかる~く考える事にする。

自然対数の底「e」

デジタル信号処理ではさんざんお世話になる自然対数の底「e」。これってもともとなんだっけとか考えていたら、放送大学でちょうどやっていて、のことだということを知った。ネイピア数と言うらしいね。

DSPとかリサンプラのライブラリを探す

元々はサンプルレートをコンバートするためにLPFが必要なので基礎から勉強をしているが、それはそれとしてライブラリもいろいろ物色している。少しはデジタルフィルタの用語もわかるようになってきたのでググる精度も上がってきている。 soxはサウンド・フォ…

xdspライブラリをx64でビルドしようとしたけど失敗

Buzzの作者が公開しているxdspライブラリ。 覗くとサンプルにresampleのコードが!早速コンパイルしようと思ったが__asmキーワードが入っていてx64ではビルドできない。x64では__asmキーワードは使えないのである。その部分をXBYAKで置き換えるとかすればよ…

やる夫で学ぶディジタル信号処理 – とりあえず全部読んだ。

「やる夫で学ぶディジタル信号処理」をとりあえず全部読んだ。後もう3-4回は読まなくてはいけないだろう。これでごく入門レベルというから驚きだ。 またsox・STK・dspxなどのソースコードを読んでみようと思う。ちょっと前よりも何か理解できそうな気もする…

やる夫で学ぶディジタル信号処理 - たたみこみと積

「たたみ込みと積」あたりを読んでいる。 このあたりなってくるとかなりきつい。「前のあそこといっしょ」みたいなところが出てくるのだけど、前に読んだところを忘れてしまっていて「あれ、前のあそこってなんだっけ?」とかなってしまう。まあ何度か読みな…

デジタル信号処理の勉強は続けている

デジタル信号処理の勉強は歩みはのろい。「やる夫で学ぶディジタル信号処理」はわかりやすい。でも私にはむずかしくて、読み進めるうちに???となり、また少し戻って読み返して理解し・・を繰り返している。 でもやる夫は結構できるな。少なくと私よりは数…

やる夫で学ぶデジタル信号処理

今日は通勤時間、昼休みを「やる夫で学ぶディジタル信号処理」を読むのに費やした。 50ページくらい読んだけれど、なんとなくわかりそうな気がしてきた。なぜこうなるのか、この公式の意味はなにかとかを丁寧に説明してくれている。わかったような気にさせて…

Z変換

フィルタ係数のあたりで出てくる、Z変換。これが理解不能。全然わからない。ラプラス変換の離散版ということだが、これが何を意味するのか。何のために行うのか。。 わかりやすく書いていそうなサイトを発見したけど、それでもわかんないんですよ。これが。 …

虚数

デジタル・フィルタを理解する上で必要な知識の1つ。気がつくとiとかjとかというのが出てきている。iとかjは二乗すると-1となる虚数単位。 デジタル信号処理で複素数(実数+虚数)が出てくるのはしごく当たり前のことらしい。 虚数とはなんぞや?と調べて…

FIRフィルタ

FIRフィルタについて。 サンプル値の移動平均を取ればローパス・フィルタになる。しかしそれではフィルタ特性が固定的なので、カット・オフ周波数のコントロールやらができない。フィルタ特性を変えるには各サンプル値にある値を乗じて平均をだす。この各サ…

FFTW3.3をビルドしようとしたが失敗

FFTW3.3をビルドしようとしたが失敗。理由はOpenMPサポートがVC2010 Expressでは削られているため。ネットを見るとWindows SDKをインストールすると使えるようになると書いてあるが、7.1バージョンからは使えなくなったようである。残念。。

連続値の積分は離散値では総和になる。

連続値における積分(∫)が離散値では何で総和(Σ)になるのかを考えていた。よく考えれば当たり前のことだった。 波形をサンプルすると離散値となる。一定区間の波形の面積を求める際は連続値の場合積分となるけれど、離散値の場合は対象区間のサンプルの総…