[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 08/08 03:29 / Filesize : 170 KB / Number-of Response : 652
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

サウンドプログラミング3



1 名前:デフォルトの名無しさん [2006/04/21(金) 07:54:35 ]
音のプログラミング処理について語りましょう

各エフェクタの組み合わせとか、
プログラミング外の話題はDTM板の方がいいよ


サウンドプログラミング2
pc8.2ch.net/test/read.cgi/tech/1091054082/

サウンドプログラミング
pc5.2ch.net/test/read.cgi/tech/996171508/

449 名前:445 mailto:sage [2007/04/07(土) 19:29:09 ]
>>447
さらにすいません、
真っ当な時間軸での畳み込みというのと、FFTを使った周波数軸での畳み込み、
というのは結果が違うのですか?
FFTを使った方法は軽いけどあくまで別物なんですか?

450 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:14:20 ]
>>449
(精度の問題を除いて)時間軸畳み込みと全く同じ結果が得られる方法がある。

451 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:32:48 ]
素人談義状態だな

452 名前:445 mailto:sage [2007/04/07(土) 22:14:09 ]
>>450
なるほどです。
ちょっと調べてたらなぜ畳み込みにFFTが使われるのか、とてもわかりやすい説明みつけました。
ttp://www.nextftp.com/swlabo/m0_pctech/hp_ultraprecision/up_815_1.htm

周波数軸での畳み込み?、、、というのにあたるのかどうかよく理解できないのですが、
とにかく概算で約200倍速く計算できるようなこと書いてありました。
自分はFFT自体あまり理解できてないのですが、これ読むと魔法のようすね。

453 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 02:24:08 ]
>>452
オーダーが違うからね。
FIR 長を N として、
普通に時間領域で畳み込みすると、O(N^2)
FFT 使うと、O(N lon N)。

長さ N で FFT しちゃうと、そのサイトにある通り、循環畳み込みになっちゃうから、
実際には長さ2倍にして、半分 0 埋めてとかやる。
で、FFT + 周波数領域で掛け算 + 逆FFT ってなるんだけど、
2N log 2N + N + 2N log 2N とかで演算回数かかるけど、
O(N log N) だから、何千・何万タップとかになると圧倒的にこっちが早い。


454 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 05:27:24 ]
>>451
煽りはいいから >>447 の試してソース公開してみろって

455 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 10:04:31 ]
>>447
わざわざ最新のCPUを買わなくなって計算の見積もりは出来るだろ。
そりゃ、DSPと違って、PCの場合は演算能力の見積もりは難しいけど
44.1Kで 100万(1M)となると、モノラルで44.1G/Sの積和能力が必要になる
ゲーム機のGPUなんかでは、無理に思えない数字に見えるだろうが
パソコンだと、あと10年程先だろうね

確かに100万となると20bitにもなるわけでゲーム機のような単精度でいくら
高速でも意味はないわけだけどさ。

あ、FFTを補助的に使ってリアルタイムに実現する方法もあるんで


456 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 11:01:08 ]
聞きかじり&妄想が延々と続きます・・・

457 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 11:30:08 ]
2^20のFFTを使うとすると 1048576-1000000 = 48576 サンプルが丁度いいサイズになる
1.1秒毎に22秒ほどのデータをFFTして処理するので、計算時間を無視して1.1秒の遅延が必要になる。
計算時間はこのシステムが動く最悪値と考えれば2.2秒の遅延が必要になる

別けて計算する方法は、1サンプルあたりのFIRフィルタの計算は
Σ C[i]*D[i]
たとえば 現在から1万サンプルのデータDaと 99万Dbに別けると
Σ C[i]*D[i] = ΣC[i]*Da[i] + ΣC[i]*Db[i]
ΣC[i]*Db[i]は1万サンプル以上前のデータなので、FFTを使う方法で1万サンプル分を先に計算出来る
残った1万サンプルだけをリアルタイムに計算すればいい
計算量は44100*10000 = 441M/Secなので、今のPCなら不可能な数字ではない



458 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 12:01:09 ]
ttp://www.knufinke.de/sir/index_en.html

459 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 15:18:43 ]
>>449

直線畳み込みと循環畳み込みをfftを利用して行うこととは
数学的に完全に等価です。

ですから、数千Tappを超えるfirフィルタの処理を行うとき
時間軸での畳み込み(直線畳み込み)をやるのは
無意味だと思いますね。

これが最強、最有名です。

ttp://www.ludd.luth.se/~torger/brutefir.html


460 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 15:53:22 ]
ひたすらゴッグルさんのご神託を貼り付けるだけのスレw

461 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 15:57:07 ]
この議論、数ヶ月前にも見たw

462 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 16:32:43 ]
FFTを使う方法でもリアルタイムに出来るというのは前回無かったように思うが?

463 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 16:49:50 ]
で、この議論のどこら辺でリアルタイム手法が提案されたって?


464 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 16:54:40 ]
じゃあ 俺も妄想ね。

単精度32bitステレオで扱おうと思うとデータ量だけで
フィルタ係数分左右で1タップ8byte 入力信号とあわせると16byteの記憶領域が必要。
10万タップの時点で既に1.6Mの記憶領域が必要になってしまう。

それがどうしたという感じだが、もしこのデータを外部メモリから読み出そうとすると
最近のメモリで読み出しレイテンシーが10nsくらいだから
信号と係数を逐次読み込んで毎回積和をとるとしたら
1/10000sec が毎回読み出しだけで消費されてしまう時間。
さらにこれに積和時間と入力信号保持用にリングバッファなりしなければならない。
MMXにシフトレジスタ命令はあったはずだが。
まぁこれ考えるとCPUキャッシュから外れるとメモリ読み出し時間
が一番のボトルネックになる気がするんだけど。
10万タップもまったく現実的じゃないよな。
サンプリング8kでギリギリ読み出しが間に合う速度くらいw

とするとL1最低でもL2にデータ保持できる量=最大次数 くらいのノリにならねぇか?

キャッシュも自分でフルに使える分けじゃないし
かなりローレベルなプログラミング技術が要求されるよなぁ


465 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 17:01:39 ]
何msまでの遅延ならリアルタイムと見なせるだろうか。
30msくらい遅れると明らかに違和感が出るよな。
10msくらいならおk?

466 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 17:05:21 ]
>>465
そもそも今いっているリアルタイムはそういう意味ではない。

一定量の遅延があるだけで出力し続けれるのならそれはリアルタイム処理。
 入力→演算→出力 
の流れが次の入力が来るまでに終っているかどうか(1サンプル内で演算が終っているかどうか)
がリアルタイム処理の定義だと思われ

467 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 17:26:36 ]
レイテンシー以前の話かよw



468 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 17:35:23 ]
>>463
もちろんPCの場合はCODECとの通信がブロックでやってくるから、意味はないのだけど
1サンプル毎に答えを出す手法について提案されているじゃないか?

でも、コレ計算量の削減になるのかな?

256点で考えてみよう。
64点を時間領域で 残りの192点をFFTで行うとする
c0*d0+ ・・・ +c63*d63 とc64*d64+・・・c255*d255
前半は O((N/4)^2)=O(N^2/16) =4096
後半は、64サンプル毎に256点のデータで行えば 64サンプル毎に1回処理するので
4*(2N log 2N + N + 2N log 2N )=4*2*N*( 1+2*log2N) = 4*2*256*17= 34816

うーん

469 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 17:42:11 ]
>>464
単精度でFFT方式を10万タップで使うと、結果は上位8bitまでしか信用出来なくなる
浮動小数点なので、相対誤差だから十分良いといえば良いのだけどね

あと10万タップくらいならFFTでやれば今のPCならリアルタイム処理は行えるよ
実際やってるし。

だって2秒に1回計算すりゃいいんだから余裕。
素直に書いたルーチンでも1秒に10回くらいは計算出来てるよ。



470 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 17:56:28 ]
256点でなく、一般化して考えてみる
M分割した1/Mを時間領域で 残りをFFTで行うとする
この方式との比率は、
((N/M)^2 + M*2*N*( 1+2*log(N)/log(2)))/(N^2)

N=2^8ではダメだったが、
N=2^16 M=16を代入すると 約1/50
N=2^20 にすると 1/200 と大きいほど改善するようだ

さらに、細かく分割して効率化すれば、もっと効率上がるのかも

471 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 18:15:45 ]
計算間違いしてた
こうか?
 (((N/M)+M*( 1+4*log(N)/log(2)))/(N)

N=2^16 M=16を代入すると 約1/12 でしかない


472 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 18:24:13 ]
10万タップにあてはめてみるとN=16 M=32で約1/20
この時の負荷はFFTだけで計算した場合の100倍近い


473 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 19:50:03 ]
>>464
確かに時間軸での畳み込みをプログラムで実装するとそこが問題になりそうだ。
ハードのこと全然詳しくないんだが。
というかその後の話が全部周波数軸での話しになってるのが妙にうけた。
あきらかに>>464の話は時間軸での計算なのになw

FFTでの畳み込みは確かに早いんだけど精度とかアルゴリズム的なこと考慮しないといけないから面倒だな。
そういった意味では時間軸での畳み込みの限界を俺も見てみたい気がする。

474 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 19:55:58 ]
> 最近のメモリで読み出しレイテンシーが10nsくらいだから
> 信号と係数を逐次読み込んで毎回積和をとるとしたら
> 1/10000sec が毎回読み出しだけで消費されてしまう時間。

1/10000[sec]/10[ns]=10^-4/10^-8=10^4[word]

1/10000secって一体なんの話?

475 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 19:59:18 ]
10万個読み出し * 10ns と思われ リードタイム?

476 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:03:51 ]
10^5[個]×10^-8[sec]=10^-3
10万個なら1/1000がメモリ読み込み時間
10^6[個]×10^-8[sec]=10^-2
100万個なら1/100がメモリ読み込み時間


477 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:28:02 ]
FFTを使おうが、Σdt[i]*c[i]の演算は時間軸での計算だと思うけどな
単にFFTを使って掛け算を高速化しているのにすぎないわけで

>>464
まず、
係数については柔軟性を持たせる為に浮動小数点というのは悪くないが
データは16bit固定小数点で保持すれば十分だろう。
実用的には係数も16bit で十分。
(この場合でも積和累計レジスタには 16+16-1+17=48bit が必要)
その場合、途中係数が0が続く部分が大量に出る。
なぜなら全部が1のデータでも計算結果は2bitオーバフローしてしまうのだから。
だから0の部分をリスト形式でスキップすれば計算量は多少小さくなるかもね

キャッシュについては、
Σc[i]*d[i] は 分解出来るわけだから、たとえば256サンプル毎に
キャッシュに入るサイズで分割して計算すれば、問題ないだろう



478 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:31:31 ]
> データは16bit固定小数点で保持すれば十分だろう。
> 実用的には係数も16bit で十分。

ゲーム用途なら実用的かも。
音楽用途だと精度が低すぎ。
例えばリバーブの消えかけ部分のS/N比が低くなるだろう。

479 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:38:18 ]
>>478
リバーブの場合でも全体にスケーリングすれば十分さ。
逆にどこもかしこも係数が大きい100Kワードの係数があったとすれば
結果は簡単にオーバーフローしてしまう。

全部の係数が+1か-1であってもオバーフローするんだからさ

480 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:41:18 ]
ふーん。
固定小数点+スケーリングって事は、
トータルでは浮動小数点演算なわけだ。

481 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:42:56 ]
あ、ごめん。
データと係数は16bit固定小数でも
内部演算結果は48bitになるっつう話ね。了解。

482 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:46:55 ]
64bitマシンならともかく、現行CPUだと16+16-1+17=48bitを固定小数点で計算するには
桁上げが必要になるわけで、浮動小数点レジスタで計算させた方がいいと思うよ

483 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:48:45 ]
おk

一体なんのための固定小数点だったんだろうね?

484 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:52:21 ]
PCのインターフェースは44.1K 16bitステレオなのだから
16bit固定小数点の選択で何の過不足も無いと思うのだが?

485 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:55:01 ]
もーどーでもいいや。
結論出たら教えてくれ。

486 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:05:08 ]
じゃ、ここまでの勝手なまとめ
1、FFTを使う場合でもレイテンシ1のフィルタは実現可能
   ただし計算量はそれなりに増える
   それでも係数器が巨大ならFFTを使わない方法よりもずっと高速

2、FFTを使わない場合でもキャッシュサイズが溢れる心配については不要
  キャッシュに入るサイズにFFTでレイテンシ1のフィルタを作る時と同じように分割すればいいだけ
  だったらFFT使えよと

487 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:06:57 ]
DSPだと積和を1クロックで処理できるって売りを良く聞くけど
Intel入ってるとかだとどうなの? 例えば10クロック必要なら単純に
3GのCPUでも300M個の処理しかできないよね。
3億タップ!?って感じはするけど実際に使えるリソース考えると
>>464の言うリード時間の問題がほとんどになる気がする。

>>477
何個分割して処理しようが結局メモリからキャッシュにフィルタ係数なり入力信号なりを
リードしてから計算しないといけなくなるから無意味。
始めからCPUキャッシュ上に係数も信号も保持していないと駄目ぽ。

>>464
の言う1/10000sec が 1/1000sec の間違いだという仮定ならますますPCでの
リアルタイム畳み込みは時間軸では厳しくなりそうですね。
あと揚げ足とるようだけど10万個の係数読むなら10万個の入力信号も
読まないといけないわけで合計20万個のデータリードになるよ^^;
ということは 1/500sec が一度の積和に必要なメモリリード時間になるが。。。

キャッシュから外れたら無理だね。と思わせる時間だよなこれw

逆に質問、キャッシュ内データのアクセスタイムってどれくらいなんだろ。
ナノのオーダーじゃ全然遅いよね。ピコとかのオーダーなのかな



488 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:09:20 ]
>>486 の結論2は明らかに間違っている。

489 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:10:01 ]
って書いたら真上で 487が指摘していた うぇw

490 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:20:08 ]
>>487 もしかして、話についていけない?

フィルタの計算は、1サンプル毎にデータがズレて
t0↓ d  e  f  g  h  i  j  k
t1↓ c  d  e  f  g  h  i  j
t2↓ b  c  d  e  f  g  h  i
t3↓ a  b  c  d  e  f  g  h
係数器は同じ係数が使われる。
   c0 c1 c2 c3 c4 c6  c7

f0の時点で、 d*c0+e*c1+ ・・・・ だけでなく
d*c1+e*c2+・・・・ や
d*c2+e*c3+・・・・ を先に計算しておけば
t1の時点では c*c0だけを
t2の時点では b*c0+c*c1を計算するだけでいい というわけ

で、先に計算する時に計算順をキャッシュのサイズで分割すればいいだろ?
って話をしてるわけさ

491 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:00:44 ]
ようするに、
遅延器の後ろの部分は、先に計算出来るから
計算順を変更してしまって、
1サンプルでは同じ遅延器部分を何度も計算してしまうようにしちゃえばいいって事だな

で、細かく分割して計算順を変更する手間を考えたら、
だったらFFTで計算しちゃえよと

492 名前:デフォルトの名無しさん [2007/04/08(日) 22:03:03 ]
スルー

493 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:05:51 ]
>>490全然計算量減ってないあたりが笑えた


494 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:11:37 ]
ん?  計算量は同じだけど、t0に計算が集中してしまうね



495 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:18:05 ]
しかもt8以降は計算量一定

一体何を言いたかったの?

496 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:28:23 ]
こんだけ説明されて判らんのか? どこが判らんの?

497 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:32:40 ]
>>494
例ではそうなってるけど、
実際は、これを分割するわけ、キャッシュに入るサイズで分割すれば
キャッシュの出入り回数はそれだけ実質へらせられる



498 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:46:22 ]
とりあえず誰かこれプログラムにしてみてよ
話それから

499 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 23:18:17 ]
1/2分割の手順

N2=N/2-1
Σ(0..N){c[i]*d[i]} =c[0]*d[0]+c[1]*d[1] +・・・c[N]*d[N]

R1=Σ(2..N2) {c[i]*d[i]} S1=Σ(N2..N) {c[i]*d[i]}
R2=Σ(2..N2) {c[i]*d[i-1]} S2=Σ(N2..N) {c[i]*d[i-1]}


2サンプル毎に
偶数目では S1=Σ(N2..N) {c[i]*d[i]} と S2=Σ(N2..N) {c[i]*d[i-1]} を計算 
Σ(0..N){c[i]*d[i]} =c[0]*d[0]+c[1]*d[1] +R1+S1で求める

奇数目では R1=Σ(2..N2) {c[i]*d[i]} と R2=Σ(2..N2) {c[i]*d[i-1]} を計算
新しいサンプリングデータがdnewとして
c[0]*dnew+Σ(1..N){c[i]*d[i]} =c[0]*dnew+c[1]*d[0] +R2+S2 で求める

そしてデータは2ワードシフトする

500 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 23:19:36 ]
訂正
× c[0]*dnew+Σ(1..N){c[i]*d[i]} =c[0]*dnew+c[1]*d[0] +R2+S2 で求める
○ c[0]*dnew+Σ(1..N){c[i]*d[i-1]} =c[0]*dnew+c[1]*d[0] +R2+S2 で求める


501 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 23:51:28 ]
こういう計算する時の遅延器ってみんなどう実現してるのかな
DSPの場合はモジュラアドレッシングがあるからいいけど
PCの場合、俺がやった事があるのは

1、2のべき乗のサイズのバッファ取って and 演算で計算
   [(wp+i) & (BufSize-1) ]
  案外、効率が悪い

2、メモリを2倍とって wpの位置に書く時 [wp]と[wp+N] の2箇所に書いて
 読む時はそのまま [wp+i] でアクセス
  効率はいいけど、メモリが2倍必要
  仮想記憶用のテーブルにアクセス出来れば、メモリを2度割り付ければいいんだろけど

他にいい方法ある?
 メモリをその都度moveするコードはありえないとして


502 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 01:03:17 ]
何この流れ。
最近は、リアルタイムの意味を取り違えている人がいるから困ったもんだ。 (あのドラマ、リアルタイムで見た とか。お前の視覚神経はコンピューターか)

503 名前:デフォルトの名無しさん [2007/04/09(月) 01:04:27 ]
スルー推奨

504 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 10:47:29 ]
リアルだったら殴ってるよタイム

505 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 13:29:27 ]
流れぶったぎって初歩的な質問を・・・
0〜1のリニアなスロープを聴感上リニアにしたいのですが、いい方法ありますか?
-96〜0などとしてデシベル換算だと、0が0にならないですよね。
あるいは良く近似するカーブを得る軽い方法などありますか?
(自分は累乗をよく使うのですが、近似というところではイマイチで・・・)

506 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 13:38:18 ]
指数カーブに適当に0を通る関数を掛け算したら?
(a^x)*x^b
とか bを 1/2 つまり平方根なんて良く使うよ

