# Install alda with Homebrew, apk, Nix

Music programming language for musicians. Version 2.4.3 via Homebrew; verified 2026-05-13.

## Install

```sh
sudo av install brew:alda
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install alda
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add alda
```

  Evidence: Alpine Linux edge package indexes: alda from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz

- Nix (92%):

```sh
nix profile install nixpkgs#alda
```

  Evidence: nixpkgs package indexes: pkgs/by-name/al/alda/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:alda
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/alda>
- **Version:** 2.4.3
- **Source summary:** Music programming language for musicians
- **Homepage:** <https://alda.io>
- **Repository:** <https://github.com/alda-lang/alda>
- **Upstream docs:** <https://alda.io/>
- **License:** EPL-2.0
- **Source archive:** <https://github.com/alda-lang/alda/archive/refs/tags/release-2.4.3.tar.gz>
- **Last updated:** 2026-05-13T08:18:19Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- alda (cli)
- alda-player (cli)
- alda (alias)
- alda-player (alias)

## Dependencies

- openjdk

## Build dependencies

- go
- gradle@8

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 2.4.3
- Package-manager updated: 2026-05-13
- Local data: ok
- Upstream repository: https://github.com/alda-lang/alda
- info: No cached GitHub release or tag data was available.
## Project history and usage

Alda is a text-based music programming language and command-line toolchain for writing, playing, and experimenting with musical scores from plain text. Its niche is the overlap between music notation, live coding, algorithmic composition, and Unix-style text workflows.

### Project history

The project is presented by its maintainers as a language for composing and playing music using only a text editor and the command line. The official site and README emphasize a markup-like syntax, General MIDI playback, examples, and an interactive REPL, positioning Alda as a music language that is approachable to musicians and still scriptable enough for programmers.

Alda's repository and site carry a 2012-2026 copyright notice for Dave Yarwood and contributors. The modern codebase is split into an `alda` client and `alda-player` playback process. Alda 2.0.0, released in June 2021, was a from-scratch rewrite in Go and Kotlin after the first generation had been mostly Clojure with a small Java client. The migration guide says Alda 2 kept the language mostly compatible while removing inline Clojure evaluation and introducing the separate player process.

Subsequent Alda 2 releases show ongoing package-maintainer concerns: player-process recovery, log4j security updates, `alda doctor`, MusicXML import, deterministic MIDI channel assignment, ARM Linux support, and memory reductions for lower-RAM devices such as Raspberry Pi.

### Adoption history

Alda is distributed through several package managers in the supplied package facts, including Homebrew, apk, and Nix. Its official README points users to the website for installation, while also documenting source builds for the Go client and Kotlin/Java player.

The project also maintains community surfaces for package users rather than only library consumers: official docs, examples, a cheat sheet, a Slack group, a subreddit, and a REPL workflow. That makes it recognizable in CLI package indexes as a real end-user tool, not merely a language experiment.

### How it is used

Typical use is `alda play --file score.alda`, `alda play --code "piano: c6 d12 e6 g12~4"`, or `alda repl` for interactive composition. Scores are text files, so users naturally keep them in version control, edit them with ordinary editors, and run them from scripts.

Alda's more advanced usage includes programmatic composition, MIDI export/import workflows, and multi-process playback. In Alda 2, the CLI starts `alda-player` as needed and provides diagnostic commands such as `alda doctor` to help with audio and player-process setup.

### Why package nerds care

Alda is package-nerd interesting because it packages a whole creative runtime as a pair of CLI executables rather than as a GUI application. It depends on the host audio stack, JVM/player behavior, architecture-specific binaries, and language-level compatibility, all of which show up in changelog entries that matter to distro maintainers.

It also demonstrates the classic text-tool value proposition: a domain that is normally graphical, music notation and playback, becomes inspectable, diffable, scriptable, and automatable.

### Timeline

- 2012: Project copyright period begins in official site and README notices.
- 2015: Official docs link Dave Yarwood's text-based music composition manifesto.
- 2021-06-30: Alda 2.0.0 released as a Go and Kotlin rewrite.
- 2023-05-07: Alda 2.2.5 added MusicXML import.
- 2024-06-22: Alda 2.3.0 reworked MIDI channel assignment.
- 2025-09-19: Alda 2.3.3 added broader Linux ARM support.
- 2026-05-12: Alda 2.4.3 reduced player memory usage.

### Related projects

- Alda's own migration guide identifies Alda 1 as the mostly Clojure predecessor and `alda-clj` as a Clojure DSL for algorithmic music that preserves part of the earlier Clojure-oriented workflow.
- The docs connect Alda to General MIDI, MusicXML import, editor plugins, and the nREPL-inspired REPL client/server model.

### Sources

- <https://alda.io/>
- <https://github.com/alda-lang/alda/blob/master/CHANGELOG.md>
- <https://github.com/alda-lang/alda/blob/master/README.md>
- <https://github.com/alda-lang/alda/blob/master/doc/alda-2-migration-guide.md>
- <https://github.com/alda-lang/alda/blob/master/doc/index.md>
- source_facts.package-manager


## Security Notes

generalized runtime or code generation signal.

- **Geiger risk:** yellow / medium
- generalized runtime or code generation signal

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** alda
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Nix - alda: normalized package name match | nixpkgs package indexes: pkgs/by-name/al/alda/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - alda - 2.3.2-r10: normalized package name match | Alpine Linux edge package indexes: alda from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Music programming language for musicians | https://github.com/alda-lang/alda


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [openjdk](https://www.automicvault.com/pkg/brew/openjdk/) - Runtime dependency declared by Homebrew.
- [go](https://www.automicvault.com/pkg/brew/go/) - Build dependency declared by Homebrew.
- [chuck](https://www.automicvault.com/pkg/brew/chuck/) - Shares av.db curated category or tags: cli, language-runtime, music, programming-language.
- [agda](https://www.automicvault.com/pkg/brew/agda/) - Shares av.db curated category or tags: cli, language-runtime, programming-language.
- [algol68g](https://www.automicvault.com/pkg/brew/algol68g/) - Shares av.db curated category or tags: cli, language-runtime, programming-language.
- [ats2-postiats](https://www.automicvault.com/pkg/brew/ats2-postiats/) - Shares av.db curated category or tags: cli, language-runtime, programming-language.
- [ballerina](https://www.automicvault.com/pkg/brew/ballerina/) - Shares av.db curated category or tags: cli, language-runtime, programming-language.
- [befunge93](https://www.automicvault.com/pkg/brew/befunge93/) - Shares av.db curated category or tags: cli, language-runtime, programming-language.
- [brainfuck](https://www.automicvault.com/pkg/brew/brainfuck/) - Shares av.db curated category or tags: cli, language-runtime, programming-language.
- [c3c](https://www.automicvault.com/pkg/brew/c3c/) - Shares av.db curated category or tags: cli, language-runtime, programming-language.
- [clojure](https://www.automicvault.com/pkg/brew/clojure/) - Local package facts share a topical domain. Shared terms: cli, language, language-runtime, openjdk, programming.
- [clojurescript](https://www.automicvault.com/pkg/brew/clojurescript/) - Local package facts share a topical domain. Shared terms: cli, language, language-runtime, openjdk, programming.

## Combined YAML source

View the package source record on GitHub. [combined/alda.yml](https://github.com/automic-vault/db/blob/main/combined/alda.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
