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


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

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



1 名前:デフォルトの名無しさん [2009/01/11(日) 13:43:21 ]
音のプログラミング処理について語りましょう

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

サウンドプログラミング4
pc11.2ch.net/test/read.cgi/tech/1185340076/

サウンドプログラミング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

316 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 13:11:05 ]
>>315
個数で割る。というのがよくわかりませんが、任意に追加できるため個数はその場その場で定まらないのを想定しています。

例えばAとBを合成して、とりあえずそれを再生。
ユーザーがそれを聞き、「やっぱりCも合成しよう」となった時などを想定しています。

AとBの合成音を再生するために、合成音を出力するバッファを用意しますよね。
その後Cを合成するのが決定した時、
・再度A、Bのデータもひっぱってきて、3音合成する
というよりは
・A+Bの合成音にCを合成する
ほうがメモリー効率や処理速度などで有利そうです。

ですがそれだと丸めこみ問題がでてしまいます。

317 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 13:35:55 ]
普通は64bitとか128bitで計算して最後に戻すのよ。

318 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 14:55:02 ]
>>普通は64bit
一体16bit音源を何万個合成するつもりだよw

319 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 00:22:21 ]
>>316
> その後Cを合成するのが決定した時、

そんだけ仕様が未確定だと汎用的にプログラム書くしかないから効率もクソもない。
数百万サンプル程度の加算が問題になるような環境ならできることの自由度を下げる以外ない。

あと「〜そう」で目についたところを最適化するのはほぼ最悪の戦略。
かなりの確率で最適化ポイントを間違う

320 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 17:33:01 ]
ごめんねぼくはdouble厨なので

321 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 20:45:17 ]
コンプレッサ実装すれば?
r = 初期値1.0
出力サンプル = 合成サンプル * r
出力サンプルが16bit幅超えたら、r = abs(合成サンプル) / 32768.0 で更新
r < 1.0 なら時間経過と共に少しずつ1.0へ戻してやる

実用レベルで実装するなら細かいノウハウとかあるからDSP関係の文献自分で調べて

322 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 00:00:11 ]
>>314は「丸め」とか用語が適切じゃないからちょっと知識が不足してる感じがするね。
俺もコンプレッサ/リミッタ関連について調べてみることをお勧めする。

323 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 11:34:15 ]
コンプレッサーはデータを改変してしまうからよくないだろ。
ノーマライズすればいい。

324 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 18:08:07 ]
いまどき整数とか面倒
不動明王を使うだろ普通



325 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 09:59:47 ]
恐れ入谷の鬼子母神

326 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 21:27:02 ]
>>314
分解能32ビットとかで作業用データ配列を作成すると良い。すべて加算した後16ビットレンジに収まるよう最適化する。

一旦WAVファイルをセーブした後、さらに別のWAVファイル加算したいときは、16ビットでは精度が不足するので、
以下の方法を取る。

WAVファイルの分解能をfloatか24ビットとする。フォーマットの設定が16ビットと異なるがちゃんと再生されるWAVファイル
を作成することができる。

参考:
WAVEFORMATEX構造体
WAVE_FORMAT_IEEE_FLOAT


327 名前:デフォルトの名無しさん [2010/06/11(金) 21:35:42 ]
float
-> WAVEFORMATEX
24ビット
-> WAVEFORMATEXTENSIBLE







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

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

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