Skip to content

Repository files navigation

Celestrian

An open-source Digital Audio Workstation (DAW) built with JUCE and modern web technologies.

Getting Started

Prerequisites

  • CMake (3.22 or higher)
  • A modern C++ compiler (supporting C++20)
  • JUCE dependencies (automatically handled via CPM)

Build Instructions

  1. Configure the project:

    cmake -B build
  2. Build the application:

    cmake --build build --parallel 8
  3. Run the application: On macOS:

    open build/Celestrian_artefacts/Celestrian.app
  4. 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
    

Running Unit Tests

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/CelestrianTests

Packaging a release

After a Release build (scripts/full_build.sh Release or scripts\build.cmd):

scripts/package_macos.sh

signs 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.

Development

  • Source Code: src/ (C++20, JUCE 8)
  • UI: ui/ (HTML/CSS/JS)
  • Design Docs: docs/README.md (the index; start with docs/design_language.md)
  • UI tests: cd ui && npm install && npm test (run the C++ test binary once first — it writes shared/ui_contract_capture.json, which the engine-replay test reads)

About

A DAW (Digital Audio Workstation) designed for looping-based song creation

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages