問題タブ [juce]

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 に答える
1247 参照

c++ - USB 経由で許容される MIDI 帯域幅はどれくらいですか?

C++ で Juce フレームワークを使用して、MIDI エフェクト (着信 MIDI を変更して新しいデータを生成し、それを転送する VST プラグイン) に取り組んでいます。私の MIDI ストリームを 16 ~ 24 ビットで 1 秒間に 41,000 回以上生成するすべてのサンプルを使用して、新しい MIDI メッセージを生成することが技術的に可能であることがわかりました。これは、MIDI ハードウェアで処理するのは完全に不可能に思えます。

MIDI over USB から新旧のハードウェア シンセまでの帯域幅を決定する際に、遵守しなければならないガイドラインやルールはありますか?

編集:私がやろうとしていることを追加する必要があります。より高い帯域幅が役立ちますが、Arturia Minibrute などのハードウェアで動作するはずです。モジュレーションとピッチ ホイールにエンベロープと LFO を適用するなど、斬新なことを試みています。

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

plugins - JUCE フレームワークを使用したオーディオ プラグインの命名

最近、JUCE フレームワークを使用していくつかのオーディオ プラグインの開発に取り組んでいます。プラグインの命名に関して問題があります。まったく異なるプラグイン用に個別のプロジェクトを作成しました。しかし、Logic Pro X を起動してプラグインをロードすると、作成した最新のプラグインしか取得できないように見えますが、プラグインは常に作成した最初のプラグインとしてタイトルが付けられます。つまり、新しいプラグインを作成すると、以前のプラグインの名前が付けられて置き換えられるようです。

プラグイン コードの名前を変更しようとしましたが、AU 検証ツールはプラグインが以前のプラグインのプラグイン コードを持つものとして認識します。

誰かがこの問題に遭遇したか、何が原因であるかについて何か提案がありますか?

さらに、JUCE を使用する前に WDL フレームワークを使用していましたが、同じ問題がありました。もちろん、これは問題がJUCEまたはWDLに固有のものではないと私に思わせます。

ご意見をお待ちしております。ありがとうございます。

0 投票する
0 に答える
281 参照

c++ - リアルタイム オーディオ アプリケーション

入力波形のリアルタイム レンダリングと入力オーディオ データの分析 (スペクトログラムなど) をプロットするオーディオ ビジュアライザー プラグインを設計しました。分析エンジンの設定は、ユーザーがインターフェイスのいくつかのノブを使用して変更できます。オーディオ スレッドから収集されたデータは、ロックフリーの循環バッファーを使用してイベント スレッドに転送されます (波形ビューと分析ビューを更新するため)。

私の質問は、インターフェースからパラメーター値を渡してオーディオ エンジンを再構成する場合、同期通知または非同期通知を送信する必要があるかどうかです。非同期のものを使用するのが一般的のようですが、理由がわかりません。誰かが私を説明できれば、それは非常に役に立ちます。

ありがとうございました。

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

c++ - 64 ビット アーキテクチャでの iOS JUCE ライブラリの問題

私は、32 ビット アーキテクチャの JUCE ライブラリを持つ非常に古いプロジェクトに取り組んでいます。数日前、私はそれを 32 ビットから 64 ビット アーキテクチャに変換しましたが、問題が発生しました。また、JUCE ライブラリには C++ コードが含まれており、エラーが発生する理由を理解するのは困難です。
エラーを下回っています。

pointer_sized_int可変で。

また、設定しようとしましlong pointer_sized_intたが、他のエラーが発生しました。

つまり、このライブラリは 64 ビット アーキテクチャと互換性がありません。(私が使用しています)

基本的に、プロジェクトのソースコードで「JUCE Amalgamation」ライブラリを使用しましたが、このライブラリを見つけてプロジェクトにも含めました(修正するために多くの方法を試しました)が、成功しませんでした。

誰もこの種の問題に直面したことがありますか? この問題を解決するにはどうすればよいか教えてください。

ありがとう。

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

c++ - JUCE Audio アプリで AudioDeviceManager を初期化する

MainContentComponent のコンストラクターで、AudioDeviceManager のインスタンスを初期化しようとしています。

MainContentComponent(): deviceManager (getSharedAudioDeviceManager())

どこ

私の宣言は次のようになります。

AudioDeviceManager& deviceManager; static ScopedPointer<AudioDeviceManager> sharedAudioDeviceManager;

コンパイル エラーはありませんが、ランタイム エラーが発生し、コンパイラから次のように通知されます。

Undefined symbols for architecture x86_64: "MainContentComponent::sharedAudioDeviceManager", referenced from: MainContentComponent::getSharedAudioDeviceManager() in MainComponent.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

完全に失われました。ヘルプ!

0 投票する
3 に答える
157 参照

c++ - C++: 16 進数の色 '0xff2a2620' をより読みやすい文字列 'lovelyBrown' に 'マッピング' する簡単な方法はありますか?

私は次のようなメソッドを持つJuce Frameworkを使用しています:setColour

g.setColour (Colour (0xff2a2620));

代わりに、次のような読みやすいものを書きたいと思います。

g.setColour (Colour (lovelyBrown));、「0xff2a2620lovelyBrown」への「マッピング」。

メソッドのプロトタイプは次のとおりです。

explicit Colour (uint32 argb) noexcept;どこにuint32ある:

/** A platform-independent 32-bit unsigned integer type. */ typedef unsigned int uint32;

Juce には、次のような読みやすい色の名前が既にあります。

const Colour Colours::tomato (0xffff6347);、指定された名前の色を見つけるメソッドを使用します。

static JUCE_API Colour findColourForName (const String& colourName, const Colour& defaultColour);

ただし、 Colors クラスを変更したりサブクラス化したりしたくありません。0xff2a2620「lovelyBrown」への「マッピング」のより簡単な方法があるかどうか疑問に思っていますか?

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

c++ - JUCE ViewPort の使い方

Obstacle というコンポーネントがあり、addAndMakeVisible および setBounds 関数を使用して mainContentComponent のコンポーネントとして使用しています。時間に関して、この Obstacle コンポーネントをウィンドウ全体でスクロールしたいと考えています。これを行うために、タイマーと setBounds 関数を使用しています。

setBounds を使用すると毎回ペイント関数が呼び出され、ペイント関数が呼び出されるたびにコンポーネントが作成されることがわかりました。viewPort クラスを使用し、setViewedComponent クラスを使用してコンポーネントをビューポート オブジェクトに渡したいと思います。API を使用しましたが、あまり役に立ちませんでした。ViewPort を使用して juce::component をウィンドウ全体にスクロールする方法の例を教えてもらえますか?

どうもありがとう。

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

c++ - Juce で AudioFormatReader を使用してインパルス応答をロードする

Juce を使用してコンボリューション リバーブ プラグインを作成していますが、インパルス応答オーディオ ファイルの読み込みに問題があります。

AudioFormatReader クラスを使用しています。これまでに実装したコードで、いくつかのエラーが発生しています。

これは 1 つのオーディオ ファイルを読み込もうとする試みにすぎません。

AudioFormatReader クラスのドキュメントへのリンクは次のとおりです。

AudioFormatReader