- 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
- 251 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 16:45:56 ]
- >>249-250
ありがとうございます。 試行錯誤してみます。
- 252 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 17:22:01 ]
- 色々な楽器の倍音構成をある程度記載したサイトもしくは書籍などないでしょうか?
ピアノについては見つけられたものの、そのほかの楽器が中々見つけられません
- 253 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 19:15:25 ]
- Peak Apmplitudeについても、何となくわかりました。
曲によって振幅が違うから、その状況を表しているんですね。 それにしても、何故「1」が最大値なんでしょうか。 「1」の基準は何でしょうか? 質問ばかりで申し訳ないのですが、ご存じの方教えてください。 よろしくお願いいたします。
- 254 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 19:24:26 ]
- 少しは自分で考えないと相手にされないよ
もうされてないと思うけど
- 255 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 03:19:10 ]
- >>252
自分でスペアナ通せよ。 >>253 Maxが100%=1だと計算しやすいから。
- 256 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 04:00:30 ]
- >>255
本当にありがとうございます。
- 257 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 14:23:14 ]
- 適当なGM音源モジュールを買ってMIDIで鳴らして録音
リアルな音じゃなくても、倍音構成を調べるくらいには使えるんでない?
- 258 名前:デフォルトの名無しさん [2009/09/30(水) 20:15:57 ]
- 本当にありがとうございます。
- 259 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 05:56:05 ]
- デシベルの計算式がまったく理解できなくて死にたい
-25dBから-30dBに音量が下がったら振幅値にいくつかければいいんだ…
- 260 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 06:14:42 ]
- まず日本語からだな
- 261 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 06:34:53 ]
- 振幅100の正弦波を基準として(これが0dB?)音量が-5dB下がったときの振幅値を知りたいんだ…
説明すらできねぇ…
- 262 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 07:07:58 ]
- -25dBの正弦波を、-30dBの正弦波にしたいって事だよね?
>>250 の逆の変換になるので、この場合、10^(-5/20)を掛ければよいはずです。
- 263 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 09:42:46 ]
- dB = 20log(A/B) log:常用対数
(パワーの場合は10log(A/B)) -25dBから-30dBに音量が下がったら振幅値にいくつかければいいんだ… -25dBの正弦波を、-30dBの正弦波にしたいって事だよね? >>250 の逆の変換になるので、この場合、10^(-5/20)を掛ければよいはずです。
- 264 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 10:40:13 ]
- >>262-263
ありがとうございます!まさにコレが知りたかったんです… 教えていただいたことを参考にして ttp://geocities.yahoo.co.jp/gl/flawtips0/view?.date=20050324 を試してみたのですが、同じ波形を得ることが出来ませんorz 計算は間違えてないと思うのですが…表が誤っているのでしょうか?
- 265 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 13:59:15 ]
- logとかフーリェ級数にピンとこないってことはreal中学生かな?
www.geocities.jp/flawtips0/Pic/wav2.html#p14 ここを見ると周波数分布の山の高さがdbと合ってるから表は間違ってないと思う
- 266 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 15:02:14 ]
- まあ特に独学で始める場合は年齢関係なく中学生レベルに見える
質問しちゃったりするしね。どんな分野でも。 育て直しじゃないが、学習のプロセスをゼロから辿り直すわけで。 日本語が中高生レベルに見える点にはあえてつっこまない
- 267 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 17:22:03 ]
- www.shonan.ne.jp/~hiro-s/pages/post-tut/fm.html
homepage3.nifty.com/sawai/neiro/neiro.html flawtips.ami.amigasa.jp/blog/051230.html www.terawave.net/amane/contents/soundworks/ d4.princess.ne.jp/msx/datas/OPLL/YM2413AP.html
- 268 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 19:34:08 ]
- 質問する前に少しは考えるなり調べるなりしろよ・・・
検索すればすぐにわかるんだろそんなこと
- 269 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 19:36:59 ]
- >>264
重ね合わせる高周波の位相がずれてるとうまくいかないよ
- 270 名前:デフォルトの名無しさん [2009/10/06(火) 20:59:51 ]
- はいそうですか
- 271 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 23:41:37 ]
- アー確かに、そういう奴いそうだわ
- 272 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 07:29:49 ]
- >>264
まず試してみたソースを出せ、話はそれからだ
- 273 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 22:17:03 ]
- >>245
違うバッファに用意しとけばいんじゃない? メモリーのコピー作業はそんなに重くない とこだよね 書き方によるけど
- 274 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 14:47:39 ]
- まぁ、大抵はめんどくさいから6dBで2倍(-6dBで半分)にしちまうけどな
- 275 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 13:12:21 ]
- -6dbは半分じゃなくて1/2乗だろ。
半分は1/2倍。
- 276 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 21:11:57 ]
- 1/2乗は-3dB
- 277 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 23:25:32 ]
- えっ
- 278 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:42:20 ]
- 馬鹿がいるな
- 279 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 04:35:38 ]
- 逆立ちしたら草食性哺乳類一種鯨偶蹄目になっちまうな
- 280 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 07:08:02 ]
- ttp://av.watch.impress.co.jp/docs/news/20091117_329581.html
なんじゃこりゃ?
- 281 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 08:21:50 ]
- ものすごくリバーブが掛けられたゲーム音楽CDに発憤して
リバーブ成分を取り除いてみたことはあるな そこからサラウンドに繋げられたか・・・
- 282 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 12:58:22 ]
- >>276
ばーか、エネルギーは振れ幅の二乗だろ。アホ
- 283 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 13:47:16 ]
- >>282
いつからエネルギーの話になったんだろうか ああ脳内で世界が固定されちゃってるんですね
- 284 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 14:04:51 ]
- ○>>274
×>>275 ×>>276
- 285 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 14:10:04 ]
- ttp://ja.wikipedia.org/wiki/デシベル
20log10(b/a) = 10log10((b/a)^2)
- 286 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 14:25:19 ]
- 20*log10(2) = 6.02 dB
20*log10(1/2) = -6.02 dB
- 287 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 14:30:44 ]
- ほ
- 288 名前:デフォルトの名無しさん [2009/12/23(水) 05:08:00 ]
- Windowsで、ネットワークから受信した音声データを
スピーカーに再生するプログラムを書いてるんだけど 再生の方が速くて困ってる。 具体的には、 20ms間隔で20ms分の音声データをwaveOutWriteで書き込んでるんだけど、 waveOutProcのコールバックが0〜15ms間隔くらいで返ってくる。 waveOutAPIってこういうもんなの?
- 289 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 05:19:10 ]
- yes
- 290 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 13:45:32 ]
- バッファが十分たまれば間隔は落ちる
- 291 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 21:40:04 ]
- DirectSound使え
- 292 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 21:42:34 ]
- そこでWASAPIですよ
- 293 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 22:02:10 ]
- Visual Basic 2005以降 or C#2005以降ならそこそこ開発できるスキルは持っています。
C言語はなんとなくわかりますが,非常に苦手です。 C++はわかりません。 VBでPCMデータをアップサンプリングするプログラムを作った経験はあります。 こんな私にもわかるようなASIO SDKの使い方を解説したサイトまたは書籍などご存じありませんでしょうか?
- 294 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 00:00:32 ]
- 無理
- 295 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 15:41:28 ]
- デジタルフィルタがむずかしい。
- 296 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 10:01:36 ]
- 「***が苦手です」とか「###が苦手です」って言う人は何が難しくて自分にできないか考えたことはあるの?
それがASIO SDKとどう結びつくかを他人に説明する気はないの?
- 297 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 15:04:01 ]
- 山葵?
- 298 名前:デフォルトの名無しさん [2010/02/10(水) 10:44:38 ]
- Windowsでbeep音だけで音階を作るサンプルコードがあれば教えてよ
- 299 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 11:52:49 ]
- >>298
double cdef[] = {3.0, 5.0, 7.0, 8.0, 10.0, 12.0, 14.0, 15.0}; for (int i = 0; i < 8; ++i) { DWORD freq = (DWORD)(440.0 * pow(2.0, cdef[i]/12.0)); Beep(freq, 500); }
- 300 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 12:04:09 ]
- 先越されてしまった。
がんばって作った俺の努力の結晶が無駄に・・・ codepad.org/VxXlvVkM
- 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
|

|