- 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
- 157 名前:デフォルトの名無しさん [2009/04/29(水) 04:49:22 ]
- >>149
一回の計算についてはFIRもFFTと同じくブロック処理以外の 何ものでもないのだが? どちらも対象の有限長のブロック以外は全然計算対象に入っ ていない。 FIRの代わりにFFTを使う時、FIRでの場合と同じように1サン プルづつずらしてFFTを行い、その結果を正しく評価すれば FIRでの場合と同じ結果が得られるんじゃない? ただ、それだと普通にFIRやるよりも計算量が増えるので、 それをひっくり返す手法としてオーバーラップ法があるの だと理解してるが?
- 158 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 14:31:42 ]
- >>157
てことは、オーバーラップは単に計算量対策で、 FIRとFFT+オーバーラップは本来は代替不可能ってことか。
- 159 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 22:26:47 ]
- >>157
一回の計算についてはプログラミング上 ブロック処理にしてもしなくても 出力はFIRならいっしょだからそれは考えないとして。 FIRとFFTの違いはサンプル数の違いがでかくないか? FFTはサンプル数でかくしないと周波数領域で操作できる 周波数ステップ荒くなるし FIRは少なくてもある程度できる。 サンプル数大きくするとそれだけFFTの計算に入れる時間が 大きくなるから時間分解能下がる FIRはリアルタイム処理だから時間分解能最大。 それでサンプル数が一緒での議論だと、 FFTは実際(データが何かにもよるけど)窓関数とかかけなきゃ だめだからそれだけデータ量そこでへっちゃうから、 最終処理後のデータの品質さがる だから目的に合わせて選べばいんでは
- 160 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 22:40:47 ]
- >>159
いまいち良くわからんのだが、、 >FFTはサンプル数でかくしないと ... FIRは少なくてもある程度できる。 同じステップ数として、FFTの時間領域で、FIRフィルタの 設計上のカーブを各点で取ったフィルタ処理は違うもの? 違うとすればどの辺りが? > サンプル数大きくすると ... 大きくなるから時間分解能下がる 時間分解能はサンプリング周波数で固定だと思うけど、、、 短時間FFTのオーバーラップ回数が少なくなるってこと? > FFTは ... それだけデータ量そこでへっちゃうから、 データ量は減らないと思う。
- 161 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 23:35:07 ]
- >>160
FFT/FIRの基本的な仕組みすら理解出来てねーだろお前。 159の説明は波形処理の基礎だぞ。 まずは自分で調べて考えろ、なんでも聞いて済まそうとすんな。
- 162 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 00:00:23 ]
- >>161
ただ罵倒するだけのレスは無価値ですよ、いつもの方。
- 163 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 01:51:36 ]
- >>160
あの、 ここでの説明だとあれだから本買ってきた方がいいよ。 最初の方は強いて言えば違わないけど、 それぞれの癖とか特徴とかできることできないことあるから 目的に応じたいい方をえらべよ 二つ目は >サンプル数大きくするとそれだけFFTの計算に入れる時間が >大きくなるから時間分解能下がる これはFFTの時間分解能だから。 160が言ってるのは多分サンプリング定理とかそこら辺の 波形のデジタル化の時の時間分解能の事をいってるんかな? FFTの原理とか時間領域-周波数領域のサイトとか本とかみればわかると思うけど みつめ 何バイトとかのデータ量はへらないけど、なんというか削ってるんだから論理的な データ量は減るよね? たとえばwav->mp3圧縮の時みたいな感じで たとえばデータを波形ととらえて周波数領域に変換して周波数高い一部分を少なくして 時間領域に戻してもバイトは変わらない。でも何か(なんらかの情報)は減っている。
- 164 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 02:02:29 ]
- >>163
うーん……難しくていいので正確に書いてもらえると嬉しいです。 理解してるとかしていないのかという問題よりも、163の説明の中の 一つ一つの用語が式とか定理のうち具体的に何を指しているのかが曖昧すぎて分からない。 > FFTの時間分解能 >>160の時間分解能は指摘の通りデジタル化の際の時間分解能です。 で、説明だとFFTという変換自体にに時間分解能ってパラメータなり特性が存在するんですよね? > データ量 窓かけの周波数特性でサイドローブが出る話ですよね。 歪みは出ると思いますが、それが情報が減っているということ?
- 165 名前:デフォルトの名無しさん [2009/04/30(木) 05:43:39 ]
- >>159
>FFTはサンプル数でかくしないと周波数領域で操作できる >周波数ステップ荒くなるし >FIRは少なくてもある程度できる。 そんなことない。 「NタップのFIR」は「サイズNのFFT+周波数領域での積和演算」 と等価でしょ?
- 166 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 21:11:03 ]
- >>165
「ある程度」だから実用性を考えての ことだよ 小さいタップ数で同じ事ができるんだったら 小さい方がいいだろ
- 167 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 21:35:01 ]
- >>164
一般的なFFTの話だが FFTはサンプル数を大きくすれば周波数分解能はあがるが、 それだけ時間領域でも… たとえば音楽だと22050hz、4096FFTだと一回のFFTで 4096サンプル=0.185秒分のデータが必要になる 音楽だと0.185秒だとテンポの速い音楽だと音符が2個分 含まれていることもあるかもしれない。(極端な話) 上のFFTだと5.38hzごとの周波数領域のデータだ。 このようにFFTではサンプル数を大きくすれば得られる周波数データの hzの間隔は少なくなり詳しく得られるが、それだけたくさんの時間を 計算に組み入れなければならないので、いらないデータも含まれるかも しれない。sin波だったらずっと同じだからいいけど、PCMなんかだと 刻一刻と周波数成分が変わっていってるので(音楽なので刻一刻と かわらないとおかしいが)一回の計算にいれる時間は少ない方が その時点の周波数は正確に表れる。 この文を読めばFFTの時間分解能、周波数分解能の意味は なんとなくわかるだろ
- 168 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 22:12:17 ]
- >>167
いやそれはとっくに分かってるんだが・・・ ピッチ検出ならゼロクロスなりケプストラムなり使うし。 で、そもそもの疑問である >>163 > 最初の方は強いて言えば違わないけど、 これをkwsk
- 169 名前:165 mailto:sage [2009/05/02(土) 05:33:05 ]
- >>166
>小さいタップ数で同じ事ができる 俺はそんなことは出来ないと理解してるのだが?
- 170 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 22:11:32 ]
- 便乗レスだけど、
>>168 NタップのFIRをFFTで実装しようとすると時系列データもN用意して Circular ConvをConvにするため最低Length=2N+1のDFTを行う必要がある。 (信号分析しないから窓掛けしないとする) DFT自体は丸め誤差とかを除いたら単なる座標変換だから周波数領域での掛け算も 時間領域の畳み込みも等価なんだけど、フレーム単位で処理する必要があるから 出力時には最低Nサンプルの遅れがある。 反面、FIRだと過去Nサンプルのバッファを用意して置けば新しいサンプルが入ったときに バッファからフィルタの出力をその時点で得られる。 同じ性能を発揮するのに必要なタップ数が変わることはありえないし、 時系列でFIRを処理するから周波数分解能が云々とか、それを座標変換した 領域で作業するから周波数分解能が云々ってないし、考慮する要件は数理的なものよりも 処理時間やFFT-IFFTするオーバーヘッドや誤差への許容に関すること。 更に言えば、Portaudioみたいに最初にデータをバッファにためてバッファがいっぱいになったら コールバックを呼ぶようなやつだったら、正直FIRを時間ドメインでやろうが周波数でやろうが 変わらない。 リアルタイム性を重視するフィルタだったらFIRを時系列で畳み込む方がいい場合もある。 特にタップ長が短い場合。
- 171 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 23:46:32 ]
- 質問いい?
VistaでWin32APIのmidiOut〜系でMIDIを出力しているんだが、 どうにも我慢ならないほどの遅延が発生する(200ms程度)。 出力先をデフォルトのMIDIマッパーの代わりに、Timidity++→ASIOにしても同程度の遅延が発生するので、 多分APIに問題があるんだと思う。 そこで、他のAPIに乗り換えようかと思ったんだが、 DirectMusicは消滅した上に64bitアプリで使えないようなので、 他の選択肢が欲しい。 なんかないかな?
- 172 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 23:53:35 ]
- MIDIならしょうがない
- 173 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 00:02:12 ]
- しょうがないのか。 適当な音源自前で実装するか……サンクス。
- 174 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 09:57:02 ]
- Timidity++側、ASIO側にバッファがあれば同様の遅延は発生するだろ
APIを疑う前になぜMIDIインタフェース+外部音源の組み合わせで試さないのか不思議だな
- 175 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 10:22:23 ]
- >>171
少なくともXPまでの環境でmidiOutで200msecも遅延するとか聞いたこと無い Vistaのドライバとかの問題だと思うが、ソフトMIDI音源とかで試してみた?
- 176 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 12:35:56 ]
- >>174
外部音源とか持ってねーよwwww Timidity++のGUIからmidiファイルを再生してみたけど、たぶん遅延してない。 >>175 全く違うハードウェア構成の2台のVistaで同様の遅延が発生してる。 で、さっきXPマシンで試験したけど遅延しない。 何ヶ所かの英語フォーラムで、Vistaだと遅延が発生するという報告があるのよ。
- 177 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 13:33:55 ]
- いや、MIDIファイルの再生じゃ遅延してるかどうかなんて分からんだろう・・・
なんにせよmidiOUtの問題じゃないと思うんだが VISTA環境があれば試すんだがなぁ
- 178 名前:177 mailto:sage [2009/05/21(木) 13:36:32 ]
- >>173には同意してるかんね
- 179 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 13:59:15 ]
- ソースが公開されてるDAWやシーケンサがMIDIをどう発音しているか確かめたら?
あとTimidity++自体に遅延があるからASIOを使ってもMSGSより遅いぞ
- 180 名前:デフォルトの名無しさん [2009/05/31(日) 17:26:05 ]
- ogg vorbisのエンコードについて詳しく書かれたサイトありますか?
公式見ても初期化部分しか書かれてなくて何をすればいいのかすらわからん
- 181 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 21:03:25 ]
- >>180
oggのlibならexamplesディレクトリに encoder_example.c があると思うけど、それじゃだめなん?
- 182 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 13:24:01 ]
- ogg vorbisのエンコード上手くいかない・・・
- 183 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 14:21:40 ]
- 自作のフィルターを組んでメモリ上に全てのデータを置いてランダムアクセスで
メモリ上を飛び回って処理をしているのですが、音源の時間に比べて20倍の処理速度が掛かります。 DSPとやらを使えばもっと高速にできるらしいのですが、どうやって使えばいいのでしょうか? Google先生に効いてもネット上に資料はあまりなく、困っています。 VC++9.0SP1を使ってプログラミングをしています。誰かVC++からのDSPの使い方を教えてください。
- 184 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 16:19:54 ]
- とりあえずどんなフィルタか書かんと
DSPは単純な演算を高速に(あるいは並列に)こなすものだから 処理の種類によっちゃ効果がない
- 185 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 02:42:57 ]
- >>183
どんなマシン使って20倍なのかわからないけど、 最近のPCでそのスコアならアルゴリズムから見直さないとどのみち無理な気が。 一言にDSPっていってもピンキリだし、PCから使うならどこかの評価ボードみたいなの買うしかないんじゃないかな? 本気でDSPに手出すなら開発キット&コンパイラで数十万、仕事じゃないなら個人に販売してくれるかってのも微妙な所。 たぶん想像してるよりもはるかに敷居高いと思う。 波形処理の高速化なら一番お手軽なSIMDに手出してみれば? モノによっては5〜10倍くらい期待出来る。
- 186 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 13:12:40 ]
- G.722とG.722.1 Cの、GPL/LGPLでないソースを探していますが、どこにありますか?
- 187 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 18:29:55 ]
- 誰かにそのソースを渡す
アルゴリズムと定数だけそいつから聞き出して自分で実装する
- 188 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 20:49:19 ]
- そして定数の中にGPLの文字がひっそりと含まれていて自爆するわけですね
- 189 名前:デフォルトの名無しさん [2009/06/09(火) 21:05:53 ]
- ogg vorbis以外で意匠フリーでブロードキャスト向けの音声圧縮ってありますか?
- 190 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:30:33 ]
- 189!=186と仮定して、G.722
- 191 名前:186 mailto:sage [2009/06/11(木) 12:55:56 ]
- 結局Speex使うことにしました
- 192 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 18:55:46 ]
- スペアナ作りたいですが、窓掛けしてFFTして絶対値取れば完成ですか?
- 193 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 19:03:43 ]
- いや、表示せんと。
- 194 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 21:17:35 ]
- テキストで吐けば十分
リアルタイムじゃないなら
- 195 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 21:04:34 ]
- すいません。
WindowsXPでサウンドデバイスを2つ以上インストールしているマシンがあるとします。 再生デバイスと録音デバイスにそれぞれ別の物を設定しているとして、 録音デバイスから入力した音声をそのままダイレクトに再生デバイスから出力させることは できますか?
- 196 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 23:57:27 ]
- OS上の機能では無理だったと思うよ。
プログラム作っていいなら AudioIn → プログラム → AudioOut は簡単に実装できる。 まぁ、レイテンシは発生してしまうけど。 Virtual Audio Cable とか既存のツール使ったらプログラム組まなくても簡単にいけるかな。
- 197 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 15:13:37 ]
- DirectXスレからきました。
DirectSound で再生しながら、 横軸に周波数、縦軸に音量を表すようなグラフを リアルタイムで描きたいです。 とりあえずWAVを再生するところはできてるんですけど、 そのようなグラフを描くにはどうすればいいですか? 一応↓のコードを手に入れたのですが、どういうふうに使えば... ? ttp://www5.airnet.ne.jp/tomy/cpro/sslib8.htm
- 198 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 17:40:48 ]
- やる気がなければ帰れ。
- 199 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 18:21:18 ]
- >>197
テストアプリ書いてデバッガなりコマンドプロンプトなりに変換結果出してみるとかやってみた? サイン波形なりを食わしてみればすぐ理解できる
- 200 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 23:50:01 ]
- >>197のプログラムをコンパイルするとkが初期化されてない警告が出るんですけど、
これは0 で初期化して問題ないですか? あと、iter は何の値なんでしょうか??
- 201 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 00:53:28 ]
- んー、一通り目通せばすぐ気付くだろうに、ホントにやる気ないのな
fft2(), fft2x()のjのforループでkは使われてない→たぶんコピペって k += nmax を消し忘れ iterはループ回数の演算省略用じゃね? 0渡せば勝手に計算するようになってるだろ
- 202 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 23:56:30 ]
- RolandのVariPhraseってあるじゃん
あれってなにがすごいの?
- 203 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 21:12:01 ]
- >>202
当時のチップの速度でリアルタイムにピッチやらフォルマントやらを操作して、それをもとに音作りできるところ。
- 204 名前:デフォルトの名無しさん [2009/07/09(木) 23:57:30 ]
- ケプストラムについて教えてください。
n個の時間領域のデータxn(t)をFFTし、 Xk(f)のパワースペクトルを得たとします。(k=n/2) パワースペクトルの自然対数を取り、IFFTすると思うのですが、IFFTするには 実部と虚部の情報が必要ですよね?パワースペクトルの対数をとったら、虚部が わからなくなってしまいますよね。 そのところでわからなくて困っています。わかる方教えてください。
- 205 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:15:43 ]
- >>204
IFFTは別に虚部がなくてもいいです. それとスペクトルのkはnのままでいいと思います. スペクトルは偶関数になってるので,IFFTすれば実数成分(ケプストラム)が求まると思います.
- 206 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 03:03:10 ]
- MMEやDirectSound対応のスペアナソフトやレベルメーターのソフトみたいな音を入力して解析してリアルタイムで表示する系統のソフトって、
半日以上とか1日とか数日とか、長時間起動してると、必ず反応がかなり遅れるようになるけど、それはなぜ? 複数のソフト、いろいろな環境で再現性があるのでOSの問題なんだろうかと思うんですが。 たとえばwavespetcraとかDeskTopLevelMeterとか、他にも山ほどあります。
- 207 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 11:25:17 ]
- システム時計とサンプラ側の時計(たとえば44.1kHz)がビミョーにずれてくのかもね
- 208 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 15:56:49 ]
- ソレ系のソフト以外でも、何でも遅くなってないか?
多分、ただのページングだよ。
- 209 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 16:48:43 ]
- WinVista/VC++expでサウンドプログラミングをしているのですが、
リアルタイム(1バッファ遅延)に入力→加工→出力を行うAPIを探しています。 調べたところWDM?ではカーネルミキサを通す分遅延がありすぎて話にならない ディフォルト出力ならKernel Streamingが良いと聞きました。 Win32APIのwaveXXXX関数は、関数の内容的にハードウェアに直接アクセスしてるように思えるのですが 実際のところ、Winのカーネルミキサを経由していたりするのでしょうか?
- 210 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 23:22:46 ]
- 「ハードウェアに直接アクセス」なんて危険なAPIは基本的に存在しない
waveIn()/waveOut()で遅延がネックになるレベルならPCでの処理は難しいと思うが、 WinAPIよりはリアルタイム処理に向いてると言われるASIO使ってみれば?
- 211 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 23:54:39 ]
- CoreAudioAPI
- 212 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 00:49:41 ]
- DirectX
- 213 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 10:04:27 ]
- >>211
DirectXはミキサ通すはず。 >>212 VistaはCoreAudioっていうんだな。Macかとオモタ
- 214 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 00:03:48 ]
- 音程を変えずに速度を変える処理って、100msとかの短い間隔のかたまりで処理するタイプが定番なんですかね。
ゆっくりさせると、響いている様になってしまい良くないです。 NHKテレビで、波形の山を増やすとか言ってたが、 波形の山一個単位(一周期単位)でコピーして増やしたり減らしたりするアルゴリズムを僕は考えていたのですが、実現されていないのでしょうか。
- 215 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 00:09:28 ]
- >>214
ちょうどいい間隔でスキマがうまるならそれでいいだろうよ。 どうせギャップができて似たような音になると思うけど。
- 216 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 00:25:22 ]
- >>214
ピッチ検出の話になるが、ゼロクロス検出の精度が実際微妙ってことを 考えると、似たような理由で何かの障害があるんだと思うよ
- 217 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 10:22:13 ]
- 含まれる周波数の最小公倍数な周期、いわゆるf0周期が短く明確なら良好な結果になるが
が、実際の音声は周波数はおろか振幅エネルギーも 時間変動する よってf0の定義自体がまず困難 少しでもずれがあればパルスノイズが発生(矩形窓の場合) 蛇足だか、なんだかんだで窓関数は有効だよ。 目的に応じて最適な窓関数とオーバーラップ数の設計をすればいいし
- 218 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 19:03:38 ]
- >>214
nhkでそんな話してくれるの?KWSK
- 219 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 01:06:24 ]
- 反応速度を優先するならグラニュラー(ディレイを使ったものも一緒)
音質を優先するなら、周波数領域に変換してからリリース部なんかを中心に引き伸ばせ。
- 220 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:02:58 ]
- ここの人たちって、お仕事はなにを?
- 221 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 04:29:17 ]
- 無職
- 222 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 05:37:43 ]
- マ板でやれ
- 223 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 10:13:29 ]
- 自宅警備員
- 224 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 18:53:17 ]
- 音関係に詳しいから仕事もそれ関連かと
- 225 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 19:06:27 ]
- だからなにやってんのって話だ
- 226 名前:214 mailto:sage [2009/08/24(月) 00:24:34 ]
- なるほど、なかなか難しい訳ですね。 ありがとうございました。
>>218 昔の高校情報Aでやってました。
- 227 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 00:29:44 ]
- 最近の高校生は信号処理とかもするのか
- 228 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 01:41:47 ]
- うろ覚えだけど昔工房でフーリエ変換習ってた奴もここに居たしな。
- 229 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 02:07:02 ]
- 高専なら普通に教えてそうだね
- 230 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 06:21:32 ]
- 証明はともかく使いかただけなら工房でも分かる罠
- 231 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 06:22:50 ]
- は?何?それがどうした?
- 232 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 06:32:01 ]
- なんか変なレスきた
- 233 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 15:14:29 ]
- FM合成、もしくはFM変調などについて学べる書籍またはサイトは無いでしょうか?
簡単な波形合成を行うプログラムを作っているのですが、中々FMについて理解が進みませんorz
- 234 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 16:38:49 ]
- 「FM音源」と組み合わせて検索かければ解説からサンプルコード、FM音源ドライバのソースまでなんでも見つかんね?
- 235 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 16:57:04 ]
- wikipediaで調べるといい。
- 236 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 19:18:03 ]
- サウンドプログラミングに限らず、離散信号処理で辞典的役割をしてくれるもしくはできるだけ広範囲をカバーした本があったら教えてください
- 237 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 21:43:38 ]
- www.google.co.jp/search?hl=ja&q=%E3%83%87%E3%82%A3%E3%82%B8%E3%82%BF%E3%83%AB%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86+%E6%9B%B8%E7%B1%8D
- 238 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 14:46:03 ]
- ttp://www.seventhstring.com/
ここのTranscribe!ってソフトのタイムストレッチ/ピッチシフトがめちゃ精度良いように思うんだけど、 どうやって実現してるか先輩方わかります?
- 239 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 19:13:26 ]
- そんな糞ソフトよりAutoTuneとかのほうが糞精度いい
- 240 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 19:17:06 ]
- ポジティブな形容にも「糞」って付けるものなの?
- 241 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 19:21:31 ]
- ワンピースみろよ。
- 242 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 19:50:04 ]
- 着てる
- 243 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 19:54:57 ]
- ワンピース着るような清楚な女は一度も見たことないわ(清楚でなくてもだけど(ワンピース着てる奴に限ってビッチ多いらしいけど(童貞だから知らないけど)))
- 244 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 19:57:43 ]
- lisp厨がきたぞー
- 245 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 20:42:23 ]
- WaveOut系APIで、waveOutWriteで送った後のデータ書き換えたらマズいのかな
(waveOutPrepareHeaderで指定したWAVEHDR構造体のlpDataの参照先のデータのことね) やってみたら一応動作はしたんだけど、これが出来るならWaveOut系APIの遅延も短く出来るよな
- 246 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 22:22:23 ]
- 俺もそれやった事あるんだけど、結局資料が見つからずに有耶無耶になってサウンドプログラミングやめた。
- 247 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 23:00:21 ]
- >>245
woWriteの後はデータ管理としてはOS側だろ? バグ作り込むようなもんだからできるできない以前にやらない 仕様として保証されていない動作に依存するようになるとデバッグが泥沼だよ
- 248 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 11:49:05 ]
- Replaygainを自作プログラムに実装すべく考えているのですが
良く分かりません。教えていただけないでしょうか。 実際、色々調べてみてある程度はわかったのですが、 「Peak Amplitude」があまりよくわからなかったのと、 音量設定の単位がdbになっているので、設定の仕方が難しい、 合わせにくいというところでつまずき、そのままになっていました。 現在わかったことは、ピーク時の振幅(Peak Amplitude)、 トラックごとに音量を設定する値(Radio Replay Gain Adjustment)、 アルバム単位で設定する値(Audiophile Replay Gain Adjustment) の3項目でタグが構成されていて、これらの値を使って音量をdb単位で調整する、 ということです。 タグの読取りはそれぞれの形式(tta,ape,mp3)で異なるが、 提供されているライブラリを使えば読取りは比較的簡単に出来る。 というところまでは行きついたのですが、 実際に読み取った値からどう処理するかが難しく、 実装するのが難しい状況です。 今考えているのが、勝手にdbの単位を独自の値に置き換えて(0dbが125とか)、 音量を調整すればいいのかも?と思っているのですが、 それにしても、ピーク時の振幅(Peak Amplitude)がよくわからないので、 どう使って良いか悩み、ここでつまずいています。 ご存じの方、教えていただけないでしょうか。
- 249 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 21:42:49 ]
- >>248
全てはdBとリニアの変換くらいは自在にできるようにしてからだ。 Peak Apmplitudeは意味そのまんま最大振幅と思うんだが。最大はmaximumだとか言うなよ?
- 250 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 03:12:01 ]
- dBーリニア変換
dB = 20log(A/B) log:常用対数 (パワーの場合は10log(A/B)) 例) Aが1、Bが10の時AはBに対して20dB落ち(-20dB) 上記のような比を表す他に、dBV, dBu, dBmなど、具体的な単位 (例えば1Vなどの電圧)に対する比を計算し、実際の値を表すこともある 例) 0dBm = 1 mW
- 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
|

|