サウンドプログラミング5at TECH
サウンドプログラミング5 - 暇つぶし2ch262:デフォルトの名無しさん
09/10/06 07:07:58
-25dBの正弦波を、-30dBの正弦波にしたいって事だよね?
>>250 の逆の変換になるので、この場合、10^(-5/20)を掛ければよいはずです。

263:デフォルトの名無しさん
09/10/06 09:42:46
dB = 20log(A/B) log:常用対数
(パワーの場合は10log(A/B))

-25dBから-30dBに音量が下がったら振幅値にいくつかければいいんだ…

-25dBの正弦波を、-30dBの正弦波にしたいって事だよね?
>>250 の逆の変換になるので、この場合、10^(-5/20)を掛ければよいはずです。



264:デフォルトの名無しさん
09/10/06 10:40:13
>>262-263
ありがとうございます!まさにコレが知りたかったんです…
教えていただいたことを参考にして
URLリンク(geocities.yahoo.co.jp)
を試してみたのですが、同じ波形を得ることが出来ませんorz
計算は間違えてないと思うのですが…表が誤っているのでしょうか?

265:デフォルトの名無しさん
09/10/06 13:59:15
logとかフーリェ級数にピンとこないってことはreal中学生かな?
URLリンク(www.geocities.jp)
ここを見ると周波数分布の山の高さがdbと合ってるから表は間違ってないと思う


266:デフォルトの名無しさん
09/10/06 15:02:14
まあ特に独学で始める場合は年齢関係なく中学生レベルに見える
質問しちゃったりするしね。どんな分野でも。
育て直しじゃないが、学習のプロセスをゼロから辿り直すわけで。

日本語が中高生レベルに見える点にはあえてつっこまない

267:デフォルトの名無しさん
09/10/06 17:22:03
URLリンク(www.shonan.ne.jp)
URLリンク(homepage3.nifty.com)
URLリンク(flawtips.ami.amigasa.jp)
URLリンク(www.terawave.net)
URLリンク(d4.princess.ne.jp)

268:デフォルトの名無しさん
09/10/06 19:34:08
質問する前に少しは考えるなり調べるなりしろよ・・・
検索すればすぐにわかるんだろそんなこと


269:デフォルトの名無しさん
09/10/06 19:36:59
>>264
重ね合わせる高周波の位相がずれてるとうまくいかないよ

270:デフォルトの名無しさん
09/10/06 20:59:51
はいそうですか

271:デフォルトの名無しさん
09/10/06 23:41:37
アー確かに、そういう奴いそうだわ

272:デフォルトの名無しさん
09/10/07 07:29:49
>>264
まず試してみたソースを出せ、話はそれからだ

273:デフォルトの名無しさん
09/10/08 22:17:03
>>245
違うバッファに用意しとけばいんじゃない?
メモリーのコピー作業はそんなに重くない
とこだよね
書き方によるけど

274:デフォルトの名無しさん
09/11/02 14:47:39
まぁ、大抵はめんどくさいから6dBで2倍(-6dBで半分)にしちまうけどな

275:デフォルトの名無しさん
09/11/17 13:12:21
-6dbは半分じゃなくて1/2乗だろ。
半分は1/2倍。

276:デフォルトの名無しさん
09/11/17 21:11:57
1/2乗は-3dB

277:デフォルトの名無しさん
09/11/17 23:25:32
えっ

278:デフォルトの名無しさん
09/11/18 01:42:20
馬鹿がいるな

279:デフォルトの名無しさん
09/11/18 04:35:38
逆立ちしたら草食性哺乳類一種鯨偶蹄目になっちまうな

280:デフォルトの名無しさん
09/11/18 07:08:02
URLリンク(av.watch.impress.co.jp)
なんじゃこりゃ?

281:デフォルトの名無しさん
09/11/18 08:21:50
ものすごくリバーブが掛けられたゲーム音楽CDに発憤して
リバーブ成分を取り除いてみたことはあるな
そこからサラウンドに繋げられたか・・・

282:デフォルトの名無しさん
09/11/24 12:58:22
>>276
ばーか、エネルギーは振れ幅の二乗だろ。アホ

283:デフォルトの名無しさん
09/11/24 13:47:16
>>282
いつからエネルギーの話になったんだろうか
ああ脳内で世界が固定されちゃってるんですね

