1.5 KiB
1.5 KiB
Doux Website
Documentation and playground for the Doux synthesizer.
Credits
Doux is a Rust port of Dough, originally written in C by Felix Roos. Dough is part of the TidalCycles ecosystem. Consider supporting the project.
Architecture
- SvelteKit with static adapter for GitHub Pages deployment
- mdsvex for markdown-based documentation in
src/content/ - WASM module (
static/doux.wasm) — the synthesizer engine - COI service worker for Cross-Origin Isolation — browsers require
Cross-Origin-Opener-PolicyandCross-Origin-Embedder-Policyheaders to enableSharedArrayBuffer, which is needed for audio worklets. Since GitHub Pages doesn't allow custom headers, the service worker injects them client-side.
Directory Structure
src/
├── content/ # Markdown documentation files
├── lib/ # Shared components and utilities
├── routes/
│ ├── native/ # Native build downloads
│ ├── reference/ # API reference pages
│ └── support/ # Support pages
└── app.html # HTML shell
Development
pnpm install
pnpm dev
Build
pnpm build
Output goes to build/.
Deployment
Automatic via GitHub Actions on push to main. The workflow:
- Builds the static site with
pnpm build - Deploys to GitHub Pages
See .github/workflows/deploy.yml for details.
License
AGPL-3.0