[表示 : 全て 最新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

301 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 12:13:17 ]
MMLまで作ったのかw

302 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:28:35 ]
4分割多重MML再現したくなったw

303 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 21:39:59 ]
>>300
努力した内に入らないよw

304 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 21:52:44 ]
BASICでbeep文だけで声を鳴らすサンプルコードがあれば教えてよ

305 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 22:02:26 ]
>>300
久し振りに笑うプログラムに出会った
これは面白い
Windowsにこのような機能がまだ残されていたとはw

306 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 22:03:09 ]
何BASIC?

307 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 03:52:18 ]
FFTを勉強中です
基本的な質問で悪いんだけども
周波数ごとの音量ってのは
実部のスペクトル?
それとも実部と虚部から求めるパワースペクトル?

308 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 03:57:21 ]
補足です
パワースペクトルが音量に相当するなら
実部=0、虚部≠0の場合
周波数は無いのに、音量はあるのか?
実部が音量に相当するなら、パワースペクトルの意味ってなに?
とか、よくわかんなくなっちゃったのです


309 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 05:09:56 ]
laputa.cs.shinshu-u.ac.jp/~yizawa/InfSys1/basic/chap6/index.htm
アニメで見ると分かりやすいね



310 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 01:10:53 ]
>>309
読みました。
たしかにアニメーションついててわかりやすいですね。
んで、周波数ごとの音量に相当するのは、
パワースペクトルってことですね。
ありがとうございました。

311 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 22:54:20 ]
SIMDなフィルタプログラムの英語か日本語のチュートリアル、どこかにありませんか?CPUには拘りません。

312 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 22:50:57 ]
アップサンプリング時にゼロ補間してもスペクトルが変化しない理由ってなんでしょうか?


313 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:02:00 ]
補間のあとのLPFで鏡像になって出てくるスペクトルをカットしてるから。

314 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 09:06:10 ]
wavファイルの合成について相談です。

現在2つのwavファイルを読み込み、データ部を足し算することで「両方同時になっているwavファイル」を作成、出力することができました。
ここで疑問なのですが、16bitWAVの場合、データ部の値は
-32768〜32767
となりますが、2つの足し算なら「int型に変えたあと足して、限界を超えたら丸めこみ、shortの範囲に戻す」すればいいとわかります。

ですが、3つの音を足すとなると、丸めこみを最後に一括してやるか、足すたびにやるかで結果が変わってしまいます。
例:
丸め(30000 + 30000 - 10000) = 32767
丸め(丸め(30000 + 30000) - 10000) = 22767

今はまだ、足す音が3つと決まっているから1単位時間毎にintで計算>shortで吐き出しで問題ないのです。
が、もし「任意にユーザーの選択により次々音を足し算できるツール」のようなものを作る場合
やはり単位時間毎に一旦intとしてバッファを作り、WAVファイルとして出力する際に丸めこむべきなのでしょうか?


315 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 11:52:39 ]
先に個数で割ればいいだろう

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