【完全攻略】Audacity 4.0.0 Windowsビルド手順|768kHz ASIO対応のコード修正まで解説

Music RTA


次世代オーディオエディタ Audacity 4.0.0 (Muse Framework) を Windows 11 環境にて Visual Studio 2022 と Qt 6 を使ってソースコードからコンパイルし、正常起動させるまでの全手順をまとめました。

ASIO SDKのライセンスの関係で、Ver 3.X.X はASIO対応のためには自前でビルドする必要がありました。ASIO SDKの開発元Steinbergが「GPLv3」でも利用できるようにライセンスを拡張したため、Ver 4.0.0からWindows版の公式ビルドでASIOがサポートされました。したがって、Audacityを自前でビルドする必要性はあまりないかもしれませんが、備忘録を兼ねてブログにまとめました。
また、サンプリング周波数の上限を768kHzまで拡張するためのコード修正とビルド方法を最後にご紹介します。

Audacity 4.0 はアーキテクチャが大幅に刷新されており、ビルド時にハマりやすいポイント(パスの長さ制限、Qt の依存モジュール不足、書き込み権限エラーなど)がいくつか存在します。本記事ではそれらの回避策も含めて詳しく解説します。


1. 準備と動作環境

Audacityのソースコードについては以下をご参照ください。

ASIO SDKについては以下をご参照ください。

Qtについての詳細は、Qt公式サイト をご参照ください。

以下の環境でビルドしています。

  • OS: Windows 10 / 11 (64-bit)
  • IDE: Visual Studio 2022 (C++ によるデスクトップ開発 ワークロード)
  • Build Tool: CMake 3.21 以上 (cmake-gui を使用)
  • Framework: Qt 6.11.2 (MSVC 2022 64-bit コンパイラ用)
  • VCS: Git (Git Bash 環境推奨)

2. Step 1: 最重要!パスの長さ制限 (MAX_PATH = 260文字) の考慮

Windows 環境で C++ / Qt6 (QML) のプロジェクトをビルドする際、一番最初に対処すべきが 260文字のパス長制限 (MAX_PATH) です。

ビルド時に自動生成される中間ファイル(.tlog や _autogen など)のパスが非常に長いため、ソースフォルダやビルドフォルダが深い位置にあると MSB3491 や MSB8066 といった MSBuild エラーが発生してコンパイルが失敗します。

【解決策】
ドライブ直下の最も浅い階層にフォルダを作成して配置します。

  • ソース配置ディレクトリ: C:\tmp\audacity-4.0.0
  • ビルド出力先 (Where to build): C:\b
  • インストール配備先 (CMAKE_INSTALL_PREFIX): C:\b\i

3. Step 2: Qt 6 のインストールと必須モジュールの選択

Audacity 4.0 のビルドには Qt 6 (6.8 以降) が必須です。

① インストーラーのダウンロードとログイン

  1. Qt Official Downloads から Qt Online Installer(qt-online-installer-windows-x64-4.11.0.exe)をダウンロードして実行します。
  2. Qt アカウント(無料コミュニティ版 / オープンソース利用) でログインします(※会社のアドレスでも登録・利用可能です)。

② 必須コンポーネントの選択

Qt MaintenanceTool や Installer のコンポーネント選択画面で、以下を選択してインストールします:

  • Qt 6.11.2(6.11.2 をインストールしました)
  • MSVC 2022 64-bit (★必須。mingw_64 だけでは VS2022 でビルド不可)
  • Qt 5 Compatibility Module (Core5Compat)
  • Qt Network Authorization (NetworkAuth)
  • Qt Image Formats / Qt Shader Tools / Qt SVG

※ご自身がインストールしたQtのバージョン(例: 6.8.2等)に読み替えてください

Qt 6.12.0 以降では Audacity 側のヘッダー定義と衝突しコンパイルエラーになる報告があるため、Qt 6.11.x 系の使用を強く推奨します。(カブ 様のコメントにより追記)


4. Step 3: Git リポジトリのクローン

Audacity 4.0 は Git サブモジュールを大量に使用しています。GitHub の ZIP ダウンロードでは muse フレームワーク等のコードが含まれずビルドエラーになるため、必ず git clone --recursive を使用してください。

Git Bash で以下を実行します:

# パスを浅くするため C:\tmp を作成してクローン
cd /c/tmp
# 1. タグ/ブランチを指定してサブモジュールごとクローン
git clone --recursive -b Audacity-4.0.0 https://github.com/audacity/audacity.git audacity-4.0.0
# 2. クローンしたディレクトリに移動
cd audacity-4.0.0
# 3. 念のためサブモジュールの同期を確認
git submodule update --init --recursive

