Skip to content

Latest commit

 

History

History
88 lines (72 loc) · 2.78 KB

File metadata and controls

88 lines (72 loc) · 2.78 KB

Contributing to Glacial

The project is a dual-language project. We are using python for AI-powered audio synthesis and javascript for live-coding (composition).

Structure

Generated via ^eza --tree --git-ignore and trimmed:

├── biome.json
├── CHANGELOG.md
├── CRUSH.md
├── cspell.yaml
├── flake.lock
├── flake.nix
├── justfile
├── LICENSE.md
├── package.json
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
├── pyproject.toml
├── README.md
├── scripts
│   └── flake
│       └── ...
├── src
│   ├── composition
│   │   ├── cspell.yaml
│   │   ├── package.json
│   │   ├── src
│   │   │   └── ...
│   │   └── tsconfig.json
│   └── synthesis
│       ├── cspell.yaml
│       ├── pyproject.toml
│       └── src
│           └── glacial_synthesis
│               └── ...
├── tsconfig.json
└── uv.lock

Tooling

Important tooling that is not language-specific:

  • just is used as a command runner
  • nushell is used as a shell and for helper scripts
  • nix is used for reproducible environments
  • crush is used for AI-assisted coding
  • prettier is used for formatting miscellaneous files
  • cspell is used for spell-checking

Important tooling that is javascript-specific:

  • nodejs version 24 is used as the runtime
  • pnpm version 9 is used as the package manager
  • biome is used to format, lint and provide LSP functionality for javascript-related files
  • typescript is used for type-checking and LSP functionality
  • tsx is used as a REPL

Important tooling that is python-specific:

  • python version 3.11 is used as the runtime
  • uv is used as the package manager
  • ruff is used as a formatter and linter
  • mypy is used for type-checking
  • pylsp is used for LSP functionality

Libraries

Important libraries that are javascript-specific:

  • strudel is used for a web-based live-coding environment

Important libraries that are python-specific: