Skip to content

Instantly share code, notes, and snippets.

@milnak
Last active September 21, 2026 15:15
Show Gist options
  • Select an option

  • Save milnak/4d4115b1c5b19524943e59e2d83aea9e to your computer and use it in GitHub Desktop.

Select an option

Save milnak/4d4115b1c5b19524943e59e2d83aea9e to your computer and use it in GitHub Desktop.
Building Ardour in Windows using MSYS2

Building Ardour in Windows using MSYS2

Install MSYS2

winget install --id MSYS2.MSYS2 --exact

Open MSYS2 MINGW64.

Refresh the package database and upgrades all installed packages to their latest versions.

In the terminal, re-run:

pacman --sync --refresh --sysupgrade --noconfirm

Tip: "Shift-Insert" will paste in the console.

Install micro editor (Optional)

curl https://getmic.ro | bash

Install required packages

pacman --sync --needed --noconfirm \
  git \
  unzip \
  make \
  mingw-w64-x86_64-{aubio,boost,cairomm,cmake,curl,doxygen,fftw,glib2,glibmm,graphviz,jack2,libarchive,liblo,libsndfile,libusb,libwebsockets,lilv,make,ninja,pangomm,portaudio,portaudio-asio,python,rubberband,serd,sord,sratom,taglib,toolchain,vamp-plugin-sdk} 

Add /mingw64 to PATH

Place at end of file.

micro ~/.bashrc

export PATH="$PATH:/mingw64/bin"

Close, and reopen MSYS2 MINGW64.

Clone ardour repo

cd ~
git config --global core.autocrlf false
git clone https://github.com/Ardour/ardour.git

Configure Ardour

Set "--prefix" to path where you want ardour to be installed to when "waf install" is called.

cd ~/ardour

./waf configure \
  --prefix='D:\ardour' \
  --check-c-compiler=gcc \
  --check-cxx-compiler=g++ \
  --dist-target=mingw \
  --configdir=share \
  --no-execstack \
  --no-dr-mingw \
  --optimize \
  --cxx17 \
  --ptformat

Build Ardour

./waf --jobs=$(nproc)

Ignore any warnings that are displayed.

Install ardour

Will install to the location specified with "--prefix" above.

./waf install

Copy dependent files

Change /d/ardour to the installation location that was specified above.

cp --verbose /mingw64/bin/*.dll '/d/ardour/lib/ardour9'

# On windows the .exe needs to be in the same folder with libardour.dll
mkdir '/D/ardour/lib/ardour9/fst'
cp --verbose build/libs/fst/*.exe '/D/ardour/lib/ardour9/fst'

Ardour Startup Script

Save this as d:\ardour\ardour.ps1

# Ardour launcher script (PowerShell)
Param([string]$ArdourPath = (Resolve-Path '.'))

$ArdourPath = $ArdourPath -replace '\\', '/'

# --- Environment variables ---
$env:GTK_PATH = "$ArdourPath/share/ardour9;$ArdourPath/lib/ardour9"
$env:LD_LIBRARY_PATH = "$ArdourPath/lib/ardour9"

# --- Ardour required environment variables ---
$env:ARDOUR_DATA_PATH = "$ArdourPath/share/ardour9"
$env:ARDOUR_CONFIG_PATH = "$ArdourPath/share/ardour9"
$env:ARDOUR_DLL_PATH = "$ArdourPath/lib/ardour9"

# NSM needs a path to this script
$env:ARDOUR_SELF = Split-Path -Leaf $PSCommandPath

# VAMP lookup path
$env:VAMP_PATH = "$ArdourPath/lib/ardour9/vamp"

# --- Exec Ardour ---
$ardourExe = (Get-ChildItem "$ArdourPath\lib\ardour9\ardour-*.*.*.exe" -File) | Sort-Object -Descending LastWriteTime | Select-Object -first 1 -ExpandProperty FullName

& $ardourExe @args

Create sessions in D:\ardour\sessions

Example Configuration

PortAudio (default)
  ASIO
  UMC ASIO Driver
  UMC ASIO Driver
  48 kHz
  64 samples (1.3 ms)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment