サウンドプログラム

関数ポインタ追記

関数ポインタのうまい使い方を書き忘れてた。 同じ書式で重い処理と軽い処理を同居させられます。

参考書におけるボーカル抽出

音関連の参考書を見ていると 「ボーカル抽出」 という項目をたまにみかけるわけですが、 何というか、 単純な中央の音の抽出・削減 の内容が載っているだけということがほとんどなんですが。 確かに、大抵の場合ボーカルは中央に配置されるので (Vocal) = (…

今更だけど (DirectSoundの後継に関して)

まだあんまり詳しく調べたわけではないんだけど、 何、vista以降からDirectSound非推奨になるんですか!? DirectSound使ってた身としては非常に困る次第。 確かに、vistaからサウンド周り一新されるような話はあったので、 少し危惧はしていたんだけど。 で…

一応、現状報告

とりあえず、バッファリング周りは一段落。 挙動自体はSDL_mixerと似てる…というかほとんど一緒…か?(汗) ただ、大きく違う点は 初期化時のモード切替でS.E.を別デバイスに回して再生させることが出来る点。 これのおかげで、バッファ長よりS.E.の遅延を抑え…

SDL調査メモ

ちょっと、再度*1SDLを少し覗いてみてわかったこと。 ・SDL_AudioSpecの「sample」はもろにバッファのサンプル数。 サンプリングレートの方はfreqで指定するので注意。 ・バッファ数は「2」で固定。(NUM_BUFFERSだっけ?) ・SDL_Audioの方はバッファリング等…

メモ (結局重いのって何? 再生時編)

ある意味今日の本題。 再生時とかに妙に負荷が掛かるっぽいので、少し検証してみた。

掘り出し物

つい最近、なんとなく調べ物をしていたらこんなものを発見した。 .MDXデータフォーマット …!これって、一年前くらい前に探しても見つからなかったMDX*1のフォーマットじゃないですか!? 何で今更になってしかもあっさり見つかるかな。 ……何にしても、実装…

waveOutReset() と ノイズ(再)

前回分の具体的な使用例。

waveOutReset() と ノイズ

waveOutResetでのノイズ 適当に検索していたら発見。 一応、解法を書いておこうかと。 記事に書いてある通り、 停止したキューに残っているデータが鳴るというだけなので、 ここのデータを修正してやればOK。 具体的には ・waveOutReset()で停止 ・(停止して…

精密なテンポでの再生を考える (長文)

今回の内容はテンポ云々だけじゃなくて 離散的なデータの精度を上げるのにも使えるかも。 …というより、そっちの応用みたいなもんですが。

「バッファリング」を考える

今回の「バッファリング」というのは、 波形をバッファに書き込んで、 再生用キューに波形をぶちこむまでのこと。 ちょっとFMが重過ぎる(涙)ので バッファリング方式(?)を変えてみようかと。

ちょっとアレなネタかも

GBATEK 何となく上記のGBAの仕様書というかメモリマップというかを 読んでいたわけですが、 4000088h - SOUNDBIAS - Sound PWM Control (R/W, see below) This register controls the final sound output. The default setting is 0200h, it is normally not…

結局コレが残るのか…

マルチスレッド化及び、マルチプラットフォーム化はほぼ完成。 一応、 // デバッグ用に「0」にして読み飛ばす #if 0//defined(WIN32) || defined(_WIN32) // ←ここに「Windows専用コード」が入る。 #else // ←ここに「機種依存しない(と思われる)コード」が…

鳴るのはいいんだけど??

とりあえず、変な音になるのは修正。 …出来たんだけど、 何か曲によって変なプツノイズ・汚い連続音が入る。 調べてみたら、 どうも1フレーム*1毎に変なゴミが入ることがあるみたい。 …ゴミが入るなら入るで安定して欲しいんだけどなぁ…(汗) …さらに困ったこ…

やっぱり微妙だぞ!「Mix_FinishedChannel()」

忘れないうちにこの前の続きを。

使えるぞ!「Mix_ChannelFinished()」!

この前書こうとしていた代物をば。

検証結果

検証結果…というか、 別の方法*1でやったら問題なく鳴ってくれたので、 やっぱりタイマの機嫌のせいでした…ということで。 *1:単にタイマを使わずにスレッド内でループさせてやる方法。「Sleep()」を使って時間調整を行う。…んですが、どういう訳かこのSleep…

タイマの機嫌

何やら多重再生が失敗することがあるので何でかなと思って調べてみているんですが、 どうもタイマが機嫌を悪くして動いてくれないことがあるっぽい。 …まぁ、検証をまだしていないので結論はまた今度。

公開してみる

というわけで(?)自作音源の最新版をUPしてみたり。 →ZIPファイル あっちの日記にも書いてある通り、開発用のDLL付きなんですけども、 如何せん、マニュアルらしいマニュアルをまだ書いていません…(汗) いやま、一応(適当な)サンプルを付けておきましたので、…