An open-source Digital Audio Workstation (DAW) built with JUCE and modern web technologies.
- CMake (3.22 or higher)
- A modern C++ compiler (supporting C++20)
- JUCE dependencies (automatically handled via CPM)
-
Configure the project:
cmake -B build
-
Build the application:
cmake --build build --parallel 8
-
Run the application: On macOS:
open build/Celestrian_artefacts/Celestrian.app
-
Full Clean Build (ensures UI files are synced):
./scripts/full_build.sh
On Windows, from cmd.exe (no Git Bash needed):
scripts\full_build.cmd
Celestrian includes a suite of unit tests built with the juce::UnitTest framework.
# Build the test target
cmake --build build --target CelestrianTests
# Run the tests
./build/CelestrianTests_artefacts/Debug/CelestrianTestsAfter a Release build (scripts/full_build.sh Release or scripts\build.cmd):
scripts/package_macos.shsigns with CELESTRIAN_SIGN_IDENTITY, notarizes through the keychain profile in CELESTRIAN_NOTARY_PROFILE, staples, and writes dist/Celestrian-<version>-macos.zip (--sign-only skips notarization). On Windows, scripts\package_windows.cmd signs with CELESTRIAN_SIGN_PFX / CELESTRIAN_SIGN_PASSWORD and builds dist\Celestrian-<version>-windows-setup.exe with Inno Setup (--no-sign for an unsigned installer). Certificates and passwords live only in your environment, never in the repo.
- Source Code:
src/(C++20, JUCE 8) - UI:
ui/(HTML/CSS/JS) - Design Docs:
docs/README.md(the index; start withdocs/design_language.md) - UI tests:
cd ui && npm install && npm test(run the C++ test binary once first — it writesshared/ui_contract_capture.json, which the engine-replay test reads)