5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

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

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

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

サウンドプログラミング3
http://pc11.2ch.net/test/read.cgi/tech/1145573675/

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

サウンドプログラミング
http://pc5.2ch.net/tech/kako/996/996171508.html

2 :デフォルトの名無しさん:2009/01/11(日) 13:43:52
用語を統一するために

リアルタイム
 バッチ処理の対語で、ゼロレイテンシの事ではない。 
 遅延はあっても途切れずに処理する事をいう

レイテンシ
 ADCからDACまでにかかる時間の事だったり
 DSPの掛け算なんかで命令から実際に答えが出るまでの命令サイクル数の事だったり

DSP
 デジタル・シグナル・プロセッサ の場合は信号処理用のMPUの事
 デジタル信号処理の事を言う場合もある

3 :デフォルトの名無しさん:2009/01/11(日) 19:27:14
あげ

4 :デフォルトの名無しさん:2009/01/11(日) 20:14:47
音でプログラミングなのかと思った

5 :デフォルトの名無しさん:2009/01/11(日) 21:47:35
ディレイってどうやって作ればいいですか?

6 :デフォルトの名無しさん:2009/01/11(日) 22:57:57
アフリカへ行き部族間対立を煽り負けた者たちを欧米へ拉致る

7 :デフォルトの名無しさん:2009/01/11(日) 23:20:40
>>5
バッファ領域と、バッファの先頭をさすポインタを用意して、ポインタをぐるぐるまわして、読み出しと書き込みをする。

8 :デフォルトの名無しさん:2009/01/11(日) 23:24:34
ディレイタイムとかミックス量とかそういうパラメタはどうするんですか

9 :デフォルトの名無しさん:2009/01/12(月) 05:24:40
出力を一定時間遅延させて(ディレイタイム)一定量掛けて(ミックス量)加算すれば終わりなんじゃないの

10 :デフォルトの名無しさん:2009/01/12(月) 16:34:52
ho

11 :デフォルトの名無しさん:2009/01/12(月) 17:04:58
>>9
入力信号列をx[n]としたとき、y[n]をどう計算すればいいでしょうか?

512サンプル等ずつで計算するんでしょうか?

12 :デフォルトの名無しさん:2009/01/12(月) 18:10:15
>>11
たとえば y[0...n] と、ポインタ p を用意するだろ?
バッファに詰めるのは、y[p] = x; p++; if(p>n)p=0; を動かし続けりゃいいだけ。
取り出すのは、pからディレイタイムに応じたぶんだけ前の部分。y[p-サンプル数]な。

13 :デフォルトの名無しさん:2009/01/12(月) 18:13:41
インパルス応答との畳み込みとかいう事は考えなくていいということですか?
その演算が畳み込みになってるんですかね?

14 :デフォルトの名無しさん:2009/01/12(月) 23:15:32
畳み込み演算を使ってディレイを実現するプログラムを書いてみなよ
そこから0との掛け算の部分を取りのぞいたら>9や>12と同じものが完成
ディレイは文字通りある時間後だけに応答するわけで、畳み込みする間でもない

15 :デフォルトの名無しさん:2009/01/13(火) 00:15:57
>>8
おれはバッファをポインタでぐるぐる循環させて、
循環バッファか(考え方ではFIFOバッファ)
でバッファの長さがディレイタイム
バッファに残すレベルがディレイの音の大きさ
で、2週目以降バッファに書き込むとき前のも
一定割合でミックスしたらフィードバックディレイ
ってやってた

16 :デフォルトの名無しさん:2009/01/13(火) 00:39:48
そういうDSPのソースコードあるとこないかな?

17 :デフォルトの名無しさん:2009/01/13(火) 01:08:16
>>16
そういう?
ディレイだったら俺のだったらあげるけど。
理論書いてあるとこはあるけどね
ライブラリはどこでもありそうだけどね
おれは使わないからしらねけど

18 :デフォルトの名無しさん:2009/01/13(火) 01:23:13
詳細にアルゴリズムを教わっても組めない人は、プログラミングに向かないと思う。

ま、組めない奴は
http://www.musicdsp.org/
でも行け。

19 :デフォルトの名無しさん:2009/01/13(火) 06:51:34
今度はアセンブラのソースが無いとか言い出しそうな勢いだな。

20 :デフォルトの名無しさん:2009/01/13(火) 10:10:58
>>17
amp = 0.5;
delaytimenum = snd.fsamp * 0.3;
rptime = 2;

for (int i = 0; i < snd.num; i++)
{
sndout.s[i] = snd.s[i];

for (int j = 1; j <= rptime; j++)
{
int n,m;
m = (int)((double)n - (double)j * delaytime);

if (m >= 0)
{
sndout.s[n] += pow(amp, (double)j) * snd.s[m];
}
}
}

こんな感じですかね?17さんのも参考にしたいので見せていただけるとありがたいです

>>18 参考にしてみます

21 :デフォルトの名無しさん:2009/01/13(火) 11:47:57
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ  まピョーん☆
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ


22 :デフォルトの名無しさん:2009/01/13(火) 13:15:17
ディレイって、単に音が遅れて聞こえるだけじゃなかったのか。

23 :デフォルトの名無しさん:2009/01/13(火) 15:32:41
アナログディレイみたいにハイ落ちを再現したりするとめんどうだけどね

24 :デフォルトの名無しさん:2009/01/13(火) 20:31:30
マイクインやステレオインからリアルタイムに波形を取得する関数ってあるんですか?

25 :デフォルトの名無しさん:2009/01/13(火) 20:53:58
>>22
そうだけど、それを現在のに加算すると
効果が得られる。
時差あるから周波数特性がギザギザになる。
>>20
delayタイム以外は直に書き込んであるけど…
一個サンプルを入れると一個返ってくる見たいな
感じで作った。
//delaysample=delaytime(ms)*サンプリング周波数/1000
int delay1(int in,int delaysample){
static int delaybuf[20000];
static int delaycousor=0;

if(delaycousor>=delaysample)delaycousor=-1;

delaybuf[++delaycousor]=in;

return(delaybuf[delaycousor]*0.75+delaybuf[((delaycousor+1>delaysample)?0:delaycousor+1)]*0.25);
//return(delaybuf[delaycousor]*0.75+delaybuf[delaycousor+1]*0.25);


}//func end

26 :デフォルトの名無しさん:2009/01/15(木) 20:35:27
うーむなんかこのスレ新しくなるたびに同じこと繰り返してるよな。
どっかに過去ログまとめたほうがいいかね。

27 :デフォルトの名無しさん:2009/01/15(木) 20:42:11
>>26
うん

28 :デフォルトの名無しさん:2009/01/16(金) 06:15:59
プログラムの勉強をするなら動画圧縮か音声圧縮がいいということでサウンドプログラミングを始めたんですが
全く音の知識は無いんですが、周波数を変更する場合の存在しない中間サンプリング点を打つ場合
直線上に打つのは酷いってのはわかるんですが、補間で曲線上に打っても同じぐらい酷いと思うんですが
これはどうやって打てばいいんですか?

29 :デフォルトの名無しさん:2009/01/16(金) 09:53:05
>直線上に打つのは酷いってのはわかるんですが
ひどくない
たとえばフーリエ変換して周波数成分を欲しい領域に移動して
逆フーリエ変換すれば得られる等

30 :デフォルトの名無しさん:2009/01/16(金) 10:44:04
過去スレでよくフーリエ変換って出てくるので知ってはいるんですが
あれって一定の範囲内ってのがいいかげんで、
しかも途切れが含まれなかったり単音じゃないと酷いと思うんですが
ほんとにこれが主流なんですか?数学と無理やり抱き合わせるんじゃなくて
音専用の予測アルゴリズムとかはないんでしょうか?

31 :デフォルトの名無しさん:2009/01/16(金) 12:20:24
>>28
中間点をとるっていうのは

__ ̄ ̄__ ̄ ̄



___― ̄ ̄ ̄―___― ̄ ̄ ̄

