問題タブ [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.
c++ - VSTi エンベロープの実装
大学の課題で、単純な VSTi 加算シンセを作成する必要があります。ほとんどの作業は完了しましたが、ADSR エンベロープで何もできません。
時間変数、および/またはエンベロープのステージを決定するロジックが原因で、期待どおりに機能していないと思います (そして確実ではありません)。
エンベロープの時間変数が processReplaceing() ループ内でインクリメントされると、コードは準拠しますが、ホストがクラッシュします。
各 adsr 乗算内で時間をインクリメントすると、コンパイルしてホストで実行されますが、必要に応じて機能しません。
processReplaceing() ループで時間をインクリメントするのは当然のことだと思っていたでしょうが、どうやらそうではないようです。
エンベロープが機能しない原因を誰かが見て、正しい方向に私を向けることができれば、私は非常に感謝しています.
どのコードを添付すればよいか本当にわからないので、すべて完了しました。
ありがとう、
VST_Plug_in.h
VST_Plug_in.cpp
ADSR.h
ADSR.cpp
timer.h
タイマー.cpp
c++ - 間違った結果を与える単純なC++数学
VSTiプラグインを書いていますが、出力エンベロープの一部を計算する係数が必要です。
基本的に私は数式に対して間違った答えを受け取っています、私はそれをいくつかのステップに単純化しました、そしてそれはまだ間違っています。同じ式は電卓でも機能しますが、コードに変換しても機能しません。私はデバッガーを使用して変数の内容をチェックしてきましたが、0.25 / 88200の結果は、0.00000283446712ではなく2.8344671201814060e-006であることがわかりました。コードの前半で同様の計算が期待どおりに機能します。
関連するすべての変数はdouble型であり、変数ではなく数値(上記のように)として入力したこともありますが、それでも間違った答えが返されます。
なぜこれが起こっているのかについて誰かが光を当て、試すべきことや解決策についていくつかのアイデアを提供できますか?
必要に応じて、コンテキスト内でコードを追加できます。乾杯
ベン
c++ - WinAPIウィンドウメッセージがプラグインによって盗まれたように見える-修正方法は?
まず、いくつかのリンク(自分で試してみたい人向け): ProteusVXVSTプラグインをホストのOpenMPTにロードしています。プラグインは問題なく動作しますが、一部のウィンドウメッセージを盗むように見えるため、ホストによって作成されたメニューをクリックしたり、閉じるボタンをクリックしたりしても効果はありません。[閉じる]ボタンをクリックしても「ボタンダウン」アニメーションはトリガーされないため、Windowsはウィンドウアクションに関するメッセージを受信しない可能性があります。Renoiseのような他のVSTホストにはこの問題がないことを知っています(ウィンドウの閉じるボタンをクリックすると問題なく動作します)。したがって、これを回避する方法が必要です。
Proteus VXは、おそらくMFC自身のウィンドウプロシージャを呼び出すのを忘れている(そしておそらくDefWindowProcも呼び出さない)不適合のウィンドウプロシージャをインストールしていると思いますが、それを見つける方法はもちろん、修正する方法もわかりません。プラグインウィンドウを開く前に元のGWL_WNDPROCを保存し、エディターが表示された直後にこのprocを復元しようとしましたが、それは役に立ちません。
編集:プラグインは間違いなく危険なことをしなければなりません。ウィンドウで何かを実行できるようにする前に、元のWindowProcを使用して保存します。
プラグインがウィンドウ初期化ビジネスを実行した後、それを復元します。
これにより、プラグインGUIを少しいじるまで、自分のメニューとウィンドウの[x]ボタンを使用できます。プラグインは、入力フォーカスを受け取るとすぐにウィンドウプロシージャを再度上書きすると思います。
audio - VSTSDK2.4 ソースのフィルター例
正確にvstsdk2.4のdspフィルターを実装する方法の既存の例はどこにありますか? これがどのように機能するかを簡単に理解できるように、vstsdk (.h および .cpp ファイル) に含まれるソース例のようなものを意味します。ウェブで非常に長い間検索し、フィルター設計について多くのことを見つけましたが、これは私にとって役に立ちません(現時点では私の知識です)。すべての例は大歓迎です...
ありがとう!
c++ - C++ コンパイラは、Steinberg VST SDK ファイルで絶対パスのないファイルを見つけることができません
Steinberg VST SDK に含まれている、既に作成されている単純なプログラムをコンパイルしようとしています。
私が抱えている問題は、絶対パスがない限りコンパイラがファイルを見つけられないことです。何らかの理由で、コンパイラがファイルが必要とする場所を見つけることができないような方法でコードが記述されています。
例えば:
C:\Users\180945\Documents\Programs\vstsdk352_25_09_2012_build_16\VST3 SDK\public.sdk\source\vst\ にある vstcomponentbase.h ファイル
次の行があります。
ipluginbase.h は C:\Users\180945\Documents\Programs\vstsdk352_25_09_2012_build_16\VST3 SDK\plugininterfaces\base にあります。
行を変更しない限り
うまくいきません。
IDE として NetBeans を使用しています。ファイルがあるはずの場所をファイルが自動的に見つけられるようにしたいと思います。私は Steinberg の VST SDK を使用しているので、動作するはずです。これには、デモンストレーションや、指定どおりに動作するはずのその他のコードが含まれています。すでに機能しているはずのもので、編集するものが多すぎます。
user-interface - VST GUI での後方フォーマット値
解決すべき新しい問題。
私の setParameter() では、値を「実際の値」まで設定するために使用します。私はvalue * (max - min) + min
eg:value of 1.0 == 20000Hzまたはでそれらをフォーマットしていますvalue of 0.0 == -30dB
VSTGUI が 0 ~ 1 の値のみを受け入れるように見えるという問題があります。setParameter() 内のすべてのコードを書き直すよりも良い解決策はありますか?
sprintf() のようなものでしょうか?
編集: CAnimKnob クラスを使用しています。
macos - Mac のタッチパッドを MIDI コントローラーにするにはどうすればよいですか?
Mac トラックパッドから MIDI に信号を送信できるカスタム スクリプト/プログラムを作成したいと考えています。私はどこから始めればいいのかさえ知りませんが、私はac#プログラマなので、私にとっては簡単ではありません:-(
誰かが私を正しい方向に向けることができますか?
ありがとう、ピート
objective-c - OS XバイナリからObjective-Cシンボルを取り除く方法は?
OK、Obj-Cがまったく機能するために必要なため、 OS XバイナリからObjective-Cシンボルを実際に削除できない方法について他の投稿があることは知っていますが、私の場合は少し異なります。
バンドルである単一のバイナリがあります。VSTプラグインまたはAudioUnitプラグインとして使用することを目的としています。バイナリには両方のフォーマットのすべてのエントリポイントが含まれており、一度コンパイルしてから、VSTバージョンの場合は「.vst」、AUバージョンの場合は 「 .component 」で1つのコピーに名前を付けるという考え方です。(これはJUCEフレームワークを使用しています。)
UI問題は、AU側の場合、Cocoaビューを作成するためにObj-Cクラスをエクスポートする必要があることです。VST側では、このクラスは使用されません。しかし、同じプラグインのAUバージョンとVSTバージョンの両方を同時にロードできるAbleton Liveのようなホストがある場合、典型的なObj-C名前空間の衝突の問題が発生します。
VST側では、その特定のObj-Cクラスが使用されることはありません。したがって、私がやりたいのは、「strip」を使用して、結果のバイナリからこれらのObj-Cクラスを削除することです。これでも、両方の形式ですべてを1回コンパイルするだけの利点が維持されます。
とにかく、"strip -R stripfile.txt <path to binary>"stripfile.txtに削除したいシンボルが含まれている、を使用してみましたが、バイナリにシンボルが見つからないと常に失敗します。ストリップファイルの名前を操作しようとしましたが、それは役に立ちません(または間違っています)。
「nm-m」によって出力される、削除したい関連するシンボルは次のとおりです。
何か案は?
ところで、私はその後、問題のクラスを(一意の名前を使用して)動的に登録することができました。これも問題を解決します。ただし、ストリップを機能させることができれば、フィールドにすでに存在するバイナリのソリューションを展開できる可能性があります。
language-agnostic - VST開発を始める最も簡単な方法
VSTプラグインをコーディングする最も簡単な方法は何ですか?
私はIT教育の2年生であり、デジタル信号処理コースの割り当てプロジェクトとしてVSTを作成する必要があるかもしれません。これは、おそらく実際のDSPアルゴリズムを実装する必要があることを意味します。したがって、間違っていない場合は、すべてのグラフィカルモジュラーVSTメーカーソフトウェアを無効にします。
現在、C ++(CodeBlocks + MinGW)、Java(Eclipse)、Python、Octaveを手にしています。Visual Studio、Matlab、またはタスク用の無料の言語/環境を入手することもできます。関数型言語であるファウストも見つけました。新しい言語を学ぶのが好きなので、このプロジェクトでそれを学ぶことができます。
c# - FMOD Ex で VST プラグインを実装するにはどうすればよいですか?
タイトルがすべてを物語っています。FMOD Ex を使用して VST プラグインを実装しようとしています。私が見つけた唯一のガイドは FMOD Studio に関するもので、実際のコーディングの実装に関するものではありませんでした。私は FMOD の C++ ドキュメントを持っているので、翻訳してサウンドを再生したり、ストック DSP エフェクトを適用したりすることもできますが、VST プラグインのドキュメントは非常にわかりにくいように思えました (何かが欠けている可能性があります)。
リソースが利用できる場合、私は優れた研究者であるため、誰かが私を正しい方向に向けることができたとしても、それは役に立ちます.
ありがとう!!
〜ジェイク