284:デフォルトの名無しさん
09/11/24 14:04:51
>>274
×>>275
×>>276

285:デフォルトの名無しさん
09/11/24 14:10:04
URLリンク(ja.wikipedia.org)デシベル
20log10(b/a) = 10log10((b/a)^2)

286:デフォルトの名無しさん
09/11/24 14:25:19
20*log10(2) = 6.02 dB
20*log10(1/2) = -6.02 dB

287:デフォルトの名無しさん
09/12/12 14:30:44


288:デフォルトの名無しさん
09/12/23 05:08:00
Windowsで、ネットワークから受信した音声データを
スピーカーに再生するプログラムを書いてるんだけど
再生の方が速くて困ってる。

具体的には、
20ms間隔で20ms分の音声データをwaveOutWriteで書き込んでるんだけど、
waveOutProcのコールバックが0~15ms間隔くらいで返ってくる。

waveOutAPIってこういうもんなの?

289:デフォルトの名無しさん
09/12/23 05:19:10
yes

290:デフォルトの名無しさん
09/12/23 13:45:32
バッファが十分たまれば間隔は落ちる

291:デフォルトの名無しさん
09/12/24 21:40:04
DirectSound使え

292:デフォルトの名無しさん
09/12/24 21:42:34
そこでWASAPIですよ

293:デフォルトの名無しさん
10/01/07 22:02:10
Visual Basic 2005以降 or C#2005以降ならそこそこ開発できるスキルは持っています。
C言語はなんとなくわかりますが,非常に苦手です。
C++はわかりません。
VBでPCMデータをアップサンプリングするプログラムを作った経験はあります。

こんな私にもわかるようなASIO SDKの使い方を解説したサイトまたは書籍などご存じありませんでしょうか?


294:デフォルトの名無しさん
10/01/09 00:00:32
無理

295:デフォルトの名無しさん
10/01/09 15:41:28
デジタルフィルタがむずかしい。

296:デフォルトの名無しさん
10/01/10 10:01:36
「***が苦手です」とか「###が苦手です」って言う人は何が難しくて自分にできないか考えたことはあるの?
それがASIO SDKとどう結びつくかを他人に説明する気はないの?

297:デフォルトの名無しさん
10/01/10 15:04:01
山葵?

298:デフォルトの名無しさん
10/02/10 10:44:38
Windowsでbeep音だけで音階を作るサンプルコードがあれば教えてよ

299:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/02/10 12:04:09
先越されてしまった。
がんばって作った俺の努力の結晶が無駄に・・・
URLリンク(codepad.org)

301:デフォルトの名無しさん
10/02/10 12:13:17
MMLまで作ったのかw

302:デフォルトの名無しさん
10/02/10 17:28:35
4分割多重MML再現したくなったw

303:デフォルトの名無しさん
10/02/12 21:39:59
>>300
努力した内に入らないよw

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

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

306:デフォルトの名無しさん
10/02/13 22:03:09
何BASIC?

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

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


309:デフォルトの名無しさん
10/03/01 05:09:56
URLリンク(laputa.cs.shinshu-u.ac.jp)
アニメで見ると分かりやすいね

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

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

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


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

314:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/06/03 11:52:39
先に個数で割ればいいだろう

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

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

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

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

317:デフォルトの名無しさん
10/06/03 13:35:55
普通は64bitとか128bitで計算して最後に戻すのよ。

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

319:デフォルトの名無しさん
10/06/04 00:22:21
>>316
> その後Cを合成するのが決定した時、

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

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

320:デフォルトの名無しさん
10/06/04 17:33:01
ごめんねぼくはdouble厨なので

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

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

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

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

324:デフォルトの名無しさん
10/06/08 18:08:07
いまどき整数とか面倒
不動明王を使うだろ普通

325:デフォルトの名無しさん
10/06/09 09:59:47
恐れ入谷の鬼子母神

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

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

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

参考:
WAVEFORMATEX構造体
WAVE_FORMAT_IEEE_FLOAT


327:デフォルトの名無しさん
10/06/11 21:35:42
float
-> WAVEFORMATEX
24ビット
-> WAVEFORMATEXTENSIBLE



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch