問題タブ [vst]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
205 参照

c++ - XCode 4.6 の VST - プラグインをロードすると、直接高い出力が得られる

XCode 4.6 で Steinberg VST プラグインをプログラミングしています。

正しく機能するハイパスフィルターを既に実装しています。現在、二次関数を使用して非線形歪みを実行しようとしています。以下の数行を実装し、プラグインをホストにロードすると、プラグインからすぐに出力が得られます。何も聞こえませんが、メーターは高くなっています。

その理由がまったく想像できません。計算が行われる processReplaceing 関数は、プラグインのロード時ではなく、サウンドの再生時にのみ呼び出す必要があります。以下の数行のコードを削除すると、すべて問題なく、正しく聞こえるので、残りのプラグイン コードとは何の関係もないと思います。

問題は 2 つのホストで発生するため、おそらく VST のバグではありません。誰かが同様の問題を経験したことがありますか?

どうもありがとう、ファビアン

編集:各関数にログファイル出力を追加しましたが、再生がオンになったときだけでなく、processReplaceing関数が永続的に呼び出されることが発生しました...しかし、なぜですか?

0 投票する
1 に答える
734 参照

c++ - VSTGUI: editor::open と editor::close の規則

VSTGUI を使用して新しい vst-plugin を作成している間、私はライブラリの使用方法に本当に苦労しており、ほとんどの進歩は後で推測してデバッグすることから得られます (実際には 100 万行と ygrabit 以外にドキュメントがないため、明らかです)。

これまでのところうまくいっていますが、プロジェクトへの私の最後の貢献にはスレッドが含まれていたため、設計が少し問題になりました。具体的には、コンテナ内の一連のテキストラベルに取り組んでおり(非アトミック操作を行っています)、ユーザーがウィンドウを閉じると、知らないうちにこれらが破壊される可能性があります(明らかに破壊されます)。要素を変更する直前にチェックを追加しても、まだ問題になる可能性があります。したがって、これらのオブジェクトの有効期間を実際に制御する必要があります (これは問題ありません)。ただし、CViewContainer に表示されている場合を除き、自動的に所有権が想定されます。

エディターのバックボーンの書き方がわからないので、これには VSTGUIBuilder というプログラムを使用し、必要なものを追加 (および基本的に書き直しました) しました。ただし、操作できるすべての「ビュー」には親またはシステム ウィンドウが必要なため、ウィンドウがポップアップするたびに呼び出される AEffEditor::Open() 関数に到達する前にビュー/コントロールをインスタンス化することはできません。そして、ウィンドウが閉じられるたびに AEffEditor::close() メソッドが呼び出されます。今、vstguibuilder は

AEffEditor::close() メソッド内で、開いたり閉じたりするたびにすべてのリソースを再構築して分配することを提案します。これは本当に真実でしょうか?もしそうなら、コンテナのコンテンツ(詳細はベクトル< CTextLabel *>)が機能の途中で削除されないように保護する方法はありませんか?後で処分しても問題ありません。変更中のセグメンテーション違反が心配です。

ミューテックスなどを使用するのは本当に最後の手段です (呼び出しがホストからのものである場合)。コードに障害が発生して解放されない場合は、ホストをハングさせたくありません。

編集:私は、それほどエレガントではないが安全に動作するソリューションを見つけました。ワーカー関数のコードは次のとおりです。

bLock は、この関数が出力するメッセージ キューを保護する別の「ミューテックス」です。bDeleteLock は、行コンテナーをコピーしてそれらを「記憶」するプロセスを保護し、後ですぐに解放します。どちらも volatile bool として宣言されていますが、それで十分ではないでしょうか? これが close() メソッドです。

0 投票する
1 に答える
1210 参照

c++ - フォーカスを親ウィンドウに設定してから子ウィンドウに戻す

VSTGUI 4.0 を使用して VST を実装しようとしています。私の DAW は WM_KEYDOWN および WM_KEYUP メッセージを使用して、キーボードの押下に基づいて MIDI ノートを送信し、キーボードで VST を再生できるようにします。問題は、WM_LBUTTONDOWN メッセージを受信したときに VSTGUI がこれを行うことです。

これにより、DAW からフォーカスが奪われ、キーの押下を処理できなくなります。VSTGUI は、コントロールを微調整するために WM_MOUSEWHEEL および WM_KEYUP/WM_KEYDOWN イベントを処理するために、ウィンドウ フォーカスを必要とします。しかし、VST でコントロールを微調整しているときは、キーボードでノートを演奏してどのように聞こえるかを確認したいので、両方の機能が重要です。

この問題を解決する唯一の方法は、親ウィンドウに SetFocus() を送信し、SendMessage() を使用して WM_KEYUP/WM_KEYDOWN メッセージを送信し、次に SetFocus() を VST ウィンドウに戻すことでした。

これは完全に機能しますが、VST をクリックしてキーを同時に押すと、未定義のことが発生します (DAW のフリーズ、DAW のクラッシュ、スタック オーバーフローなど)。

したがって、明らかに私はこれに対して間違ったアプローチを取っています。VST などにフォーカスを戻す前に、PostMessage() を実行してコールバックを待つ必要があるように感じます。それはちょっとめちゃくちゃに聞こえますが、このような問題に対処する正しい方法は何ですか?

メッセージを渡す DAW ウィンドウのコードにアクセスできないので、カスタム メッセージなどを実装することはできません。

0 投票する
1 に答える
392 参照

ios - iOS VST オーディオ プラグインのサポート

Objective C の開発者として、VST プラグインを iOS で実行するためのライブラリまたはスマートな「簡単な」方法はありますか?

(提案があればタグ付けを改善してください。)

0 投票する
1 に答える
1108 参照

c++ - VST インストゥルメントで 96 から 44.1 kHz のオーディオを高速 (リアルタイム) にダウンサンプリングする

VSTi (c++) で高速なダウンサンプリング関数を作成しようとしていますが、機能させるのに苦労しています。これが私が持っているものであり、私がやろうとしていることです。まずはローパスフィルターです。

上記のローパス フィルターを使用した後、96000/44100=2,1769 のステップでバッファーを再生します。pp->cOffset[o] 2, 4, 6, 8, 10, 13, 15, 17, 19, 21, 23, 26, 28, 30 .. . 96kHZ バッファから。フィルターが高周波で成功したことはわかりますが、バッファーからシリーズを読み取る方法により、より深い金属音があります。

次に、それに対処するために次を追加しようとしました(笑わないでください):

これにより、金属音の一部が消えましたが、すべてではありませんでした.私は迷っており、それを行う方法がわかりません. 昨日より頭の毛が減った!

outputs はホストへの出力バッファーで、ホストは 44.1kHz のサンプルレートに設定されていますが、私のウェーブ サンプルは 96kHz です。

先に進む方法を見つけさせてください。

0 投票する
1 に答える
245 参照

c++ - VST2.x GUI はどのように機能しますか?

現在、VST プラグインの作成方法はわかっていますが、その GUI 部分についてはまだ理解していません。

Steinbergs のサンプルをいじってみましたが、サンプルではデフォルトのスライダーがいくつか使用されていることがわかりますが、独自のデザインを作成するときにこれらを使用して、グラフィックを適用する必要がありますか? それとも、完全に自分で作成する必要がありますか? 後で GUI コードが PC と MAC の両方で機能するようにするには、GUI アプローチについてどのように考えるべきですか?

後部座席を探していますが、これらの質問についてはどこにも見つかりません。リードを与えるか、光に導いてください。髪を元に戻すことができます。