みたいになるっていう意味でしょうか?

32 :デフォルトの名無しさん:2009/01/16(金) 13:02:04
バイリニア補完とかバイキュービック補完とかガウス補完とかシンク補完とかの話?
リアルタイム性の必要な処理なら、足して2で割るのもよく使われるよ。

33 :デフォルトの名無しさん:2009/01/16(金) 14:50:50
>>31
そうです。
>>32
いやニュートンとかスプラインのことをいったんですが、どのみち音に特化してなければ同じですが。
足して2で割るって酷くないですか?間が飛びぬけて山谷になってるかもしれないのに
それって意外な事実ですよね。実際変換ソフトなら全部似たり寄ったりだと思って使ってました


34 :デフォルトの名無しさん:2009/01/16(金) 15:04:53
>>33
あなたがするべき事は実際に大量のデータで統計を取る事だな
音情報である以前にスピーカーを振動させるための電圧である事も考慮しつつ

35 :デフォルトの名無しさん:2009/01/16(金) 16:02:04
>>34
なんか英文を直訳したような文章だな

36 :デフォルトの名無しさん:2009/01/16(金) 19:29:17
>プログラムの勉強をするなら動画圧縮か音声圧縮がいいということで
これの根拠が分からない。ファイル圧縮ならまだ一般的な感じもするが。

37 :デフォルトの名無しさん:2009/01/16(金) 20:06:50
シャノンからやり直せ。

38 :デフォルトの名無しさん:2009/01/16(金) 21:05:19
>>33
サンプリング定理

39 :デフォルトの名無しさん:2009/01/16(金) 21:25:39
>>33
速度を気にしないなら、周波数領域に変換してから間を埋めろ。

40 :デフォルトの名無しさん:2009/01/16(金) 21:38:10
いっつも思うけど、周波数領域に
変換すると、時間分解能みたいのが
ゆるくなるから音質悪くなる希ガス

41 :デフォルトの名無しさん:2009/01/16(金) 21:57:16
>>40
DCT自体は可逆だぜ。
速度やらサイズやらのために細かい部分を捨てることが多いだけで。

42 :デフォルトの名無しさん:2009/01/16(金) 22:05:29
>>41
可逆なのは無限に加算したときだけじゃないの
普通は切り捨てるからそこで音質落ちるんだよ
程度問題だけど人間の耳で分からないレベルで
気にならなければOKでしょ

43 :デフォルトの名無しさん:2009/01/16(金) 22:10:14
音にDCTしてもなぁ…

44 :デフォルトの名無しさん:2009/01/16(金) 23:33:43
>>42
扱うのはデジタルデータなんだから無限に加算する必要なんざねーよ。

45 :デフォルトの名無しさん:2009/01/16(金) 23:39:15
てことは、かなり細かく分割して周波数領域に
変換するってこと?

46 :デフォルトの名無しさん:2009/01/17(土) 00:00:59
ウェーブレットでやれ。

47 :デフォルトの名無しさん:2009/01/17(土) 08:36:00
WDM Kernel StreamingをASIOでラッパーするドライバを作ってみた

AsioKs
http://fanzo.real-sound.net/iCubicProject/

48 :デフォルトの名無しさん:2009/01/19(月) 18:19:02


49 :デフォルトの名無しさん:2009/01/21(水) 10:51:49
DNAはやくリリースされないかな

50 :デフォルトの名無しさん:2009/01/24(土) 11:24:36
DirectNoteAccess?

51 :デフォルトの名無しさん:2009/01/24(土) 16:08:40
ディレイとエコーの違いが分からない orz
ディレイは少し前の入力値を、現入力値に加算
エコーは少し前の出力値を、現入力値に加算
という理解で合ってるのかな・・・

52 :デフォルトの名無しさん:2009/01/25(日) 15:10:53
エコー=リバーブ?

53 :デフォルトの名無しさん:2009/01/25(日) 16:15:46
エコーはこだまだろ
やほーーー、yahoo...

54 :デフォルトの名無しさん:2009/01/25(日) 19:40:15
ディレイもエコーも同じだよ

