3HSPlugにPCMサンプルファイルとパッチJSONファイルの読み込みパスをコマンドライン引数で指定できる機能を追加しました。
--pcm-path: PCMサンプルファイルが格納されているディレクトリパスを指定--patch-json: パッチバンクJSONファイルのパスを指定--help,-h: ヘルプメッセージを表示
# デフォルトパスを使用(./pcm/, patch_bank.json)
3HSPlug
# PCMパスのみ指定
3HSPlug --pcm-path ./custom_samples/
# 両方のパスを指定
3HSPlug --pcm-path ./my_samples/ --patch-json ./configs/my_patches.json
# ヘルプを表示
3HSPlug --help- PCMパス:
./pcm/ - パッチJSONパス:
patch_bank.json
引数が指定されていない場合、またはプラグイン形式で動作している場合はデフォルト値が使用されます。
- CommandLineArgs.h/cpp: コマンドライン引数解析クラス
- GlobalCommandLineArgs.h/cpp: グローバルな引数管理クラス
- StandaloneApp.h/cpp: JUCEアプリケーションエントリーポイント
- Main.cpp: テスト用のメイン関数(デバッグ目的)
-
PluginProcessor.h/cpp:
- パス設定メンバ変数の追加
- グローバル引数からのパス取得
- 初期化処理の分離
-
DrumPcmSampleLoader.h/cpp:
loadAllDrumSamples()関数にパスパラメータ追加
-
PatchBankData.h/cpp:
initializePatchBank()関数にパスパラメータ追加
-
CMakeLists.txt:
- 新しいソースファイルをビルドに追加
StandaloneApplication → CommandLineArgs → GlobalCommandLineArgs → PluginProcessor → DrumPcmSampleLoader/PatchBankData
- StandaloneApplication: JUCEアプリケーションエントリーポイント(START_JUCE_APPLICATION使用)
- CommandLineArgs: 引数解析の実装
- GlobalCommandLineArgs: シングルトンパターンで引数をグローバル管理
- PluginProcessor: 初期化時にグローバル引数からパスを取得
- DrumPcmSampleLoader/PatchBankData: 動的パスでファイル読み込み
- スタンドアロンアプリケーション:
StandaloneApplicationクラスがSTART_JUCE_APPLICATIONマクロで起動 - プラグイン形式: 従来通りJUCEのプラグインホストが直接PluginProcessorを作成
- テスト用:
Main.cppで独立したテスト実行(コマンドライン引数のテストのみ)
cd /path/to/3HSPlug
mkdir build
cd build
cmake ..
cmake --build .# デフォルトパス
./3HSPlug
# カスタムパス
./3HSPlug --pcm-path ./assets/pcm/ --patch-json ./assets/patch_bank.json指定したパスにPCMファイル(35.wav, 36.wav等)とpatch_bank.jsonが存在することを確認してください。
-
ファイルが見つからない
- 指定したパスが正しいか確認
- 相対パスの場合、実行ディレクトリからの相対位置を確認
-
コンパイルエラー
- CMakeLists.txtに全ての新しいソースファイルが含まれているか確認
- JUCE Headerのインクルードパスが正しいか確認
-
引数が認識されない
- 引数の形式が正しいか確認(
--pcm-pathと--patch-json) - スペースで区切られているか確認
- 引数の形式が正しいか確認(
- 設定ファイルからのパス読み込み
- 環境変数からのパス取得
- GUIでのパス設定機能
- 複数のパッチファイル対応
このプロジェクトはAGPLv3ライセンスの下で公開されています。