- 1 名前:デフォルトの名無しさん [2007/07/25(水) 14:07:56 ]
- 音のプログラミング処理について語りましょう
各エフェクタの組み合わせとか、 プログラミング外の話題はDTM板の方がいいよ サウンドプログラミング3 pc11.2ch.net/test/read.cgi/tech/1145573675/ サウンドプログラミング2 pc8.2ch.net/test/read.cgi/tech/1091054082/ サウンドプログラミング pc5.2ch.net/tech/kako/996/996171508.html
- 313 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 03:37:54 ]
- FFT(笑)
- 314 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 04:39:36 ]
- 308じゃないが、だいぶ昔に書いたFFTのコードとサンプルアプリをようやっと発掘してきたが・・・そういう空気じゃないなw
- 315 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 10:09:13 ]
- FFTのライブラリって結構いっぱいあるけど
定番とかオススメってある?
- 316 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 10:19:50 ]
- 定番は自作。
オススメも自作。 FFTそのものは20行もあれば書ける。 ビット逆順とか入れても40行。 面倒だったり頭を悩ませるのはソコじゃない。
- 317 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 10:35:29 ]
- FFTで有名な場所
www.kurims.kyoto-u.ac.jp/~ooura/fftman/index.html Delphiなら pc.2ch.net/tech/kako/993/993457354.html ここの207以後。
- 318 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 11:58:53 ]
- 完全自作にこしたとはないけれど、
十分な完成度というか性能というか(速度面とか)出すとこまで含めると、 それなりに時間と労力いるよね? そこまでコミットできないし、結果が得られれば良いヘタレな俺は やっぱりライブラリ活用でし・・・ (でもそのためのライブラリ
- 319 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 12:14:43 ]
- コード見れば判るだろうけど、
FFTそのものの速度はチューニングしてもしなくても2倍も違わない。 というかチューニング出来る要素はそんなにない。 仮に2倍違ったとしても、パソコンの場合、それでどうしたのって程度の差でしかない。 リンク先のように最大の素数を求めてるとかならともかくさ
- 320 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 12:30:14 ]
- SIMD化するだけで数倍速くなるよ。
ただ、PC上での話なら5年前のCPUですら素のサンプルをそのまま使っても十分な性能出てたけどね。
- 321 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 17:26:14 ]
- Delphi使いがこのスレにたまにいるようだけど、Delphiでサウンドプログラミングなんて邪道だろ
- 322 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 20:53:08 ]
- ナンセンス
好きなの使えばいいじゃないの
- 323 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 00:00:45 ]
- FFTで何をするか、に興味がある
FFT実装には興味ないなぁ
- 324 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 01:52:15 ]
- Playerでグラフィックイコライザみたいな
棒グラフがぐにゃぐにゃ動く画面は リアルタイムにFFTしながら描画してるのでしょうか?
- 325 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 02:43:33 ]
- そうですけど
- 326 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 12:15:32 ]
- MP3の場合、FFTというかある程度の周波数情報は復調時に得られるのかも
あと、グライコそのものはFFTでやるより、バンドパスや同調(Q無限大の)フィルタでも負荷量は バンド数によっては小さい。
- 327 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 17:10:11 ]
- きっちりと理論の実装をするのが得意なやつもいれば、
理論はそこそこ、それらを利用したアプリケーションとか書くのが得意なやつもいるよな。 あんがい両方に長けてるやつって少なかったり
- 328 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 21:46:30 ]
- 糞文系が理系を支配する構図ってやつ
- 329 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:31:49 ]
- >>326
低域で精度を得ようとするとタップ数が増えるからFFTというかFIR系はつらいね… グライコならフィルタした音聴くわけじゃないし、パワーだけ得られればいいから 位相回りまくってもIIR系で急峻に落とす方が計算量としては少なそう >>327 正しい分業の姿ですな
- 330 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 02:39:10 ]
- >328
327は本来両方とも理系の担当分野だと思うけどな。 つか文系は基本的にある程度以上の国家資格持ってるのならともかく大半は高卒の方がマシな連中だからな。
- 331 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 02:58:11 ]
- 文理ではなく理学と工学の関係に近いかな
- 332 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 03:17:09 ]
- 学の無い人は壁を作りたがる
- 333 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 05:27:54 ]
- 理系は文系をカバー可能だが
文系で理系をカバーできないやつは使い物にならない しかしそういうのに限って 他人だまして金儲けるのだけはうまかったりする でスレ違いな訳だが
- 334 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 06:18:12 ]
- 理系でも文系でもいいけど
こんなところでストレスぶちまけないでよw
- 335 名前:デフォルトの名無しさん [2007/12/02(日) 15:29:45 ]
- 社会を支配しているのって文系の奴ら何だからね。
- 336 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 02:45:02 ]
- FFTSSってのがあるな
暫くこれ使わせてもらおう
- 337 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 05:59:45 ]
- 大浦氏のCのやつをラッパークラス書いてC++で使ってる
- 338 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 10:53:18 ]
- グライコならラジオの原理で言う、超再生方式が比較的効率がいいよ
表示だけなんだから処理時間が足りないなら間欠的にやればいいわけだし
- 339 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 12:54:29 ]
- IIRのバンドパスとかとはどうちがうの?
(グライコって、スペアナでしょ
- 340 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 13:14:43 ]
- ああ、スペアナだな。 みんながグライコって書いてたから勘違いしちゃった。
IIRでいえばバンドパスではなくて分子が1でQが無限大のLPF つまり、サイン波ジェネレータに使う構成があるでしょ? 分子が1だから掛け算の回数がそれだけ少なくなる。 バンド幅は検出時間で調整する。 つまり低周波程周期に比例して長くする。
- 341 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 13:18:05 ]
- ただ、間欠的にデータ取るから窓関数は必要。だからそれも足したらバンドパスと変わらないけど
間欠的にデータが取れるから処理時間が余った時だけとかの調整が可能なのが有利。 バンドパスでも間欠的にデータ取れるけど、その場合だって結局窓関数かけないといけないから。
- 342 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 01:19:10 ]
- バンドパス
窓とかかけないでも、低いほうの周波数帯だったら 1サンプル飛ばしでsr半分として、2サンプル飛ばしでsr1/3として、みたいなかんじで 計算すりゃよくない? あくまで精度は重要でなくて、少しでも軽く処理したいって前提だけど
- 343 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 01:40:20 ]
- あぁでもエイリアスひろっちゃうかな、、
- 344 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 09:04:42 ]
-
b0 + b1*z^-1 + b2*z^-2 ------------------------ a0 + a1*z^-1 + a2*z^-2 BPFの分母は b0=-b2,b1=0 か b0=-b1,b2=0(こっちは特性が悪いから普通は使わない) だから計算量が b0=1, b1=b2=0 に比べて極端に悪いとは思えない
- 345 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 02:20:33 ]
- マルチバンドコンプ用に帯域分割フィルタを作りたいんだけど、
線形位相・完全再構成な不等分割フィルタバンクの設計法を調べるので方向性合ってる?
- 346 名前:デフォルトの名無しさん [2007/12/09(日) 02:29:32 ]
- >> 279
>> 345 オープンソースのがすでにあるぞ。車輪の再発明はやめなはれ。 freeverb3.sf.net/ FIRのLPF/BPF/HPFとかも入ってるみたい。
- 347 名前:デフォルトの名無しさん mailto:age [2007/12/09(日) 02:39:55 ]
- JWAVEを聴きながらVeohを見てみた
youtubetv.atspace.com/?&VeohSpotlight!&JWAVE@VeohWideTV
- 348 名前:デフォルトの名無しさん [2007/12/09(日) 11:36:04 ]
- >>336
FFTSSはライセンスがGPLじゃないんだね。 上記の著作権情報をソース/バイナリどちらであっても 含めないといけないとあります。 ダウンロードに名前とemailと目的まで入力か...
- 349 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 15:41:18 ]
- >>346
ども。参考にするよ。FFTとかFIRの仕組み自体の実装には興味ないんだけど、 設計法は勉強したいと思ってて、そのあたりは結局のところ自分で作らないと 勉強にならないから自分でやるよ。 ちなみに、車輪の再発明って物事の実現効率しか見てなくて、 逆に学習とか、車輪の再発明そのものが必要になる場面もあったりする。 ツッコミいれるときはその意図に注意した方がいいかも。 (今回はそのあたりの前提を言ってなかったんですまんかった)
- 350 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 17:15:08 ]
- 学習目的のそれは、再「発明」とは違うんじゃないかな。
再開発とか再実装あたりが適切じゃないかと思う。 既存の発明の情報を得て、理解した上で実際にやってみるって作業でしょ。 再発明ってのは、まだどこにも存在してないと思い込んで、既存の発明を参考にせずに一から自分で作る話。 実装とか設計以前の着想とか発案から始めて、先人達がとっくに解決したような問題で延々悩むことになる。 まず調べろ、ってこと。
- 351 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 17:52:01 ]
- >>350
車輪の再発明、ってのは単に言い回しでそうなっているだけで、 最初から>>350の言う厳密な発明よりも広い、開発をも含む意味で使われてるよ。 ほぼ同じ文脈で使われるNot Invented Here症候群(自前開発以外を採用しない)の場合も、 厳密な発明って意味の他に開発の意味も含むし。 とりあえず、バタワースあたりの振幅特性だけもってくる直接設計法で 一番上のバンドで誤差吸収ってのを考えた。
- 352 名前:デフォルトの名無しさん [2007/12/09(日) 20:43:06 ]
- >> 345
CiNii - 線形位相完全再構成不等分割フィルタバンクの設計 CiNii - 線形位相完全再構成不等分割FIRフィルタバンクの設計 論文みたいだね。やくにはたちそう:)
- 353 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 22:09:36 ]
- >>352
ありがとー! 論文は読み慣れてる(分野違うけど工学系)んで問題ないです。 FIRの方をざっくり読んだけど、他の方法で漸近的に設計しておいて 最後の1or2バンドで補償してる感じかな……。
- 354 名前:デフォルトの名無しさん [2007/12/28(金) 04:01:10 ]
- >>293
音響レンズってなんだ??
- 355 名前:デフォルトの名無しさん [2007/12/28(金) 04:03:00 ]
- すまん自己解決
(問題-18) 音響レンズとは何か。 どんな機能を果たしているのか。 どんな材質で出来ているのか。どのような特性があるのか。 -------------------------------------------------------------------------------- (解答-18) 音響レンズとは探触子の圧電素子より前面に配置してある構造体で、音波を収束させる目的を持つ。 生体での音速に比べ遅い音速約1000m/secのシリコンで出来ている。 凸面形状をとることにより探触子から出た超音波を収束させることが出来る。 もし、音響レンズに生体より早い音速を持つ物質を使用した場合は 凹面形状をとらないと探触子から出た超音波を収束させることが出来ない。
- 356 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 16:51:20 ]
- DSPの経験が全くないのですが、2nd order Butterworth lowpass filterの、カットオフ周波数(1)での、ある周波数(2)の入力の位相の変化ってどうやったら求められますか?
ディレイのフィードバックで発振させて、フィルター入れたらピッチが変わって音痴になってしまいました。位相ズレ分のディレイを補正したいんです
- 357 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 07:24:01 ]
- 普通はZ変換にw*i を突っ込めば出ますが?
でもディレイ入れるだけでピッチが変わるって・・・・何かその前にお間違えでは?
- 358 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 12:35:24 ]
- サウンドプログラミングって面白いね!
- 359 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 00:29:29 ]
- PCM出力用のバッファからリアルタイムでスペクトルを取得する為に
自分でコーディングしたFFTに short(signed 2bytes) 要素数65536 を処理させたんですが、 頑張っても 0.22 秒ほど掛かってしまうようです。 車輪の再発明をするのもあれなので、「FFTをするなら普通はこれを使う」といった手段、 例えばもっと高速に動作する既成dllやライブラリなどは無いでしょうか?
- 360 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 00:50:34 ]
- 速度を求めるならfftw
俺は呼び出しの簡単さ優先なんで大浦氏のFFTライブラリ (それでも自分で書くよりも断然速い)
- 361 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 03:08:34 ]
- fftwなら、MKLにも同梱されているしちょっとした修正でCUFFTにも移植可能だし、
使っている人が多いと言うのも魅力だね。後は、2の冪に縛られずに済むのも手抜きにはいい。
- 362 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 07:21:11 ]
- >>359
整数ではなく浮動小数点でデータを与えた方が変換時間が短いと思う もっと少ないサイズでやるなら固定小数点も考えられるけど、2^16個では固定小数点では無理 あと、そもそも1秒分以上のサンプリングデータを0.22秒で処理出来ているのだから十分高速だと思うよ。 スペクトル表示が目的なら 4096か8192点で十分でしょ。
- 363 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 07:22:50 ]
- >>359 SINのテーブルや、ビット反転アドレスなんかのテーブルは事前に作ってるんだよね?
これを毎回作ったり、sinを毎回計算させてたら遅いよ
- 364 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 08:34:20 ]
- >359
この手の最適化話するならマシンスペックと施した最適化くらいは書いとけ、といつも思う。
- 365 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 00:37:22 ]
- >>363
>これを毎回作ったり、sinを毎回計算させてたら遅いよ CUDAなら毎回計算した方が早い罠。
- 366 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 13:05:31 ]
- OpenALを使って3Dサウンドをやってみたいのですがググって見ても断片的なblogの記事くらいしか
日本語資料が見つかりません どなたか日本語の各種ドキュメント、書籍等をご存じの方がおりましたら教えていただけると助かります よろしくお願いします
- 367 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 14:12:10 ]
- >>366
ttp://www.google.co.jp/search?q=%E8%8B%B1%E5%92%8C&lr=lang_ja
- 368 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 17:23:21 ]
- 義務教育受けてないなら諦めろ
受けてるならなんとかなる
- 369 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 15:41:44 ]
- ジュニアハイスクールレベルの英語教養を舐めるなよ
- 370 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 16:12:26 ]
- 大丈夫、いみじくも「ジュニアハイスクール」と呼ばれるところに行っている生徒程度の英語教養があるなら。
- 371 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 13:08:52 ]
- フェーズメータを作成しようと思うのですが、知識が無くて
困っています。参考文献や参考になるサイトがあったら教えてください。
- 372 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 13:19:09 ]
- フェーズメータって事は、サイン波オシレータと
そのオシレータとの位相差を表示したいって事? それをどういう環境で作りたいの? パソコンの場合、ディレイがハード毎に違うし、そもそも出力と入力が同じサンプルクロックとは限らないから 2CH 入力して 出力を L/Rのどっちかの端子から入力させて位相を比較するとかじゃないと 汎用性が無いだろうな 位相の測定は出力オシレータを90度位相差が出る sin/cosのベクトル積型にしておいて sin/cos成分との掛け算で出すのが一番簡単だと思うよ
- 373 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 13:17:27 ]
- >>372ありがとうございます。
"sin/cosのベクトル積型"というのはどういう 事なのでしょうか。すみません馬鹿で。
- 374 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:23:40 ]
- LRでリサージュ描くんじゃだめ?
ja.wikipedia.org/wiki/%E3%83%AA%E3%82%B5%E3%83%BC%E3%82%B8%E3%83%A5%E6%9B%B2%E7%B7%9A (なんか根本的に勘違いしてたらごめん。)
- 375 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 09:42:03 ]
- ベクトル積じゃなくて回転行列との掛け算だろう
| c , s | |-s , c |
- 376 名前:デフォルトの名無しさん [2008/01/25(金) 01:10:48 ]
- ( ゚д゚)ノ ハイ!シツモンデス!
文書では上手く説明できないと思ったので、グラフ描きました。 www-2ch.net:8080/up/download/1201189698030081.7mcqr5 デジタルオーディオのミキシング用に、IIRフィルタを掛けて目標の周波数帯域を取り出そうとしています。 また、リアルタイムに取得する周波数帯を変更していく予定です。 そこで、まずはsin波形で色々と試しているところなのですが、 現象の呼び名が分からないので検索できませんでした。 グラフを見て頂いて、問題箇所を確認してもらえるでしょうか。 @ IIRフィルタを掛けた場合、波形が後方へズレる?と思いますが、これは正しい現象ですよね? その場合、ズレ幅はなんと呼ばれるのでしょうか? また、その幅をIIRの係数か何かから事前算出できるものなのでしょうか? A また@のズレ幅ですが、周波数によって変わると思うのですが、これは正しい現象でしょうか? B フィルタの開始、終了時に不安定?になる区間があると思いますが、これを排除する事は可能でしょうか? また、区間の長さを事前算出できるものなのでしょうか? C グラフにはありませんが、IIRフィルタの係数を徐々に変更した場合、 例えば low-pass の通過帯域を 100hz → 1サンプルづつに+1 → 1000hz と変更し、 リアルタイムに取得帯域を変更した場合、正しく計算できるものなのでしょうか? 宜しくお願いします。
- 377 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 01:38:35 ]
- 位相という言葉すら知らずにいきなりデジタルフィルタに手を出す時代なのね・・・
- 378 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 02:49:15 ]
- 馬鹿は際限無く馬鹿ということ
- 379 名前:デフォルトの名無しさん [2008/01/25(金) 03:25:54 ]
- >>378
とりあえず、位相と窓関数とRBJAudioEQCookBookとピーキングフィルタとウェーブレット を愚ぐれ。 しかし位相も知らずにIIRとかどうやって知ったんだろ...。
- 380 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 05:00:54 ]
- >>379
>>>378 >>376
- 381 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 09:12:27 ]
- >>376
IIRフィルタに限らずデジタルフィルタは Z変換して、そこにe^(iw) をぶち込むと 周波数特性が出ます。 周波数特性は、 複素数の絶対値がゲインで、複素数の角度が位相です。 だから、貴方がやるべきことは、Z変換を理解する事です。 それには複素数を知らなければいけませんし、 そのついでにラプラス変換とフーリエ変換も勉強しないといけません。 その後でしたら説明出来ますが、今は説明が難しいです。
- 382 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 09:16:58 ]
- なお、最後の質問は、Z変換を理解した段階でも、まだ答えるのは難しい問題です。
実用的には十分ゆっくり変更するなら大丈夫ですけどね
- 383 名前:376 mailto:sage [2008/01/25(金) 22:19:20 ]
- >>377
>>379 SCILAB使ってます。便利な世の中です。 >>381 とりあえずz変換を勉強中です。 今のところ、離散時間信号から複素数平面への写像と捉えてます。 まだ複素数平面状で何ができるのか勉強不足なので、相違のズレが(言葉遣いあってます? なぜ発生するかは理解してませんが。 >>382 リアルタイムにグリグリできるパラメトリックイコライザっぽいものを 作ろうと思ってるんですが、もしかして使う手法を間違ってます? >>378 罵倒するのはいいけど、せめて1単語でもヒント書いてよ でないと、オレと同階層の住人。
- 384 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 22:21:14 ]
- >>381 相違のズレ>位相のズレ
“そうい”ってなんだよオレ...orz
- 385 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 22:55:33 ]
- >>384
僧衣でググれ
- 386 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 23:18:18 ]
- まあ、なんだ。せっかくのスレなんだしギスギスしないでも...
>>376 キーワードは「直線位相」だ。
- 387 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 23:29:40 ]
- >>383
プログラミングの現実的な側面から言うと、 4)1サンプル毎に変化させるような仕様は事実上不必要かと 本当に1サンプルの時間精度で制御したいなら別だけど。 実際問題として、たとえばVST plug-inならDAWによるが 数千〜数万サンプル単位で波形データが渡される。 # 丸数字はやめて…… オフライン処理なら意味のある仕様かな。 その場合は1ステップ毎に係数書き換えで済むような気がする キーワードとしては、後は群遅延とかかなぁ。
- 388 名前:デフォルトの名無しさん [2008/01/26(土) 03:37:28 ]
- >>383
パライコっぽいってことはパライコとは微妙に違うの? 1サンプルごとになぜ係数を変えるの? 単にパライコなら379に書いてあるように、RBJAudioEQCookBookの係数を使って 複数のピーキングフィルタを実装してつなげればできるけど。
- 389 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 08:36:43 ]
- >>383
Z変換して複素数を突っ込めば、位相のズレが起きるのは当然と判る 位相のズレを起きないようにするには、虚数成分がゼロにならなければならない。 それには、分母が(1+aZ+...)なんてなってると分子が同じ係数、つまりフィルター でない状態でなければ無理。 パラメトリックイコライザなら1サンプル毎に係数をゆっくり変更するので合ってる。 ただ、IIRの場合、その係数の変更途中で分母のゲインが変わってくるから 構成方法によっては更新速度の影響が出て来る。 でも、実用的には、ひたすらユックリ変更するという事で逃げればいい。
- 390 名前:デフォルトの名無しさん [2008/01/26(土) 13:26:38 ]
- よくわかってないんだけど、1サンプル毎に係数をゆっくり変更と言ってるのって、
パライコのフェーダー操作したときの話?
- 391 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:48:51 ]
- グリグリって書いてるじゃん
- 392 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 17:55:34 ]
- そういえばというか、
IIRが係数を急激に変化させたとき不安定になるのって 遅延器内の値も適切に補正できれば回避できたりしないかね?
- 393 名前:376 mailto:sage [2008/01/27(日) 17:49:43 ]
- みなさん、ありがとうございます。キーワードを参考に、ネット記事と書籍を読みふけってます。
>>386 「直線位相」でググるとFIRの記述が多く見つかりましたが、IIRにも同様の内容があてはまるのでしょうか? 現在、複素数平面とかに関して勉強してるので、そのうちにでてくる気もしていますが・・・ >>387 オフライン処理になるとは思いますが、上手くいけばリアルタイムも考えてます。 それも担ってステップが少ないIIRを選んだのですが、間違いだったかな。 「群遅延」とは周波数全体の位相が同時にズレるという認識であってますか? 一応、サイトとかまわってみたのですが、どうもシックリくる説明が見つからなくて困ってます。 >>388 説明不足でした。スミマセン パライコのように目標の周波数を引き上げるのではなくて、その周波数帯を取り出したいんです。 さらに、その帯域をリアルタイムでグリグリと移動させたいなと考えてます。 なので、ピーキングではなくてバンドパスを組み合わせたいのですが、 バンドパスさせた複数の波形をそのままミキシングすると波形が壊れてしまったので、問題と原因を探してるところです。 # 根本は数学を分かってないところが大問題なのですがw ↑改行制限で分割されました↓
- 394 名前:376 mailto:sage [2008/01/27(日) 17:50:14 ]
- >>389
>構成方法によっては更新速度の影響が出て来る。 この影響範囲(時間?)を事前に算出するような事は可能なのでしょうかあ? # まぁ、今の僕にはできないとしてw 勉強を進めていくうちにできるようになるのか、現実的に不可能なのかだけでも教えてもらえると助かります。 >>390-391 中心周波数をリアルタイムでグリグリと変更して取り出したいと考えてます。 グライコのようにピークを線形移動させるというイメージです。 十分なサンプリングレートが取れていれば、ゆっくり係数を移動させる事ができそうなので、その方向で考えてます。 25Hz -> 20kHz へ1秒で移動の場合、44.1kHz/secで1サンプル +22.32Hzの変更となってしまいますが、 まぁ、ここまで過激な対応が可能かどうかは別として。 >>392 急激な移動が起こる各バンド帯を並列で計算しておいて、移動時に遅延させるという事でしょうか?
- 395 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:04:37 ]
- FIRの場合は遅延を入れただけの信号に対しての直線位相となる。
つまりZ^n で割った時に、 Zに複素数を入れた結果の虚数成分が常に0である必要がある。 だから、分母に遅延要素以外がある IIRでは直線位相は実現出来ない。 直線位相でなければいけないのならFIRにするしかない。 しかし、FIRで25HzのBPFなんて作ろうとしたらどれだけタップ数が必要か しかもそれをリアルタイムにf0を更新しようとしたら、まあ無理。 やるとしたらFFTで計算させるしかないね。 常にそういうスイープするなら、 FFTで時間引き伸ばしパルスなんて作るといいのかも とりあえず、どうして直線位相でなければいけないのか どういう用途か判れば、アドバイスしてくれる人がいるのかも
- 396 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:37:53 ]
- >>393
>「群遅延」とは周波数全体の位相が同時にズレるという認識であってますか? 簡単にいうと、(位相遅れによる)各周波数での遅延時間。定義は位相遅れの周波数微分。 (全体で一つの群遅延ではなく、周波数毎に群遅延値が出てくる点に注意) 位相遅れ量が等しくても、周波数によって波長が変わるので遅延時間は変化する。 波長によって遅延時間が違えば当然波形が歪むので、それをチェックするために群遅延を使う。 で、周波数-位相遅れのグラフが直線になる場合を直線位相といって、 グラフが直線→位相遅れの周波数微分が一定→遅延時間(群遅延)が 全帯域で一定→波形が壊れない→(゚Д゚)ウマー
- 397 名前:デフォルトの名無しさん [2008/01/28(月) 06:15:24 ]
- いまいち何を実現したいのかがわからないな。
FFTして取り出したい帯域をぶっこぬくのじゃだめなの? 目的は解析?それとも音色?
- 398 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 11:15:19 ]
- >バンドパスさせた複数の波形をそのままミキシングする
といってたから直線位相なんじゃまいか。 >ミキシング用 >グリグリ ということだからVSTエフェクトでも作りたいんだろうとは読み取れるけど。 まここはDTM板じゃないので、住人も幅広く 絞って説明しないとわかってもらえないときあるかもね 単にグリグリだったらIIRのバンドパスで f0急激に変化しないように制限すれば良さそうだけど、 複数の周波数帯取り出して合成しなきゃいけないんなら、FFTが現実的かもね。 ただこの場合はグリグリするにも周波数方向の分解能は制限をうけるから なめらかさは犠牲になるかなあ。
- 399 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:49:43 ]
- DFTおよびFFTのプログラムを作ってみたのですが
DFTとFFTで結果がまるで違います。 しかし両方とも逆変換をすると、元の値に戻るのは確認したので 計算はあってると思うのですが、さっぱりわかりません。 実験は以下のようにやってみました。 ・元信号をsin関数で作って配列Xに入れる ・XにDFTおよびFFTをかけたものを配列Fに入れる ・FにIDFTおよびIFFTをかけたものを配列Yに入れる ・XとYの実軸の値はほぼ同じ。 虚軸に誤差と思われる値が入っているのは確認しています。 何か誤差が発生していたりするのでしょうか?
- 400 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:20:47 ]
- Σsin*Xn で求めたものと FFTで求めたものでは 誤差の種類は違うよ。
80bit浮動小数点で計算してる? 64bitのdoubleだと結構4096点くらいでも気になる誤差だよ。 でも計算があってるかどうかは、サイン波を合成したのを入力してみればいいと思うのだが?
- 401 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 05:32:14 ]
- まさかとは思うが
DCTとFFT比較してたりしないよな
- 402 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:58:25 ]
- レス下さった方には申し訳ないのですが
もっと初歩的でした。 振幅と位相の計算をしてませんでした・・・ 結果がまるで違うように見えたのは 有効数字やcos、sinなどの関数の誤差によって あまり関係の無いパラメータが変動しているためでした。 無事FFTの計算はできるようになったので いろいろやって見ようと思います。 ありがとうございました。
- 403 名前:デフォルトの名無しさん [2008/02/02(土) 02:47:09 ]
- すみません質問です。
ステレオでLRの位相を90度ずらすと、左右に音が分離して聞こえますが、 この左右に離れている音の位置間隔を中心寄りに縮めるには、どうしたらよいのでしょうか? 0〜90度の間で左右の位相幅をいじっても、90度近くないと結局音が分離したようには聞こえず、 90度近いと逆に左右に音が離れすぎてしまいます。 LRのパンニングではなく、コーラスとしてステレオ感を調節するエフェクターを実装したいのですが、 良い実装方法などありましたらご教授ください。
- 404 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 03:13:36 ]
- MSバランス
- 405 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 07:27:20 ]
- 位相を弄るんじゃなくて、遅延時間を弄る方がいいと思うよ。
ただ、遅延時間をスムースに変更するのは ・100タップくらいのFIRの係数を多数用意しておく ・あらかじめ高域をカットしておいて6タップくらいのFIRで1/2遅延と按分 ・内部で4倍くらいオーバーサンプリングして// あと、遅延時間だけでは移動感が出ない。音量も変更しないと
- 406 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 18:05:08 ]
- 音楽から和音抽出ってむずいねw
- 407 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 18:50:35 ]
- フーリエ変換すれば何とかならんこともない
- 408 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 18:58:37 ]
- そんなもんで出来るんなら苦労しないわ。
和音抽出するには、まず識別する事が必要。フーリエ変換だけじゃ無理。
- 409 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:17:04 ]
- 倍音が邪魔だし
- 410 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:58:26 ]
- 倍音成分含む音なら基音を簡単に見つけられる。
倍音成分が少ない(無い)音やピッチが揺れる音(ベル系)は難しい。 その音が和音だと解っているなら和音も見つけられる。調も解れば精度が上がる。 ただ、和音の中に倍音がある場合(ギターのコード等)はフーリエだけじゃ多分無理。
- 411 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:07:39 ]
- ドラムとかシンセとかいろいろ入ってると難しいだろうな
- 412 名前:403 [2008/02/03(日) 05:37:33 ]
- 皆様回答ありがとうございます。
>>404 MSバランスって初めて聴きました。 MIDをモノラルにしてLRをステレオとして合計3つの音源で広がり感を 調節するものようですね。 なるほど、中央に音源を置いたほうがいいのかも。 ちょっと試してみたいと思います。 参照: stagesounds.blog74.fc2.com/blog-entry-53.html
- 413 名前:403 [2008/02/03(日) 05:38:06 ]
-
>>405 遅延時間をいじるというのは、LRそれぞれに別のFIRをかけて、 左右の遅延時間に差をつけるということでしょうか? コーラスの場合は、左右のディレイ分の変化、つまりピッチ感の変化の位相を ずらすことによって、同じ音源を微妙に違うものとして耳に届けることで、ステレオ感が表現できると理解しているのですが、 FIRの場合は、左右のフィルタの係り具合、つまり音色の微妙な違いによって、ステレオ感を表現するということでしょうか? その場合、ステレオ音の広がりの間隔をどのようにして調節するのかが理解できていないのですが、 もう少しヒントをお願いできないでしょうか?
|

|