55 :デフォルトの名無しさん:2009/01/25(日) 23:34:17
俺も>>54と同じ意見。 ディレイ=エコー=やまびこ、で、リバーブが風呂場で音が響く感じ。

56 :デフォルトの名無しさん:2009/01/26(月) 09:08:59
俺の認識では、エコー=風呂場の響き だな。 

57 :55:2009/01/26(月) 11:14:09
>>56
じゃあ、リバーブはどう認識してるの?w

58 :55:2009/01/26(月) 11:18:52
エコー
* (ギリシア*kh*)ギリシア神話のニンフ。ヘラの怒りを買って他人のことばを繰り返すことしかできなくなる。ナルキッソスを恋したがその愛を告げられず、苦悩の果てに声だけ残り、こだまになったという。
* (英echo)
1 こだま。やまびこ。
2 残響。

国語大辞典では、↑だそうだよ。
>>56の風呂場でヤッホーと叫ぶと、2、3秒してからヤッホーが戻ってくるのか?w

59 :デフォルトの名無しさん:2009/01/26(月) 11:32:25
リバーブと風呂場は残響というか壁の反響音だよな

60 :55:2009/01/26(月) 11:54:09
だから、教会やコンクリートの部屋や洞窟の複雑な反射音を小さな機械で再現しようとしたのがリバーブなんだよ、ばか。

61 :デフォルトの名無しさん:2009/01/26(月) 12:08:53
ディレイは純粋に遅らせるだけ ドライとの合成は別問題
リバーブは残響
リバーブの実装方法の中にはディレイを用いるものもある

62 :55:2009/01/26(月) 12:09:42
だから、ディレイ=エコー=やまびこのプログラムは簡単だと思う。
パラメーターは、原音にたいし、何秒後に何回返すか、音質をどう変化させていくか、音量をどう変化させていくか、
ぐらいしかないと思う。
リバーブは、原音にたいし、0.01秒後ぐらいから反射が始まって、全体的にワオ〜ンという音を作らなければならないから難しいと思う。俺は全然わからないw

63 :55:2009/01/26(月) 12:24:27
仮にリバーブが出来たとしても、リバーブをかけた時に、聞く人が心地よくなければダメだからむずかしい。
リバーブの製品でも「これ風呂場リバーブじゃん」ってバカにされるからね。

64 :デフォルトの名無しさん:2009/01/26(月) 13:17:53
スプリングエコーって言うのあるじゃん。
あれは山びこじゃなくて、風呂系の響きだよな。

65 :デフォルトの名無しさん:2009/01/26(月) 18:57:13
風呂場で聞けばいいじゃないのもう

66 :デフォルトの名無しさん:2009/01/27(火) 01:24:59
おまいらちょっとはググったらいんでないか
エコーはフィードバックディレイだ
リバーブはディレイタイム(レベルも?)のばらばらな
無数のディレイを加算して再現したりしなかったり
いろんな方法があるみたい
>>64
スプリングリバーブは、昔アナログのころ
バネのある空間に音を飛ばして戻ってきた
音をリバーブとして(ry


67 :デフォルトの名無しさん:2009/01/27(火) 17:16:01
バネのある空間って何だ

68 :デフォルトの名無しさん:2009/01/27(火) 23:30:42
http://gomente.blog.so-net.ne.jp/2007-10-08

69 :デフォルトの名無しさん:2009/01/30(金) 11:49:27
等ラウドネス曲線を扱ったプログラミングがしたいのですが、
調べた限りグラフばかりで、グラフから読み取るのは精度的にも問題ありそうなので、
周波数毎のゲインの数値データが欲しかったりします。

1) Web等で数値データとして配布されていますか?
2) もしなければ下記の仕様書の購入を検討するのですが、
そもそも仕様書自体には数値データは含まれているのでしょうか?
ISO226:2003 http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=34222

70 :デフォルトの名無しさん:2009/01/30(金) 23:58:53
>>69
でかい本屋で立ち読みできるからいってみたら?


71 :デフォルトの名無しさん:2009/01/31(土) 21:20:01
>>71
なるほど、その手が。
ありがとうございます。早速行ってみます。

72 :デフォルトの名無しさん:2009/02/06(金) 15:52:38
あげ

73 :デフォルトの名無しさん:2009/02/06(金) 21:11:17
>>72
そんなさがってた?

74 :デフォルトの名無しさん:2009/02/08(日) 22:06:58
うん、もう海底まじかだったよ

75 :デフォルトの名無しさん:2009/02/08(日) 22:54:44
>>6
それはドゥレイだろ!

76 :デフォルトの名無しさん:2009/02/09(月) 21:47:30
>>75
超遅レス乙

77 :デフォルトの名無しさん:2009/02/13(金) 12:54:22
再生速度の変更ってどうやればいいですか?



2 3 4 5ってデータがあったら
2 2 3 3 4 4 5 5にしたらいいんですか?これで再生速度50%?

78 :デフォルトの名無しさん:2009/02/13(金) 17:46:22
>>77
やってみるといいよ

79 :デフォルトの名無しさん:2009/02/13(金) 21:19:47
>>77
こんなん

23456789   ←6〜9をフェードアウト
   23456789←2〜5をフェードイン

80 :デフォルトの名無しさん:2009/02/14(土) 01:21:02
波形はそのままでサンプリングレートを下げるだけ

81 :デフォルトの名無しさん:2009/02/14(土) 10:09:26
それだと音程も下がるよね

82 :デフォルトの名無しさん:2009/02/14(土) 13:11:10
補完すればいいんじゃね

83 :デフォルトの名無しさん:2009/02/17(火) 00:00:50
>>77
ttp://toragi.cqpub.co.jp/Portals/0/backnumber/2009/01/p202.pdf

84 :デフォルトの名無しさん:2009/02/17(火) 03:00:39
すみません質問ですが、Mpeg-4の規格のドキュメントってどこかにないでしょうか。
mp4の音と映像を分離したいと思っているのですが。

85 :デフォルトの名無しさん:2009/02/17(火) 07:44:34
ttp://www.apple.com/jp/quicktime/technologies/mpeg4/

86 :デフォルトの名無しさん:2009/02/17(火) 10:55:52
mp4のdemuxくらいなら俺だったらmp4boxのソースを参照しちゃうな
ライセンスはLGPLになるが

87 :デフォルトの名無しさん:2009/02/20(金) 23:08:07
>>83
おー、それ買ってみた
今度よもと

88 :デフォルトの名無しさん:2009/03/08(日) 12:03:38
ImageMagickの音版みたいなツール群ってありませんか?

89 :デフォルトの名無しさん:2009/03/08(日) 14:55:07
具体的に、何ができることを期待している?

90 :デフォルトの名無しさん:2009/03/08(日) 15:16:16
>>89
ノーマライズしたり無音部分を取り除いたり
簡単な帯域通過フィルタができたりするコマンドラインツールです

91 :デフォルトの名無しさん:2009/03/08(日) 16:45:41
>>90
つ sox

92 :デフォルトの名無しさん:2009/03/08(日) 18:43:41
>>91
まさにこんなやつです!
さんくす

93 :デフォルトの名無しさん:2009/03/08(日) 22:10:08
winXP, VC++2005 でサウンド入出力プログラムを作っています.
SDK,低レベルAPIを使っています.
入力,出力共にマルチバッファリングを行っているのですが,
入力と再生の間に,バッファ数に従う遅延が生じてしまいます.
体感では,(1バッファに録音する秒数 * 用意したバッファ数)秒
の遅延が生じていると思われます.

リアルタイムに近い動作を実現したいため,
1バッファに録音する秒数(RecSEC)を短くしています.
現在の設定では RecSEC = 0.005 [sec/buffer] です.
バッファ数が少ないと音声がブツブツと途切れてしまいますが,
バッファ数を増やす事で解決しました.

これで遅延量が少ない動作が実現できたと思っていたのですが,
RecSEC = 0.1 として実行してみたところ,約0.1[sec]の遅延を期待していたのですが
約(0.1*バッファ数)[sec] という大きな遅延となってしまいました.