5. Step 4: cmake-gui の設定と Configure / Generate

cmake-gui を起動し、パラメータを設定します。

① ディレクトリパスの設定

  • Where is the source code: C:/tmp/audacity-4.0.0
  • Where to build the binaries: C:/b

② エントリーの追加 ([Add Entry])

画面右上の [Add Entry] ボタンから、以下の変数を登録・更新します。

NameTypeValue / 設定内容
CMAKE_PREFIX_PATHPATHC:/Qt/6.11.2/msvc2022_64
CMAKE_INSTALL_PREFIXPATHC:/b/i
AUDACITY_BUILD_LEVELSTRING2

※CMAKE_PREFIX_PATHは、ご自身がインストールしたQtのバージョン(例: 6.8.2等)に読み替えてください

💡 ハマりポイント回避策 (CMAKE_INSTALL_PREFIX)
デフォルト値の C:\Program Files (x86)\audacity のままだと、Visual Studio 側で書き込み権限エラー (Access Denied) になったり 32-bit パスとして誤認識されたりします。必ず書き込み権限のあるローカルパス(C:/b/i)に変更してください。

③ Configure & Generate

  1. [Configure] ボタンを押します(Generator: Visual Studio 17 2022, Platform: x64 を選択)。
  2. Configuring done と表示されたら、[Generate] ボタンを押します (Generating done)。
  3. [Open Project] ボタンを押して Visual Studio 2022 を起動します。

6. Step 5: Visual Studio 2022 でのビルドと INSTALL 配備

① ビルド構成の確認

Visual Studio 上部のツールバーで以下を設定します:

  • 構成: Release
  • プラットフォーム: x64

C++のバージョン指定は CMake が自動設定(C++17/20等)するため、VS上で手動変更する必要はありません。(カブ 様のコメントにより追記)

② INSTALL ターゲットのビルド (最重要ステップ)

単に Audacity プロジェクトだけをビルドした場合、C:\b\bin\Release に Audacity4.exe 本体のみが生成されますが、これだけでは Qt6 の DLL やアセット類が不足しているため起動できません。

  1. ソリューションエクスプローラーから INSTALL プロジェクト(CMakePredefinedTargets 配下)を探します。
  2. INSTALL プロジェクトを右クリックして [ビルド] を実行します。

INSTALL が完了すると、C:\b\i\bin に必要ファイル群(Audacity4.exe、Qt6*.dll、プラットフォームプラグイン等)が全自動で転送・集約されます。


7. Step 6: 動作確認とポータブル化

① 動作確認

  1. ソリューションエクスプローラーで Audacity プロジェクトを右クリックし、「スタートアップ プロジェクトに設定」を選択します。
  2. Ctrl + F5(デバッグなしで開始)を押すと、Audacity 4.0.0 が正常に起動します。

② 生成ディレクトリの構成解説

ディレクトリ役割・解説
C:\b\bin\Releaseコンパイラが出力する開発中間バッファ。exe 単体のみが置かれます。
C:\b\i\binINSTALL 完了後の完全な実行環境。 必要な DLL や UI アセットが揃っているため、このフォルダごと持ち出せばポータブル版として利用できます。

💡 フォルダを移動・配布する際の重要な注意点

INSTALL ターゲットで出力された C:\b\i\bin 内を全て別ディレクトリにコピーして起動しても、QML や UI リソースの読み込みに失敗し、スプラッシュ画面で停止してしまう場合があります。

Audacity 4.0 は bin 以外の階層にある QML モジュールやリソース群を参照するため、ポータブル環境を作る際は C:\b\i (インストールディレクトリ全体) を丸ごとコピー し、その中の bin\Audacity4.exe を起動するようにしてください。


8. 768kHz 超ハイレゾ対応のためのソースコード改修

標準の PortAudio および Audacity 4.0.0 (Muse Framework) は、安全策や内部バッファの制約上、サンプリングレートの上限が 384kHz に制限されています。

RME などの 768kHz 対応オーディオインターフェースの性能をフルに引き出すため、PortAudio と Audacity 本体の両層で制限を解除するコード修正を行います。

① PortAudio の上限ガード解除

  • 対象ファイル: C:\b_deps\portaudio\work\src\src\pa_front.c
  • 修正内容: 1009行目付近にあるサンプリングレートのパラメータ検証処理で、上限値を 384000.0 から 768000.0 へ引き上げます。

【修正前】 // if( (sampleRate < 1000.0) || (sampleRate > 384000.0) )