507 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 14:44:14 ]
平方根掛けいいですね。
試してみましたが、かなり近似しつつ0を通るようにできますね。いいこと教わりました。
リアルタイムで毎回計算する用途だと平方根はちょっと重いですかね?
類似した方法も、いろいろ試してみたいとおもいます



508 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 18:34:32 ]
a^x と √x のどっちが重いかという話なら、同じ程度だと思うが
PCならテーブル作って間を直線補間するし
DSPなら4〜5次くらいに級数近似するし

509 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 01:18:11 ]
パッタリ止まったなぁw

で、ソースまだ?

510 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 02:05:59 ]
クレ房きました

511 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 02:08:10 ]
オレ、勝手にやってる

512 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 05:37:57 ]
流れが止まった・ ∪´∀`)モキュ

513 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 06:44:22 ]
ソースって・・・・ >>499の以上に必要か?

FFTを使えば、計算量もメモリアクセスも激減するのに、
こっちは計算量は減らない。 当然メモリアクセスも。
ただ同じ領域を2度使うからキャッシュが効き易いというだけじゃ、試す必要もない
理論的に可能かどうかは式みれば判るだろ

514 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 06:08:28 ]
>>501
モジュラアドレッシングって巡回アドレッシングの事だよね?
Tiでいうところのサーキュラドレッシングモードみたいな。

最近のPCだとSSEでシフトレジスタ用意されてるからほぼ同じことできるよ。
そうじゃなかったらメモリ2倍使う2番目の方法が一番現実的な気がする

>>513
まぁまぁそう言わないで。
初心者さんにしてみたらFFTなんか使う方法よりもサクッとフィルタ係数畳み込める
時間軸での方が分かりやすいし書きやすいってのはあるんじゃない?
溢れさえ気にしなければそのままソースかけるし。

515 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 08:32:25 ]
モジュラアドレッシング は モジュロ(modulo)アドレッシング の typo だろけど
SSEで モジュロアドレッシングってどうやるの?

516 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 03:20:32 ]
すごい止まったなぁ。。。

517 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 10:15:41 ]
DSPじゃないんだから、モジュロ・アドレッシングなんてできるわけない、
ムリに再現しようとしても動作が重くなるだけで意味ない、って誰か書けよ。



518 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 10:46:28 ]
直前まで、FIRフィルタ処理の話をしてるんだろ?
モジュロアドレッシングつかわずにどう実装するんだ?

519 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 11:43:45 ]
>>518
単純に、ループと配列を使って、掛け算したのを足していく。
逆になんでモジュロアドレッシングがなきゃできないんだ?

520 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 11:58:13 ]
>>519
ソレはバッチ処理の場合だろ?

1サンプルづつデータを受信して、処理する場合、モジュロで処理しないの?

521 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 12:29:19 ]
普通に書いたら、

wp := ( wp-1+length(data) ) mod length(data);
data[wp]:= 新データ;

sum:=0;
for i:=low(c) to High(c) do sum:=sum+ c[i] * data[ (i + wp) mod length(data) )] ;


だな。 もしかして、この mod がモジュロアドレッシングなのか?


522 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 12:32:07 ]
それなんていう言語の擬似コード?

523 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 14:02:00 ]
   // :/:::::/::::::.!:::|:::: !::::::::、:::::::::::::::::、::ヽ::::::::ヽ
   !|:::/::::::.!:::::::|:::∧::::|、::::::::!.、:::::::::::::ヽ: !:::::::::: !
  i:l: ::|:/:::.!::::::ii|_:| ヽ:::!l\:::!'、\::::::::::::!::!::::::::::::.!
.  |/l:::.!|, :::ヽ::::l'l:lヽ、ヽ:|l'´ヾr==ミ、:::::::|::|:::::::!::::: !
   |::.!l:.!::::::lヽ|,==、 `'    ヽ   \:|:: !: ::: !::::::.!   うるさいうるさいうるさい!
   l/ `ヽ::|:::l     , - 、       ll'::::!.l:::::.!:::::::.!
       l`l::.!!     l/ ̄ ヽ    /.!::::.!:|::::::.!:::::::l
       !::::.!.!ヽ   ヽ   ノ  /::::|:::::|::.!:::::.!:::::::.!
      .!::::| !::::.` ー 、._ ´ ,/  |::: !:::::|:::l::::::.!:::::::|
       |:::::|.!::::.!:::::.!:::::::::`Г    l-,|::::.!::::|::::::.!:::::::|
      |::::::l':::::.!::::::|:::::_, -/}    /:l:::::lー-: !:::::::.!
      !::::::|:::::_!, .‐' ´.:.:.:!r- 、_ /.:.:.:!::::l// /`ヽ:: !
.     |::::::|/ ヽヽ.:.:.:.:.:.lィーミ./.:. :.:.:.!:::.!/  /   !::.!
.     |:::::::! ヽ ヽヽ.:.:.:.ヽ  / .:.:/ !::::|   /   |::::!

524 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 15:22:39 ]
>>522
PascalとかSmalltalkとかじゃないか?

525 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 15:50:35 ]
>>501
3、積和を2度に別ける
wp〜最後までと
 先頭〜 に


526 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 01:57:52 ]
久しぶりにパスカルチックな言語書く人みたわwwwwwwwww
:= なんてほんま涙がでそうやわ。

ここ見てる人はシフトレジスタ知らない人なんだねと心底思った。

527 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 07:12:04 ]
シフトレジスタ?
シフト命令の間違いか? だとしても、この話題のどこにシフト命令が?



528 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 10:20:39 ]
>>526
コンパイラが勝手にやってくれるところだろ。

529 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 12:51:26 ]
>>526
このスレと過去ログを := で検索してごらん
www.2chdat.net/data/html/01111704/996171508.html

たぶんあなたが思うより多かった筈だ。
たぶん、スレ参加者の半数くらいは windowsではDelphi使ってるカモ

530 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 13:07:03 ]
×スレ参加者の半数くらいは windowsではDelphi使ってる
○Delphi使ってる香具師が一人で頑張っている

531 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 13:35:49 ]
":= "が登場したのはフィルター計算とサイン波音源の話くらいかな

532 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 05:00:43 ]
:= 書いてるの明らかに一人だけじゃないかww

>>530に禿げ同

533 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 07:28:59 ]
Delphiは良いと思うよ

534 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 07:38:28 ]
うん。低レベルAPIのラッパコンポ作っておけば、
実験するときはポトペタで簡単にコード試せるし
GUI付けて、他人に試してもらうの便利。
BCBもいいけどコンパイルの早さでDelphiだな

535 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 10:13:19 ]
Delphiは完成品が重いし、コンポーネントはバグ抱えてるし、
意外とほかでの応用がきかないし、どうかな…。

536 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 10:23:18 ]
自分の場合、windows上だけで完成するわけじゃないからテスト用
アルゴリズムを評価してもらうためと自分のテスト用ね。
コンポーネントのバグは知らない。テスト用だから気にもしてないのかもね

537 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 10:32:50 ]
>>534
お前はまずPCを買い換えろ。
テストコード程度でコンパイル速度に顕著な差が出るってどんなマシン使ってんだ・・・



538 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 10:51:14 ]
Delphiは完成品がとても軽いのだが・・・・もしかしていまだにDelphi5使ってるから?

>>535はどのバージョンが何と比べて重いの?

539 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:16:28 ]
PC を買い換えたら Delphi の完成品の速度も、BCB のコンパイル速度も上がるな(w

540 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 12:42:36 ]
パソコンが速くなっても、BCBだとF9押して3秒くらい
Delphiは1秒以内。 実行ファイルそのままクリックしてる感覚と変わらない
だからCで書いたコードのテストでもDelphiからコマンドラインでBCCでコンパイルして
pascalでテスト部は書いてるな

541 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 12:45:38 ]
Delphi派は判ったから、他の人は何で書いてるのか知りたいな。
MATLABとか多そうだけど

542 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 16:35:04 ]
ノシ
MatlabとJava

543 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 18:22:31 ]
それ以前にこのスレはどうゆう人が多いのかな
DSP使った組み込み向け信号処理屋みたいな人とか、
PC向けリアルタイム処理(音楽関連アプリやVSTとかDXプラグインとか)やってるひととかさ。
それによってだいぶ違うよね?
前々からそれによって微妙に話しが食い違うときがあった気が。
いわゆるゲーム屋とかでは、このスレみたいなやれFIRとかFFTとかいう話題にならないし

544 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 18:54:32 ]
音を利用するプログラムを作ろうとしてるか、音データを処理するプログラムを作ろうとしてるかだけでもだいぶ違うな。

545 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 19:22:09 ]
>>543
ところがどっこい
エンタメ系サーバ書いてる奴がPhaseVocoder使ってたりするw

546 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 21:06:25 ]
私ゃ信号処理屋だから参考にしてるだけ。
まぁでも、光もナノテクの世界では音みたいなもんだしね。

547 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 21:11:30 ]
非現実的な妄想発言を見てしまった



548 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 21:13:00 ]
>>185書いた人?

549 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 21:13:00 ]
低学歴が犯しがちなトンでも発言だな

550 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 21:37:05 ]
このスレ 面白いんだけど、ドレが正解かよく判らん所もあるな

551 名前:546 mailto:sage [2007/04/21(土) 21:37:39 ]
私ゃ>185じゃないよ。

光の回折でエッジが暈けるから位相を反転して合成しようとか、
光の密度が均一じゃないから反射を利用して均一にしようとか、
そういう話を実際の光源でテストする前にシミュレーションする仕事が
よく来るのよ。実際何がどうしてそうなるのかなんてよく判らんけどね。

552 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 21:40:29 ]
じゃ>>185は正解なの? 
あと >>109は?

553 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 22:52:39 ]
低学歴なんでよくわからないけど、
スペクトル分解(フーリエ解析)なんかは、
電磁波でも音波でも全く同じ数学なんじゃないの?

554 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 23:09:21 ]
>>553
光と音は波としての性質は同じだが、目と耳は構造も機能も全く違うからな。

555 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 23:30:56 ]
> 光もナノテクの世界では音みたいなもんだしね

どんなナノテクwをやっているのかkwskw

556 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 23:52:11 ]
まあいいじゃないの、そんなとこに食いつかなくても

557 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 00:04:21 ]
はいやっぱり逃げたね
いくらなんでも愚かすぎる光学技術者だと思ったら
やっぱネタか




558 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 00:17:39 ]
画像処理と音声処理の共通点の無さは異常

559 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 00:21:20 ]
決まり文句も出たところでこのへんで

560 名前:546 mailto:sage [2007/04/22(日) 05:54:18 ]
面白いなぁ、勝手放題で。
信号としての特性に似たところがあるってのを似たようなもんだって書き間違えただけでこれだ。
それに私は自分が光学技術者だなんて一言も書いてないのだけれど。

561 名前:デフォルトの名無しさん [2007/04/22(日) 08:06:15 ]
だいじょぶ、俺は信じるよ

562 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 08:35:52 ]
> 光もナノテクの世界では音みたいなもんだしね

どんなナノテクをやっているのかちゃんと言ってごらん


563 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 08:37:10 ]
>>545
PhaseVocoderを何に使うんだろうね

564 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 10:04:38 ]
>>109の音は干渉しても消えないというのは

・光の波は進行方向に垂直だから進行方向が異なっても
 合成した場合、電界変化がゼロになった場所は磁界変化もゼロで、その場所では検出出来ない


音の波は、
tmhf.eng.shizuoka.ac.jp/m5/yanafuku/resonance/wave.htm
・進行波は運動量変化が進行方向に生じるので、方向が違うならベクトル加算しても消えない
・定在波は、運動量変化と圧力は90度位相がズレているので、圧力変化が最小の場所は運動量最大である

だから音の波は干渉では消えない。 
>>181 のように仮想の壁で反射する事でダクト消音は出来るが、これは干渉ではない。


・・・という理解で正しい?

565 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 10:25:13 ]
高卒かよw

566 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 10:35:27 ]
V

567 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 10:37:43 ]
> 光もナノテクの世界では音みたいなもんだしね

どんなナノテクをやっているのかちゃんと言ってごらん



568 名前:546 mailto:sage [2007/04/22(日) 11:49:46 ]
私自身はナノテク技術者やってるわけじゃないんだけどな。
まぁ、同じレスがコピペされている段階で相手にするだけ無駄か。

569 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 12:03:50 ]
お前は自分の発言に責任を持っていない。
まともな神経を持った人間とは言い難いな

570 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 12:09:18 ]
この人は2ちゃんに何を期待しているのだろう・・・

571 名前:546 mailto:sage [2007/04/22(日) 12:09:31 ]
みんなごめんね☆

何か寂しくなっちゃって全然関係ないこと書き込みしちゃいました。

反省したので明日ボウズにしてきます。

(;_;)



572 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 12:30:47 ]
>>569
侮辱的な発言ありがとう
ちゃんと責任とれよ

573 名前:546≠571 mailto:sage [2007/04/22(日) 13:19:56 ]
あ〜あ、もう収集つかないね。

574 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 15:08:07 ]
今どき絵に描いたような煽りにつきあうなよ。

575 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 15:46:49 ]
>>564
ホントに光も磁界変化はゼロになるのかな?
2つの送信アンテナ1,2 で逆相で送信して、等距離の3の位置で受信すると考える

@      A
 \   /
   \/
   B

電界を検出するアンテナでは、3の位置では逆相で打ち消される
では、バーアンテナを3の位置に取り付けたらどうだろ? 
1−2に平行の場合は、話の通り、検出出来ない。 
バーアンテナを1の同心円方向に設置すれば2に対して指向性が働いて受信出来てしまうんじゃないのか?

576 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 17:21:31 ]
電磁波の場合、そのバーアンテナを設置した事で、状態が変化してしまうよ。
バーアンテナをその向きに設置したことでバーアンテナに磁界変化が起きる=然電界も変化するわけで、
バーアンテナを設置したことで、普通のアンテナでも受信出来る位置になってしまうわけ


577 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 18:29:07 ]
おまえら電波かよw



578 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 18:40:00 ]
波の物理的なイメージってのは、難しいよね。
だから、こういうのをしっかり掴む為にも、こういう議論は有意義だと思う

579 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 18:54:37 ]
>>577
デムパというよか、電子回路系なんだろうよ
この不思議な議論の流れから察するに

580 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 22:54:13 ]
電子回路系、、、ってのもずいぶんと無知な言い方だが
とりあえずスレ違いの域なのは確かだな

581 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 22:57:33 ]
ムリな言い訳しなさんな
あんた向いてないよ

582 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 01:58:28 ]
軌道修正を行います。
完了推定時間、9分です。

583 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 07:31:03 ]
スタジオエンジニアとか、ホール設計とかだと、300Hzの音聞きながら、
部屋の中に波長1mの定在波をイメージしてたりするんだろか?

584 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 01:27:43 ]
オレ、しないな。

585 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 01:49:55 ]
音を聴きながら波形をイメージすることはあるよな?
この音は丸っこい、とかカクカクしてる、とか。

586 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 03:09:57 ]
>583,>585
スレ違い。
プログラミング関係ねぇし、お前が何イメージしてるかなんてどーでもいい。

587 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 04:08:07 ]
プログラミングならグラフをイメージしないとやっていけないだろ
この音の振幅は・・・周波数は・・・・・だめだ、差分適応PCMは圧縮できそうにない・・・・・・



588 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 07:03:29 ]
>>586
スレ違いだと思うなら、何かネタをフルべきだと思う。
それじゃ潰し屋だ。

プログラミングネタは、APIの呼び出し関係は
それぞれの環境依存がすぎて本人特定されちゃうくらいなわけで、
まあ各自マニュアル嫁って事で、話題にし辛い。

アルゴリズムネタにどうしても流れてしまうのは仕方ないと思うが・・・限界があるよな。

でも、そろそろ新人さんのhelp meネタがあってもよさそうなんだが・・・・
怖がらずに質問してくれていいんだよ>>新人さん

589 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 09:17:25 ]
昔、質問したら、難しい物理方程式を出されて全く理解不能だった。
プログラムの実例を教えて欲しかったんだが。 物理の勉強をしに来たわけじゃないので。

590 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 09:29:47 ]
なるほど。 でも方程式を教えてくれただけでも良かったと思うのだが?
さすがにコードまでは書いてくれんでしょ

591 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 09:58:17 ]
人はそれを丸投げと言うからな。

592 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 10:10:10 ]
理屈を知ってないと応用が利かないしねえ。
いちいち質問する訳にも逝かないだろう。


音関係の弄りやすいライブラリって何?
やっぱりダイレクトエックスとか?

593 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 10:11:43 ]
>>589
数式が読めない人は、プログラムの前に数学を勉強すべき。
仕組みが理解できてないと、問題があったときに対処できないだろ?

594 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 10:13:12 ]
今は googleさんがあるから、キーワード一つ教えてくれれば、後はなんとかなるものな

595 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 10:14:56 ]
で、検索したらこのスレがヒットするという

596 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 10:59:08 ]
そして質問してみて、にちゃんの洗礼を受ける。
にちゃんねらーとしてにちゃん教に入信しました。他の宗教は信仰しては逝けません。

597 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 18:57:23 ]
やろうとすること次第であって、大半のことは中〜高校数学程度で足りるしょ。
複雑な数式理解できないと話しにならないような場面は限られてる。
数式が出てきても必ずしも理解する必要はないし、道具として使い方知ってれば事は足りる。
そこそこ詳しい人ってのは、必要以上に難しく説明しがちなもんだわさ。



598 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 19:05:21 ]
おめえはホント口先ばっか達者で話題が乏しいな

599 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 19:48:33 ]
>>597
高等教育とはそんなものじゃないよ。
中卒の方ですか?

600 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 19:53:50 ]
だからさ道具と思って知ってるだけじゃ応用効かないって話。
答えが見つかればそれを道具として中身を理解せずに使えば良いじゃんって頭悪い。

601 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 19:57:13 ]
じゃあ質問します
アナログアンプのシミュレータを作りたいと思ってるです。
真空管なんかは飽和歪みがひとつの特徴らしいのですが、そのほかに注目するべき点はどこでしょう。
位相特性みたいな話しをよく聞くのですが、
この場合の位相特性とは具体的にどうゆうことなんでしょう?
アナログアンプ的な特徴的な位相特性とはなんでしょう?

