Skip to main content

Installing

There are no released builds yet. Lockstep is built from source.

CI produces artefacts for Linux and macOS on every push to main — VST3, CLAP, standalone, and the macOS AU — and you can download those from a run's Artifacts section on the Actions tab. They are unsigned, untagged, and built from whatever main was at the time. Treat them as something to experiment with, not as a release.

Building from source​

Lockstep needs Clang and C++20, and Clang is load-bearing rather than a preference: the strict warning set and -Werror are gated to it, so a GCC build silently compiles with neither.

git clone --recurse-submodules https://github.com/chalkwalk/lockstep.git
cd lockstep

cmake -B build -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
cmake --build build -j
ctest --test-dir build --output-on-failure

--recurse-submodules is not optional. There are seven of them, and one (Bungee) carries its own.

Linux build dependencies​

On Debian or Ubuntu:

sudo apt-get install -y \
libasound2-dev libx11-dev libxcomposite-dev libxcursor-dev \
libxext-dev libxinerama-dev libxrandr-dev libxrender-dev \
libfreetype6-dev libfontconfig1-dev libcurl4-openssl-dev \
libgl1-mesa-dev libglu1-mesa-dev ninja-build

Where the artefacts land​

juce_add_plugin lives in src/CMakeLists.txt, so everything is built under build/src/, not build/:

build/src/Lockstep_artefacts/Release/Standalone/Lockstep
build/src/Lockstep_artefacts/Release/VST3/Lockstep.vst3
build/src/Lockstep_artefacts/Release/CLAP/Lockstep.clap
build/src/Lockstep_artefacts/Release/AU/Lockstep.component (macOS)

Copy the VST3 or CLAP into wherever your host scans, or run the standalone directly.

Platform caveats worth knowing before you start​

  • Linux is the developed and tested platform.
  • macOS compiles and passes the full suite in CI, but no host has ever loaded the plugin and the AU has never been through auval. Expect to be the first person to find out.
  • Windows compiles under MSVC. Its two GUI test suites are excluded in CI because the runner has no interactive desktop, so they are unrun rather than passing.

If something goes wrong on macOS or Windows, that is a genuinely valuable bug report rather than a nuisance — it is the top item in CONTRIBUTING.md.