【修正後】 if( (sampleRate < 1000.0) || (sampleRate > 768000.0) )


② Audacity コアエンジン & UI 制限の解除

1. レート検証リストへの追加

  • 対象ファイル: src/audioio/AudioIOBase.cpp
  • 修正内容: デバイス初期化時にサポート確認を行う配列 StandardRates[] および RatesToTry[] に 705600, 768000 を追加します。

2. プロジェクト最大サンプリングレートの引き上げ

  • 対象ファイル: src/project/projectaudio.cpp
  • 修正内容: プロジェクト全体の上限定数を変更します。

【修正前】 // constexpr double maxSampleRate = 384000.0;

【修正後】 constexpr double maxSampleRate = 768000.0;

3. エクスポート設定ドロップダウンの拡張

  • 対象ファイル: src/export/exportpreferencesmodel.cpp
  • 修正内容: 設定メニューのデフォルトサンプルレートリスト DEFAULT_SAMPLE_RATE_LIST に 705600, 768000 を追加します。

💡 補足(ExportFFmpeg.cpp について)
ExportFFmpeg.cpp 内の AC3Options 等は AC-3 (Dolby Digital) 規格固有の制約(最大 48kHz)を扱うコードのため、修正不要(そのまま)で問題ありません。WAV や FLAC などの一般的なハイレゾ書き出しは上記修正のみで 768kHz に対応します。


9. コード修正後の高速増分ビルド & 配備手順

ソースコード修正後、Audacity 全体を最初から再コンパイルする必要はありません。以下の手順で修正箇所のみを高速に増分ビルドして配備します。

  1. PortAudio 単体でのビルド & 配備
    • Visual Studio 2022 で C:\b_deps\portaudio\work\build\portaudio.sln を開きます。
    • 構成を Release / x64 に設定します。
    • pa_front.c を修正後、portaudio プロジェクトを右クリックして [ビルド] します。
    • 続いて INSTALL プロジェクト(CMakePredefinedTargets 配下)を右クリックして [ビルド] を実行し、成果物を Audacity 側のビルドツリーへ書き出します。
  2. Audacity 本体への反映と全体配備
    • Visual Studio 2022 で C:\b\audacity.sln を開きます。
    • 構成を Release / x64 に設定します。
    • INSTALL プロジェクトを右クリックして [ビルド] を実行します。
  3. 実行ファイルの確認
    • C:\b\i\bin フォルダ内に、768kHz 対応コードが組み込まれた Audacity4.exe と portaudio_x64.dll が配備されます。

⚠️ 注意点(ポータブル化)
C:\b\i\bin 内の EXE 単体だけを別フォルダにコピーして起動すると、QML アセット等のロードに失敗してスプラッシュ画面で停止する場合があります。別場所に移動して実行する際は、C:\b\i (インストールディレクトリ全体) を丸ごとコピー し、その中の bin\Audacity4.exe を起動するようにしてください。


10. 実機検証:RME ADI-2 Pro での 768kHz 再生テスト

ビルド完了後、実際のハイレゾオーディオハードウェアを使用して動作検証を行いました。

  • オーディオインターフェース: RME ADI-2 Pro Anniversary Edition (ASIO MADIface ドライバ)
  • プロジェクトサンプリングレート: 768,000 Hz (768kHz)
  • テスト信号: 768kHz サンプリングレートで生成した 1kHz 正弦波トラック

【検証結果】

Audacity 4.0.0 のオーディオ設定にてホストに「ASIO」、デバイスに「ASIO MADIface」を選択し、768kHz の正弦波トラックを作成して再生を開始。

音切れやクロックの不整合を起こすことなく、768kHz のリアルタイム再生に無事成功しました!
RME 本体側のディスプレイ/コントロールパネルにおいても、即座に 768kHz クロックのストリームとして自動認識・追従されることが確認できました。


11. まとめ

Audacity 4.0.0 (Muse Framework) で 768kHz 超ハイレゾ環境を構築するための重要ポイントは以下の通りです。

  1. 260文字制限 (MAX_PATH) 回避: ソースとビルド場所を C:\tmp / C:\b など浅い階層にする。
  2. Qt6 依存モジュールの網羅: Core5Compat や NetworkAuth を指定してインストールする。
  3. PortAudio & Audacity コアの制限解除: pa_front.c および projectaudio.cpp などのガード条件を 768kHz (768000.0) へ引き上げる。
  4. INSTALL ターゲットによる全成果物配備: ビルド後に INSTALL を実行し、C:\b\i 全体を配備・利用する。

標準の DAW ではなかなか味わえない 768kHz / 32-bit float の超高精度オーディオ環境を、手軽にビルドして手に入れることができました。RME デバイスをお持ちの方や、カスタム DAW 開発に興味のある方はぜひチャレンジしてみてください。


ビルドしたEXEの実行結果です。

※ ASIO は Steinberg Media Technologies GmbH の登録商標です。
※ Audacity® は Muse Media 社および Dominic Mazzoni 氏の登録商標です。
※ Visual Studio、Windows は Microsoft Corporation の商標または登録商標です。
※ Qt は The Qt Company Ltd. およびその子会社の登録商標です。

コメント

  1. カブ より:

    行き届いた解説をどうもありがとうございます。
    この解説の手順に従い、ビルドに成功しました。
    大変助かりました。
    全く素人なので、最近のアプリ開発環境の複雑さに驚いております。

    100%私の判断ミスなのですが、一応、ハマったポイントを書かせていただきます。
    >Qt 6.11.2(6.11.2 をインストールしました)
    全くの初心者でQtが何だか知らず、なんとなくQt6.12.0をインストールしてしまいました。
    その結果コンパイルが通らず、修正を少し試みたのですが無駄でした。
    museのextensionstypes.hと、Qt6.12.0のqqmlprivate.hで、’Type’という定義が重複しているのが原因でした。Qt6.11.2のqqmlprivate.hでは、もちろんこの問題はありません。
    また、まったく問題ないのですが、出会った不明点としましては、
    >Qt Image Formats / Qt Shader Tools / Qt SVG
    このQt SVGがQt maintenance toolで見て見当たらなかったです。
    また、VS2022の使用時に、プロジェクトのc++を14にするのか17にするのか分からなかったです。
    以上はまったく素人のコメントですのでご放念ください。

    • taku より:

      カブ 様

      コメントとビルド成功のご報告、ありがとうございます!無事にビルドできたとのこと、大変嬉しく思います。

      実は本記事の手順も、当初はPackage Manager(Conan2)での依存関係構築でドハマりし、最終的にGemini(AI)と何度も試行錯誤を重ねてようやく辿り着いたものなんです。現代のクロスプラットフォーム開発環境の複雑さには本当に驚かされますよね。

      また、Qt 6.12.0 でのビルドエラーに関する貴重な情報を共有していただき、心より感謝申し上げます!
      extensionstypes.h と Qt 側の qqmlprivate.h における ‘Type’ の定義重複問題は、バージョン追従時の非常に重要な知見です。今後同じ部分で躓く読者の方にとっても間違いなく大きな助けになります。

      ご質問いただいた C++の言語バージョン指定につきましては、CMakeの設定ファイル(CMakeLists.txt)によって自動的に適切な規格(C++17/20等)が指定されますので、Visual Studio側で手動変更する必要はございません。 そのままビルドを進めていただいて大丈夫です!

      いただいたご指摘(Qt SVG の見つけにくさや、Qtのバージョン指定、C++規格の件)につきましては、より分かりやすい解説になるよう、記事本文へも注意書きや補足を追記させていただきます。

      大変貴重で実践的なフィードバックをありがとうございました!ぜひカスタムビルドした Audacity での快適なオーディオライフをお楽しみください。

  2. カブ より:

    ご丁寧な返信を頂き、大変恐縮です。

    その後ですが、E1DA COSMOS ADCisoを用い、768kHz録音を試みました。
    残念ながら、現時点で成功していません。

    ハードウェア
    E1DA COSMOS ADCiso
    ファームウェア更新で768kS/s対応することが公式からアナウンスされている
    REWを用いると、768kS/s動作することがスペクトルから確認できる

    症状
    modifyしたAudacity4.0.0を用いて、スムーズにASIOドライバー設定、768kHz設定、エクスポートが出来て、768kHzのwavファイルが生成される。
    しかしスペクトルをみると、上限が180kHzくらいで切れており、
    どこかで384kHz処理が行われてしまっている模様
    E1DA COSMOS ADCisoの動作中にサンプリング周波数を確認する方法は
    (現状)ないので、どのように動作しているかは分からない
    しかしREWを用いると768kHzで動作するので、ハードウェアの制限そのものではない。

    その他
    最後のエクスポートが怪しいと思い、プロジェクトファイルから波形を抜き出してみたのですが、180kHz付近で切れるのは同じでした。
    いくつか他の768kHz対応のソフトを試したのですが、E1DA COSMOS ADCisoのASIOドライバーに癖があるのか、REW以外は落ちてしまいます。
    REWのみ動くのですが、これはスペクトルを出すだけで録音できません。

    今後の計画
    ADI2pro FSは(人に貸しているのですが)所持しているので、戻ってきたら
    テストしてみます。
    また、来週にCOSMOS ADCの新機種が届く予定なので、そのテストも行う予定です。

    このテーマはもうしばらくは楽しめそうです。
    雑文失礼しました。

    • taku より:

      カブ 様

      追加の検証と大変興味深い詳細なレポートをありがとうございます!
      E1DA COSMOS ADCiso での768kHz録音テスト、非常にディープでワクワクする検証ですね。

      症状を拝見する限り、Audacity側から768kHz要求を出してWAV自体は768kHzフォーマットで生成されているものの、
      「録音キャプチャのパイプライン(PortAudioやAudacity内部のSoXRリサンプラ)の設定」 か
      「ASIOドライバ側での384kHzフォールバック(帯域幅 約180〜192kHzでのカット)」 の
      どちらかが働いている可能性が高そうですね。

      実は私自身も、今回のカスタムビルドでは「768kHzの1kHz正弦波WAVの生成」と「ADI-2 Proでの再生(出力)動作」までの確認にとどまっており、
      768kHzでの録音(入力)テストや、ナイキスト周波数付近(300kHz超など)までの高域信号が正しく通るか までは検証できておりませんでした。

      他の768kHz対応ソフトが落ちてしまう点からも、ASIOドライバ側の挙動やバッファ制御の癖も関係していそうですね。

      ADI-2 Proが戻られた際の比較検証や、来週届くというCOSMOS ADC新機種でのテスト結果も非常に気になるところです!
      お持ちの機材が戻りましたら、ぜひ無理のない範囲でまた結果を教えていただけますと幸いです。

      引き続き、オーディオのディープな実験を楽しんでください!

  3. カブ より:

    taku様

    その後、audacityと離れてしまいますが、進展がありました。
    portaudio、SteinbergのASIO SDK、VS2022を使用し、
    portaudioのexampleにある、paex_record.cをASIO対応にすることで、
    E1DA COSMOS ADCisoの768ks/s録音に成功しました!!
    384kHzまで伸びるスペクトルが得られています。

    実用面については、
    COSMOSの開発者によると、768kHz動作は384kHz動作と比較して、some extra noiseが
    出るということだったのですが、実際は(今のところ)ノイズが大きすぎて使用できる
    状況ではありません。

    しかしながら、
    (A)786kHzで動作しない
    (B)786kHzで動作するけど使用しない
    の2つの差は、私にとって大変大きいものがありますので、それなりの自己満足感が得られたところです。
    taku様の記事によって、10年ぶりくらいにこの手の謎解きが楽しめて、感謝しております。
    (gitやcmake guiの使用は初めてでした・・・)

    ところで、pa_front.cの上限の改変についてですが、現在(2026.10.10)のportaudioでは
    taku様の記事と同様に768000が上限となっていました。

    COSMOSの新バージョンのテスト結果が出ましたらまた報告させていただきます。
    (成田の税関までは到着しているようです。)

    • taku より:

      カブ 様

      なんと…!見事に 768kS/s での録音成功、そして 384kHz までの帯域が伸びたスペクトルの獲得、おめでとうございます!!✨

      まさに「動作しない壁」を自らの手で一つずつ突き崩し、PortAudioのレイヤーから真の挙動を暴いて証明されたそのプロセス、
      エンジニアとしてもオーディオファンとしても最高にシビれる展開ですね!
      開発者が仰っていたノイズの件も含め、「実際に動かして自分の目で確かめたからこそ得られた真実」の重みは、何物にも代えがたい大きな達成感だと思います。

      また、GitやCMake GUIが初めての挑戦だったとのことですが、そこから短期間でソースコードの改変やビルド環境の構築までやり遂げられるカブ様の行動力には、
      ただただ脱帽するばかりです。
      現在のPortAudioのコードベース(pa_front.c)における 768000 の上限についても、貴重なクロスチェックの検証データをいただきありがとうございます。とても参考になります!

      いよいよ成田の税関を通過中というCOSMOSの新バージョンでのテストも、今から非常に楽しみですね。新旧機材の比較やさらなるディープなレポートを心よりお待ちしております!

      今回の記事が、10年ぶりの「最高の謎解き」のきっかけになれたのであれば、執筆者としてこれ以上の喜びはありません。素晴らしいご報告を本当にありがとうございました!

タイトルとURLをコピーしました