ソースコードをアップしましたので,解決方法をご教授願います.
waveInStart の実行位置を変えてみる等色々とやってみましたが
よくわかりませんでした.

pass: sagehoge
ttp://www2.uploda.org/uporg2074476.txt.html

アルゴリズムによる遅延を解消したいです.
よろしくお願いします.

94 :デフォルトの名無しさん:2009/03/08(日) 22:57:41
>>93
遅延云々以前に入力と出力を同期させてないように見える

バッファ単位の入力完了イベントでたった今読み取ったバッファを
出力にまわす、という処理をしなくてはならないのに、
入力と出力を同時に走らせてタイミングは運にまかせてるから
録音よりも再生が先行してたまたまバッファまるまる1周分の遅れ
が生じているのでは

waveXXXは使ったことないので推測でしかないが

95 :デフォルトの名無しさん:2009/03/09(月) 10:37:27
InバッファとOutバッファを共有したいのは分かるが
別々に用意してコピーする方がいいかもしらん

96 :デフォルトの名無しさん:2009/03/09(月) 15:32:05
別に分けた所で割り込み間隔が短いと負荷時にあっさり逆転する。
まー、デバイスによるのかもしんないけど、
waveIn/waveOut系は互いに同期取ってるわけでも無いし保証も無かったと思うから
一番短い理論上可能な「1バッファ分のレイテンシ」すら難しいと思うよ。

97 : ◆0uxK91AxII :2009/03/09(月) 15:47:17
>>93
頭が悪すぎてハナシにならない。

98 :デフォルトの名無しさん:2009/03/09(月) 15:56:28
コテハンでいきなり罵倒か。NG対象にしてくれといわんばかりだな

99 :デフォルトの名無しさん:2009/03/09(月) 19:07:47
基地外参上ってアピールしてるんだろ

100 :93:2009/03/09(月) 22:03:47
>>94
私自信 wave*** を使い始めたばかりなので
(それが免罪符だとは考えていませんが)
よく分かりません.検討致します.

>>95
ありがとうございます.
それは何故でしょうか?

>>96
「1バッファ分」が理想的ですが,
用意したバッファ分のレイテンシとなる事が避けられたら満足です.

>>97
解決策が分かるのですね.
お暇な時にアドバイスをお願いします.



101 :デフォルトの名無しさん:2009/03/10(火) 09:12:54
WinXPで音楽のテンポを変更する処理を実装したいです。
音楽が入ったWAVファイルの音程を変えずにテンポを変えたいです。
普通はどのように実装するものでしょうか?
WAVEFORMATEX のサンプリングレートを変更するとテンポは変わりますが音程も変わってしまいます。


102 :デフォルトの名無しさん:2009/03/10(火) 09:29:10
タイムストレッチとかそのへんのキーワードでぐぐってみれば

103 :デフォルトの名無しさん:2009/03/10(火) 10:02:28
音程を変えずにテンポ変えるのって難しいよね

104 :デフォルトの名無しさん:2009/03/10(火) 10:19:24
単純に考えればテンポを下げるときは波形データを間引きし
テンポを上げるときは波形データを2倍した後間引きするとか
音質は保証の限りではないが

105 :デフォルトの名無しさん:2009/03/10(火) 10:19:28
http://floor13.sakura.ne.jp/book03/book03.html
http://nis-ei.eng.hokudai.ac.jp/~aoki/laboratory04.html

106 :デフォルトの名無しさん:2009/03/10(火) 11:07:13
スレ毎に同じ質問が繰り返されてる気がするw
テンプレ化か、FAQとサンプルソースのwikiとかあった方がいいのかねぇ

107 :デフォルトの名無しさん:2009/03/10(火) 13:11:15
テンプレが増えてきたら、wikiあると便利だろうね

108 :デフォルトの名無しさん:2009/03/10(火) 13:30:21
スレ毎どころかスレ内でも繰り返してるぞ
>>101>>77-83 と同じだろ

