読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

VstHostアプリの作成(50) シーケンス部分実装(13)

しばらく放置していたが、なんとなくヤル気が出てきたので進めていこうと思う。 放置する前に何をやっていたのか過去ログをチェックすると、JUCEの描画部分をDirect2D化しようなどという無謀なことにチャレンジしようとしていたみたい。 JUCEのフォーラムを…

Juce::AudioIODeviceのWASAPI実装(16)

とりあえず音が鳴り、マイクが使えるようになったけれど、まだまだToDoが、、、。 ・16bit以上のサンプルビット対応(24bit,32bit) ・96Khzサンプル周波数の対応(現状だとなぜか死ぬ) ・ボリュームコントロールAPIの利用 ・Device Topology APIいじり な…

Juce::AudioIODeviceのWASAPI実装(15)

ようやくキャプチャ側も音が出るようになった。 ようやくTALのボコーダが試せるようになった! レイテンシが少ないので快適だ。

Juce::AudioIODeviceのWASAPI実装(14)

ようやく、雑音がでなくなった。原因はEventオブジェクト作成時の引数のミス。だがまだ問題はある。 なぜかレイテンシが3msのとき以外は音がひずんでしまう。おそらくBugだろうけど。

Juce::AudioIODeviceのWASAPI実装(13)

相変わらず雑音を振りまいている。 Twitterに少しハマってしまってるのもあるが、1日があっという間に過ぎてしまう。 あーせっかくの長期休暇も6日間が過ぎてしまった。

Juce::AudioIODeviceのWASAPI実装(12)

ようやく死なずに動くようになったが、音はノイズまみれ。 MIDIキーボードの音階に応じて、ピッチは変化しているようだ。

Juce::AudioIODeviceのWASAPI実装(11)

ぼちぼちと実装を見直しつつ行っている。 IAudioClientにはIsFormatSupported メソッドがある。 HRESULT IsFormatSupported( [in] AUDCLNT_SHAREMODE ShareMode, [in] const WAVEFORMATEX *pFormat, [out] WAVEFORMATEX **ppClosestMatch ); 1つ目のパラメ…

Juce::AudioIODeviceのWASAPI実装(10)

JUCEにはAudioIODeviceという基本クラスがあり、DirectSoundやASIOはこれを継承し、具象クラスとして実装されている。 以前にも書いたが、JUCEの作者はすでにWASPIの共有モードでのAudioIODevice具象クラスWASAPIIODeviceを作成している。掲示板で見る限り良…

Juce::AudioIODeviceのWASAPI実装(9)

ぼちぼちと実装を進めている。 もう少しで音が出せそうだ。 まあ、僕のペースはご承知のとおり、気分や状況によって変わるのでいつになるかわからないが、。 WASAPIというかWindows Core Audioは後発だけあってよくできていると思う。そういう意味でVistaは…

Juce::AudioIODeviceのWASAPI実装(8)

レイテンシ指定できるようにAudioDeviceSettingsPanelを改造することにした。残念ながら、この部分についてはカスタマイズ方法はライブラリ側では用意されていないので、juceライブラリのソースコードをコピーして変更した。

Juce::AudioIODeviceのWASAPI実装(7)

実装はあちこち回り道して遅々として進まない。 ようやくバッファサイズの列挙ができたところだ。 JUCEのデフォルトで持っているオーディオデバイスのセレクタクラス(AudioDeviceSelector) の場合レイテンシはバッファサイズ指定がデフォルトで、WASAPIの場…

Juce::AudioIODeviceのWASAPI実装(6)

ようやくデバイスの一覧が表示可能に。 でもまだハリボテ状態。

Juce::AudioIODeviceのWASAPI実装(5)

とりあえず、ドライバ設定画面に表示されるようにした。 本格的な実装はこれから。 ・DSOUNDではドライバの列挙はコールバック関数で行っていたけれども、WASAPIでは以下のようにドライバを列挙する。 1.IMMDeviceEnumeratorをCoCreateInstanceする 2.IMMDev…

Juce::AudioIODeviceのWASAPI実装(4)

WASAPIデバイスのテストをするために(まだぜんぜん完成していないが)PluginHostサンプルのコードをマージした。

Juce::AudioIODeviceのWASAPI実装(3)

ASIOやDirectSoundのデバイスコードを参考に実装をぼちぼちと進めている。 http://sourceforge.jp/projects/winaudiojuce/svn/view/WinAudioJuce/?root=winaudiojuce

Juce::AudioIODeviceのWASAPI実装(2)

とりあえずWSAPIサンプルの主要部分をまとめて、コンパイルが通るレベルにまで持ってきた。 後は実装あるのみだが、なかなか肩や首のこりがひどくて長時間PCを触る気になれない。 http://sourceforge.jp/projects/winaudiojuce/svn/view/WinAudioJuce/?roo…

Juce::AudioIODeviceのWASAPI実装(1)

再度UI画面を構築。 最初はWinaudioサンプルのJUCE版とする予定だったが、いきなりJUCEのAudioIODeviceクラスをWSAPIで実装してみることにした。

WASAPI サンプル(7) - JUCEに移植してみる

気を取り直して、再びUIから作業に取り掛かる。 同じ過ちを起こす前に、Sourceforge.jpにプロジェクトをつくり、ソースコードをインポート、チェックアウトしておいた。 http://sourceforge.jp/projects/winaudiojuce/svn/view/WinAudioJuce/?root=winaudi…

WASAPI サンプル(6) - JUCEに移植してみる

JucerでUIを編集し、ソースコードを保存したら日本語文字列の部分で切れてしまい、すべてが失われた。 日本語対応していなかったのか。。。

WASAPI サンプル(5) - JUCEに移植してみる

WinAudioサンプルのソースコードのうち、UI処理の部分を除いて、自分のプロジェクトにマージした。 ここでいつもはまるのは、JUCEはUNICODE、ANSI文字どちらでもコンパイルできるマクロがTになっているため、STLやBoost、Windows APIのコードのTが置換され、…

WASAPI サンプル(4) - JUCEに移植してみる

とりあえず、画面を作成してみた。 まだハリボテ状態だ。

WASAPI サンプル(3) - JUCEに移植してみる

WASAPIを理解するため、SDKサンプルをJUCEに移植してみることにする。 単なるコピペで終わってしまいそうだが。

WASAPI サンプル(2)

ドライバを入れ替えたが状況は変わらない。 いろいろ調べたら、サウンドデバイスの排他モードにチェックが入っていなかった。 チェックを入れてMMCSSをCriticalにしてキャプチャしてみたら、レイテンシ2msまで下げることができた。すごい。 1msだとアプリが…

WASAPI サンプル(1)

Windows SDKにCore Audioを使ったサンプルがあったので実行してみた。 私のPCの環境は、キャプチャデバイスはオンボードのRealtek HD Audio,再生はE-mu0404とすこし特殊な構成だ。 E-mu0404でもキャプチャはできるのだが、マイクプリアンプを持ってないので…