602 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 20:18:17 ]
                           _ , ─ - 、
                       , -‐'´      ヽー 、
                      , .'´        ソー     ヽ
                 -≠Z´, ,           ヽ    ヽ
                   / / / / /,        、  ヽ   ヽ
                    / イ ,' ,' .ィハ l  ! 、  、  ',   ',   !
                 /' ,'.i ! .l /l.l l  !、 l  ヽ  i  |    l
                   l' l k l l7`|'-、.ヽ lヽ. ト、 ヽ  | l l   l
                   l ハ i .{lr≠、ヽ \‐ヘ'ヽヽl-. トl !   i l
                      |' .',lx!i !|::;:}    _,r≠=、卜!' ,'.   |.!ヾ、
                      i'l ー'    !l、::::;:}》. //`y イ'|'  `
                          lヽ   '    `ー'/ .//,.ノ/ |
             l 、    ,、   |/ ヽ、 -    /ソ /ィX.、
            r┴-'ニ< ヽ--、   ` ーz- ' ´/ィ'´ヽヽ、ヽ
             てー  _`._j弋ー' ヽ、.,r,ニ-´ー ´.     l l.l }
         , -‐y‐ '{ /´::::::、ヽ. ̄ヽy'-´ヽヽヽ       l l !'
          ,〃'´    Y´:::::::::::::}  /ー:、:::::::ヽ', ',       l l !
        {、ヽ     l:.:::::::::::::::l /:::::::::::::ヽ:::::l | l       ///
        | ヽヽ、   i::::::::::::::::l/::::::::::::::::::::i;:::l l l    ,r ニ 'l
>>597・・・中卒のDQN旋盤工と推測・・・性交経験なし・・・

603 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 21:05:27 ]
自分で測定するのが一番いいのだろうけど、
回路シミュレータでやってる人がいるので
www.geocities.jp/ltspice_swcadiii/tube/index.html

これをベースにやればどう?

604 名前:601 mailto:sage [2007/04/24(火) 21:42:16 ]
あー参考になりそうだけどむずかしいな。。。回路設計とかの知識はまったくないもんで。
きほんてきなことなんだけど位相特性というのは、
周波数成分ごとの信号の遅れ(ディレイ)と単純に考えていいの??
ここのページのグラフだと、高域成分ほど遅れてると見るんでしょか。
実際に周波数特性をフラットなまま周波数成分ごとの遅れをシミュレーションするとしたら、
どういう実装方法になるんだろう。

605 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 21:58:23 ]
位相特性は位相特性 高域程ってあのグラフは1Mまで伸びてるから

10KHzで360度だから1遅延程度を入れて位相特性図を描きなおした方がいいと思う
位相だけを補正するなら 
 APF=オールパスフィルタ
が 検索キーワード


606 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 22:00:45 ]
ようわからんけどFFTで帯域ごとに処理でいんでね?

607 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 22:05:36 ]
FFTで帯域ごとにってのは・・・
 短時間FFTで周波数軸上で音の加工は基本的に出来ない。
 短時間FFTを使うならFIRフィルタの高速計算の目的で

位相特性だけを加工したいなら、オールパスフィルタ( IIRフィルタ)を複数組み合わせるのが最適
オールパスフィルタには1次と2次があり、
どちらも実現式は非常に簡単。

googleさんで調べて、ダメならまた聞いて。



608 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 22:25:15 ]
DTM板の関連スレを焼きなおしてるだけじゃん最近の話題って
なんでそんな貧しい行為に必死になるかな


609 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 22:40:03 ]
高域だけを遅延すりゃいいのなら、FIRフィルタでも出来る
0, 0.038394
1, -0.188396
2, 0.958548
3, 0.191451
これで大体高域が90度回る

低域で位相を回したいならIIR-オールパスフィルタでないと面倒だ

610 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 23:01:38 ]
これで44.1Kサンプルで3.5K付近から90度回せられる。 遅らせたいなら係数の順番を逆にする
0, 0.0370952
1, 0.0338991
2, 0.0622815
3, 0.0796952
4, 0.1040610
5, 0.1494064
6, 0.1928090
7, 0.2834788
8, 0.7217380
9, -0.5518646
10, -0.1280079
11, -0.0307499
12, -0.0003218
13, 0.0023316
14, 0.0115652
15, 0.0163134
16, 0.0076485
17, 0.0086209

611 名前:601 mailto:sage [2007/04/24(火) 23:07:07 ]
オールパスフィルタって、存在はは知ってたけどこうゆうときに使えるのか。
とりあえずフィルタの実験に入ることにします。
FIRも係数このぐらいのなら低負荷でいけますね。(てか設計すんの速いですね・・・

612 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 01:13:29 ]
設計はMatlabでポンだよ。

613 名前:601 mailto:sage [2007/04/25(水) 01:18:18 ]
位相いじるの面白いですね、オーディオ的にかなりいい経験です。
オールパスフィルタをスタックしたりして極端なことやってみてるのですが
スペアナ見てるぶんには周波数特性変わらないのに、
ほんとに音の太さとか(というと曖昧だけど)ニュアンスが変わって
特にベースやキックなんかの低音楽器はわかりやすいですね。
周波数特性だけじゃ出音は語れないっての痛感・・・

614 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 02:33:15 ]
本来は位相も含めて周波数特性というんだが、スペアナとかで見える値は振幅の絶対値
でしかないわけだから本来の周波数情報のうち大部分欠落した情報を見せられているから
無理もない話なのかもしれん。

615 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 03:03:57 ]
真空管の振幅を実際見てないとイメージしにくいだろうなあ。
経験的にどうなるかは知ってても、知らない人に説明できる自信は無い。orz

なんとなくプラグイン買う金がないから自分でなんとかしよう的な雰囲気はあるよね。
PCでシュミレーションもいいけど、実際に回路設計して半田ごてで制作するのも楽しいと思うよ。

616 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 06:30:10 ]
> 本来は位相も含めて周波数特性というんだが

位相の周波数的変化を群速度という。

617 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 10:12:43 ]
理屈抜きで音だけでいいなら、
素の音と、軽くディストーションをかけてLPFを通したものをまぜて、
それにディストーションをかけてHPFを通すと、アンプの音になる。

役立つ参考リンク
www.harmony-central.com/Guitar/guitar-amp-evolution.html
www.harmony-central.com/Guitar/guitar-amp-evolution.html



618 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 10:16:01 ]
なんだここ荒してたのもアイツだったのか
世も末だな

619 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 17:16:41 ]
何をいまさら

620 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 08:29:57 ]
FIRフィルタで位相が変化しないフィルタが作れるっていうのは、それは遅延を無視してるからだよね?

621 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 08:46:44 ]
よし、googleさんで、このスレがヒットするように書き込み

オールパスフィルタで フェーズシフタとかワウワウ とか

622 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 22:50:54 ]
前から思ってたのだが、
このスレってスレタイから想像するのと微妙に雰囲気違う気がするな。
次回から【FFT】デジタル信号処理プログラミング【IIR/FIR】とかにしてはw

623 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 23:18:18 ]
それは悲しい。

624 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 23:40:49 ]
>>622
おまいはスレタイからどんな想像するのか言ってみろ

625 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 00:47:34 ]
いやほら、サウンドのプログラミング、サウンドをプログラムするというと
もっとサウンドそのものというか、コンテンツ自体に近いイメージないか?
あとゲーム系。実際サウンドプログラマーと呼ばれる職種があるしさ
シンセなんかの音色を作ったりするのもサウンドプログラミングと呼ばれることがあるしな。

626 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 01:00:32 ]
おすすめ2ちゃんねるに注目w

627 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 01:16:41 ]
>>625
その辺はDTM板で扱う話題のような。

まあ、紛らわしいのは良くないんで次スレは「音声処理」にでもするか?
「デジタル信号処理」は音声以外にもいろいろあるし。




628 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 01:25:03 ]
>>625
シンセの音色はマズイが、その上はまあスレ違いとは言われないだろ

629 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 01:35:29 ]
自分は「サウンドプログラミング」の語感からだと音に関しての出力段に近い処理の事のニュアンスが強いな。
このスレの流れだと「信号処理」(デジタルに限らないが周波数は可聴領域)って感じかしらん?



630 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 01:49:05 ]
そんなに話題の幅を狭めなくても、音に関する処理全般をプログラム板的に扱うスレ、でいいじゃん。


631 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 02:47:44 ]
このスレでよく出てくるようなデジタルフィルターや、いろいろな変換/解析技術とか、
デジタルオーディオを扱うソフトウェア技術を総称してなんと呼ぶのか、ということだな。
DSPプログラミング、とかもありかな。

632 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 04:42:50 ]
サウンドの技術屋なんてただでさえ多くないんだから別に細分化しなくてもいいでしょ。
ドライバ語ってもいいし、MIDIデータ語ってもいいじゃない。

633 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 06:12:38 ]
同意

それにしても
サウンドプログラミングというと、楽器機材のオペレーションや打ち込みを意味したり
サウンドエンジニアというと、音楽スタジオのレコーディング・ミキシングエンジニアを意味したりするから
世の中ややこしいわな・・・
音楽スタジオのエンジニアのほうもそう言ってたの聞いたことある

634 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 06:32:14 ]
空理空論ばっかりの荒しうぜぇ

635 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 07:48:40 ]
まあ、プログラム板にある時点で察しろってことだな。

636 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 10:05:21 ]
シンセの音作りや、効果音の鳴らし方の質問も答えるよ。

637 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 10:46:00 ]
MIDIデータの音長に1/fのゆらぎを与えるプログラムの書き方を教えてください



638 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 10:57:13 ]
1/fゆらぎ というのは、周波数に反比例してノイズが大きくなる事
正規乱数を累積すればいいのだが、正直にやると、発散してしまう。

単純に乱数を2個取って は cは小さい係数として
d := ( (rand()-rand())*c + d*(1-c) );

この d を単位時間毎に更新しては、オフセットとして加算しては?


639 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 10:59:12 ]
>>637
ランダムに値を増減する、というのを何度も繰り返すと、
元の値に近い部分が最も多く、元の値から離れたものが最も少なくなる。
これが一番簡単な1/fゆらぎの作り方。

640 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 12:02:55 ]
ゲーム業界の狭い呼称を世界標準と勘違いされてもねえ。
ここは音響全般のプログラミングでしょ。

ゲームとか楽曲とかのエンジニアはミュージックプログラミングの方が近い。
DTM板の方が適当だろうね。プログラムあんまり関係ないし。ソフトでどう表現するかの方が主体。

641 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 15:28:54 ]
Flashでサウンドプログラミングしてる人っている?
いろいろできるみたいなんだけど。
www.dtmm.co.jp/archives/2007/04/flashmod.html

642 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 20:32:19 ]
>>641
おお興味ある。
前からFlashでリアルタイムのサウンド処理できたらと思ってたんだけど、不可能とあきらめてた。
で、びっくりしたんでざくっと調べてみたんだけど、
最新のFlash CS3(FLASH 9) with ActionScript3で可能になってきたっぽいな
ランタイムVM(Flash player)もインタープリタ式からJITコンパイラに変わったり
すげすげ

643 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 01:51:29 ]
もうねすれ違いでわりぃんだけど
ECMAScriptのJIT実装ってどうやって型の解決してんだか、そっちが気になったのと
AMラジオの帯域だと今時のCPUで処理可能なんだなと思うとサウンドプログラミングって名前で良いのかとちょいと疑問に思う(w


644 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 07:08:22 ]
もう支離滅裂やん
いい加減にしろキチガイ

645 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 08:06:19 ]
AS3ってJTIとかそういうのじゃなくて
単なる実行エンジンの改良で早くなったときいたんだけど。
というかマジちんこ痒い。

646 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 08:10:14 ]
いい加減にしろよ

647 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 08:27:41 ]
といって、このスレでf0/Qがコントロール出来るフィルタ教えろと言っても教えてくれんだろ?



648 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 09:18:10 ]
pc.watch.impress.co.jp/docs/2006/1122/mobile357.htm
2.7MHzの1bit信号を88.2kHzのPCMに変換するデシメーションフィルタ
って、あるけど
www.sony.jp/products/Consumer/SACD/format/index.html
サンプリング周波数は2.8224MHzとあるから64倍でしかないのだから

コレって何てこと無い単なるFIRのLPFだよね?
演算負荷下げる為にFFT使う程度だと思えるのだが

649 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 13:06:20 ]
なんだよソフトウェア・ラジオの話題かよ
そんなInterfaceの過去記事みたいな話題を
いまさらここでやって何になるの?

何かハッタリをこいたつもりなのかこの親父は

650 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 13:07:42 ]
>>648はDSDかよ

651 名前:デフォルトの名無しさん [2007/04/30(月) 08:57:31 ]
Winampのプラグインか、VSTプラグインで、エフェクタ系のプログラムを
作ってみたいのですが、何かいい参考書、文献、Webなどありませんか?
みなさんは、サウンドプログラミングを始めるとき、何をとっかかりにして
スタートしたんですか?







[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<170KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef