プラグインにメーカー名を設定したいです。
DAWから見ると、自分のメーカーが出てくるから、テンション上がるよね〜
JUCEプラグインの作成を行っていて、一番根本的な設定部分を適当にやっていました。メーカー名です。設定項目もProjucerにあるし、後から好きに変更できるでしょう、と思っていましたが、(MacビルドLogic環境)全然変更が反映されないという事象が発生しました。
プラグインを作成する際に、「Company Name」を設定する項目があります。これは、プラグイン一覧に掲載されるメーカー名になるのですが、何も入力せず、デフォルトの場合、「yourcompany」という名称で登録されます。
プラグインを作り始める時は、何気なくいろいろテストしながら作成していたので、この点は、ほぼ気にせず進めていました。
今回は、プラグインの設定的な内容の備忘録となります。
格闘の記録
Logic側の認識がおかしいのかな?と思い、Logicのプラグインマネージャーを確認したり、再起動をかけたりしていたのですが、この点はなんの問題点もなさそうでしたので、以下の点を見直してみました。
componentファイルの確認
プラグイン情報は、Logicから見ると、componentファイルを見て情報を取得していると思ったので、このcomponentファイルの内容に、メーカー名や、プラグイン名が埋め込まれているのかを確認してみました。
mac版JUCEでビルドを行うと、デフォルトで「/ユーザ/〇〇/ライブラリ/Audio/Plug-Ins/Components/」にプラグインのファイル(.component)が作成されます。JUCEプロジェクトのビルドフォルダには、エイリアスが存在していますので、「情報を見る」でパスをたどることでどこに生成されるかがわかります。
ComponentファイルをSublimeTextで開くと、中にはInfo.plistというファイルがありました。ここを見ても、メーカー名の部分と思わしき文字列にpanda-clipとなっており、問題なさそうでした。
そのほか、Resourcesファイルに16進数のファイルがあったので、アスキーに変換してみたところ、panda-clipという文字列が確認できたので、反映されているのかなと思いました。
ContentsのMacOS内のプラグイン本体と思わしきところは、ちょっと長すぎて読む気がしませんでした。
Xcodeでのビルドの検証
Xcodeでビルドファイルのクリーンを行なっても、「.component」ファイルが削除されていない点と、すでに「.component」が存在している場合、ビルドを行なっても、「.component」ファイルの更新日時が変更されていない点が気になりました。
一度、「.component」ファイルを削除して再度ビルドを行うと、新たに「.component」が生成されるようです。
こうして、projucerの設定項目を変更して、再度Xcodeを開き、「.component」を削除してビルドを行いました。
それでも、生成されたプラグインは、yourcompanyに登録されてしまいました。
最終的な手段
一度、初めて作成するプラグインに、一番最初にメーカー名を設定したらどうなるかを検証してみました。panda_testというプラグイン名(プロジェクト名同一)を作成して検証してみました。
初めて作成するプロジェクトでXcodeを開く前に設定したプラグインは無事メーカー名が「panda-clip」で登録されました。そして、Logic内でもデフォルトのHelloWorldのプラグインが実行されました。
このプラグインのプログラムを書き換えることで、メーカー名が変更できそうなので、プラグラムの入れ替えを検討してみました。
新しく作成した、panda_testというプロジェクトに、今まで作成してきたソースファイル、プラグイン内で使用している画像ファイルをSourceに入れました。(ソースファイルは上書き)
もちろん、新しいプロジェクトのpanda_testのprojucer設定で、dspモジュールを追加、画像ファイルの追加も行いました。
そして、Xcodeを開いて、ビルドをしてました。今回、componentファイルの削除はしていません。
このビルド完了後、Logicでプラグインを開いたところ、無事、プラグインの機能が反映されていました。
まとめ
Macでのビルド、Logicでの動作環境でしか試せていないのですが、Projucerでプロジェクトを作成した際に一度決定したメーカー名が、容易に変更できないということがわかりました。また、これは、プラグインの名称にも当てはまっていて、新しいプロジェクトを作成した後、プログラムを反映するという方法で、メーカー名とプラグイン名を任意のものに変更できることがわかりました。
本当は、変更できる方法はあると思うのですが、自分の勉強不足で、現状はこの方法で変更するしかないのかな〜と考えています。とりあえず、変更はできたのでOKとしました。