JuceでVSTプラグインを作るメモ

ライセンス

Personal

5万米ドルの収益制限未満の収益を持つ開発者またはスタートアップ企業向け、無料

Indie

50万米ドル未満の収益制限を持つ中小企業向け、40ドル) /月

Pro

収益制限なし、月額$ 130

Educational

収益制限なし、正規の教育機関は無料

GPLv3 

無料。アプリケーションのソースコードを利用できるようにする必要があります。 

 

JUCEフレームワークコードを使用すると、RMSは次の種類の情報を収集して使用する場合があります。 JUCE 5の場合: コンピュータをインターネットに接続するために使用されるインターネットプロトコル(IP)アドレス。 ログイン名、ライセンスタイプ、サブスクリプションステータスなど、JUCEアカウントに関連付けられたデータ。と 無料の「JUCEPersonal」または「JUCEEducational」ライセンスでJUCEコードを使用している場合、JUCEの提供および改善に関連する社内業務のためにのみ、JUCEで構築されたアプリケーションのエンドユーザーから匿名データを追加で収集する場合があります。

 

ファイルブラウザー

クラスにprivate FileBrowserListener,を追加

 class MainSamplerView  : public Component,
                         private DataModel::Listener,
                         private FileBrowserListener,
                         private ListBoxModel,
                         private ChangeListener
{
public:

コントローラの登録と設定

         addAndMakeVisible(fileTreeComp);
        directoryList.setDirectory(File::getSpecialLocation(File::userHomeDirectory), true, true);
        fileTreeComp.setColour(juce::FileTreeComponent::backgroundColourId, juce::Colours::whitesmoke.withAlpha(0.1f));
        fileTreeComp.addListener(this);
        fileTreeComp.addMouseListener(this, true);

        thread.startThread(3);


オーバーライド

    void selectionChanged() override
    {
     
    }
    void fileClicked(const File&, const MouseEvent&) override
    {
        loadFile(fileTreeComp.getSelectedFile());
    }
    void fileDoubleClicked(const File&) override {}
    void browserRootChanged(const File&) override {}

宣言

    WildcardFileFilter WildcardFilter{ "*.wav;*.aiff;*mp3;*.aif", "*", "Audio File Filter" };
    juce::TimeSliceThread thread{ "Audio file  Scanner Thread" };
    juce::DirectoryContentsList directoryList{ &WildcardFilter, thread };
    juce::FileTreeComponent fileTreeComp{ directoryList };

Midiキーボード

親のクラス

publicに追加

MidiKeyboardState keyboardState;


Processに追加

keyboardState.processNextMidiBuffer(midiMessages, 0, buffer.getNumSamples(), true);

 

追加

void prepareToPlay (double sampleRate, int) override
    {
        synthesiser.setCurrentPlaybackSampleRate (sampleRate);
        keyboardState.reset();
    }

    void releaseResources() override {
        keyboardState.reset();
    }


呼び出し

mainSamplerView( keyboardState)


エディットクラス

MainSamplerView (MidiKeyboardState& state
    )
        : midiKeyboard(state, MidiKeyboardComponent::horizontalKeyboard)
          ,keyboardState(state)
    {

コントローラー登録

addAndMakeVisible(midiKeyboard);


ノート送信

keyboardState.noteOn(0, 65, 100);


宣言追加

MidiKeyboardComponent midiKeyboard;

MidiKeyboardState& keyboardState;




yuki

初めての作業で調べた事、困った時の解決方法を記録するブログ。 主なテーマは、パソコン、プログラミング、カメラ、DTM、スピリチュアル、化学物質過敏症

コメントを投稿

Please Select Embedded Mode To Show The Comment System.*