こんにちは。 今回は、オーディオ編集の定番ソフト Audacity のカスタマイズ、それも「ソースコードからのビルド」についてお話しします。
なぜビルドが必要だったのか?
バイノーラル録音やステレオ音源を編集する際、LチャンネルとRチャンネルが同じ色で表示されることに、少し物足りなさを感じていました。「左は水色、右はオレンジ」というように、左右個別の波形色・背景色に設定できれば、視覚的なモニタリング効率は格段に上がります。
しかし、残念ながら公式の配布パッケージではこの配色の個別設定には対応していません。
Windows環境(Visual Studio 2022)では、ソースコードを修正することで理想の配色を実現できましたが、Mac環境(M2 Mac / Xcode)でのビルドは一筋縄ではいきませんでした。数日間の試行錯誤の末、ようやく完動まで漕ぎ着けましたので、その手順を記録として残します。
※本記事では「配色変更のコード修正内容」ではなく、Mac環境でAudacityを正常にビルド・動作させるための**「ビルド環境構築」**に焦点を当てます。
1. ソースコードの準備
ビルド環境の複雑化を避けるため、今回は git clone ではなく、GitHubのReleaseページから公式のソースアーカイブ audacity-sources-3.7.7.tar.gz をダウンロードして使用しました。
2. Conanの初期化
Audacityのビルドにはパッケージマネージャーの Conan が必要です。依存関係をクリーンにするため、以下の手順で初期化を行います。
# キャッシュの全削除(既存環境がある場合)
conan remove "*" --confirm
# M2 Mac環境のプロファイルを自動検出
conan profile detect --force
3. CMakeによるプロジェクト生成
ここが最大の難所でした。Mac(Homebrew)環境にある他のライブラリとの競合を防ぐため、**「依存関係をAudacity専用の箱庭(local)に閉じ込める」**のが成功の鍵です。
ターミナルから以下の引数で CMake を実行します。
cmake -GXcode ../audacity-sources-3.7.7 \
-Daudacity_conan_enabled=ON \
-Daudacity_use_wxwidgets=local \
-Daudacity_use_libsndfile=local \
-Daudacity_use_ffmpeg=loaded \
-DCMAKE_OSX_ARCHITECTURES=arm64
4. Xcodeでのビルドと「Install」の重要性
生成された Audacity.xcodeproj を Xcode で開き、構成を Release に指定してビルド(Command + B)します。
ここで注意が必要なのが、Windowsと違い、Macでは通常のビルドだけでは「アプリ(.app)」が完成しないという点です。WAVやFLACのインポートモジュールを正しく配置するために、ターゲットを INSTALL に切り替えて再度ビルドを実行します。

Tips:
INSTALLビルド時に/usr/local/へのアクセス権限エラーが出ることがありますが、Audacity.app内のContents/Modulesフォルダにmod-pcm.so等が生成されていれば、実用上の問題はありません。
5. 仕上げ:署名と隔離属性の解除
自前でビルドしたバイナリを macOS で動かすには、ゲートキーパーの制限を解除する必要があります。
# 隔離属性の解除
sudo xattr -rd com.apple.quarantine ./Audacity.app
# 全ライブラリ・モジュールへのアドホック署名
find ./Audacity.app -name "*.dylib" -exec codesign --force --sign - {} \;
find ./Audacity.app -name "*.so" -exec codesign --force --sign - {} \;
codesign --force --sign - ./Audacity.app
完成した「自分専用」のAudacity
苦労の末、M2 Mac上でも理想の配色で動作する Audacity が完成しました!

Windows版と違い、Mac版はライブラリのパスや署名の扱いが非常にシビアですが、一度この手順を確立してしまえば、自分好みのオーディオエディタへと自由に拡張できるようになります。
同じように「MacでAudacityをビルドしたいけれど、WAVが開けない、環境設定にライブラリが出ない」と悩んでいる方の参考になれば幸いです。

コメント