JUCEチュートリアルを始めたての人向けに役立つコードスニペット


JUCEチュートリアル

JUCEは機能が豊富な分、チュートリアルが提供されています。本記事の執筆時点で62個のチュートリアルが用意されていますが、これでも全てのクラスの使い方が網羅されているわけではありません。
チュートリアルに付属のプロジェクトファイルPIP形式、ZIP形式で提供されていますが、個々の開発環境についてまでは触れられていないため、開発環境によっては期待通りに動いてくれないケースに遭遇することがあります。
本記事では、そのようなトラブルの一例について解決方法を紹介します。

音が出ない場合

原因としては、JUCEアプリケーションにおけるオーディオの出力先のデバイスが設定されていないことが挙げられます。特にプロジェクトを新規作成したときなどは、参照すべき設定値などを取ることができず、オーディオデバイスの設定が存在しないせいで、出力自体が無効化されているケースに遭遇します。

以下に、JUCEアプリケーションでのオーディオデバイス設定パネルを表示するためのコードスニペットを示します。

オーディオデバイス設定パネルを表示するコードスニペット

void showDeviceSetting()
{
    AudioDeviceSelectorComponent selector(deviceManager,
        0, 256,
        0, 256,
        true, true,
        true, false);
    selector.setSize(400, 600);

    DialogWindow::LaunchOptions dialog;
    dialog.content.setNonOwned(&selector);
    dialog.dialogTitle = "Audio/MIDI Device Settings";
    dialog.componentToCentreAround = this;
    dialog.dialogBackgroundColour = getLookAndFeel().findColour(ResizableWindow::backgroundColourId);
    dialog.escapeKeyTriggersCloseButton = true;
    dialog.useNativeTitleBar = false;
    dialog.resizable = false;
    dialog.useBottomRightCornerResizer = false;
    dialog.runModal();
}

この関数をメインのコンポーネントのコンストラクタ内で呼び出すようにしましょう。

 MainContentComponent()
        :   state (Stopped)
    {
        ~中略~
        setAudioChannels (2, 2);
        startTimer (20);

        showDeviceSetting();

    }

showDeviceSetting関数が呼び出されると、以下のパネルが表示されます。

実行環境に合わせてオーディオデバイスの設定を変更しましょう。