109 :デフォルトの名無しさん:2009/03/10(火) 13:36:56
だな。ろくに知りもしないのに見当違いの回答しちゃう人が混ざってる点も同じ

110 :デフォルトの名無しさん:2009/03/10(火) 16:13:23
じゃ正しいソースください

111 :デフォルトの名無しさん:2009/03/10(火) 21:11:14
>>101
タイムストレッチはここの説明が分かりやすいかもな。
実装したことないけどw作ったらUPよろw

音声再生速度変換 : もっとゆっくりしゃべって!
http://blogs.msdn.com/windows_multimedia_jp/archive/2009/03/04/9458418.aspx

112 :デフォルトの名無しさん:2009/03/10(火) 21:21:39
>>110
つ105

113 :デフォルトの名無しさん:2009/03/10(火) 23:43:39
>>105って
200Hzの音を2倍速にするとき
10msに一度30万ステップの自己相関するん?

リアルタイムだと厳しそうね

114 :デフォルトの名無しさん:2009/03/11(水) 21:04:04
???

115 :デフォルトの名無しさん:2009/03/11(水) 22:19:07
>>113
そうしないと元の音との互換性が低くなるだろ

116 :デフォルトの名無しさん:2009/03/12(木) 02:24:19
>>113
ディレイっぽく聞こえるのを低減させるために
オーバーラップさせる時間を周期性としてる

周期性を求めるのに自己相関使ってるのは
FFTに比べ低音を考慮したときの精度がいいからとか
実装が楽だからとかじゃね

117 :デフォルトの名無しさん:2009/03/16(月) 01:30:58
>>101
それって結構難しいのよ
論文読むのがいいかなぁ…

118 :デフォルトの名無しさん:2009/03/16(月) 07:28:37
ttp://nis-ei.eng.hokudai.ac.jp/~aoki/laboratory04.html
7.実験6:再生速度の制御
↑で十分じゃん

119 :デフォルトの名無しさん:2009/03/16(月) 18:55:07
聴いた感じでは十分とは言いがたい

120 :デフォルトの名無しさん:2009/03/16(月) 19:06:41
単音ならまだしも
音楽となるとMIDIのようなソースレベルでテンポを変えないと無理だろ

121 :デフォルトの名無しさん:2009/03/16(月) 19:11:06
そこをなんとかするのがサウンドプログラミング

122 :デフォルトの名無しさん:2009/03/16(月) 19:19:35
適当な区間ごとに離散フーリエ変換で周波数解析して
それを合成すればなんとかなるかもしらん

123 :デフォルトの名無しさん:2009/03/16(月) 22:40:16
>>122
それはむずかしい

un4seenってとこのライブラリ
たしかオープンソースの再生速度変更が
けっこう優秀。
WMPより優秀と思う

124 :デフォルトの名無しさん:2009/03/20(金) 13:20:45
サウンドプログラマーな先輩方にお聞きしたい。
WaveTone(ttp://www.vector.co.jp/soft/win95/art/se421780.html)
↑このソフトはどういった変換でスペクトル算出しているのか見当つきますでしょうか。

当方、FFTで似たようなプログラムを組んでみたのですが、低音域の周波数分解能があまりに悪く、
実用とはほど遠い結果になりましたので、先輩方のお知恵をお貸し頂きたいです。
何卒よろしくお願い申し上げます。

125 :デフォルトの名無しさん:2009/03/20(金) 14:42:06
FFTのポイント数を増やすのはダメ?
ゼロ詰めしたりフレーム長を増やしたりしてね.

126 :デフォルトの名無しさん:2009/03/21(土) 12:18:51
>>124
・FFT結果から山を見つけて頂点を補完
・各音階に属する周波数成分で平均化(画像縮小アルゴリズムの面積平均法みたいな感じ?)
サイトの画像見る限りでは低音の精度は粗いからFFT後になんか処理してると思われ

127 :デフォルトの名無しさん:2009/03/23(月) 00:42:11
ローパスフィルタで分けてから低音域だけ取り出すとか

28 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)