alda-lang
alda
Go

A music programming language for musicians. :notes:

Last updated Jul 6, 2026
5.9k
Stars
310
Forks
9
Issues
+6
Stars/day
Attention Score
89
Language breakdown
No language data available.
Files click to expand
README

alda logo

Installation | Docs | Changelog | Contributing



Join us on Slack!

Alda is a text-based programming language for music composition. It allows you to compose and play back music using only your text editor and the command line.

piano:
  o3
  g8 a b > c d e f+ g | a b > c d e f+ g4
  g8 f+ e d c < b a g | f+ e d c < b a g4
  << g1/>g/>g/b/>d/g
For more examples, see these example scores.

The language's design equally favors aesthetics, flexibility and ease of use.

(Why compose music this way instead of in a graphical sheet music notation program? See [this blog post][alda-blog-post] for a brief history and rationale.)

[alda-blog-post]: https://blog.djy.io/alda-a-manifesto-and-gentle-introduction/

Features

  • Easy to understand, markup-like syntax.
  • Designed for musicians who don't know how to program, as well as programmers
who don't know how to music.
  • A score is a text file that can be played using the alda command-line tool.
  • Interactive REPL lets you enter Alda code and hear the
results in real time. programmatically (for algorithmic composition, live coding, etc.)
  • Create MIDI music using any of the instruments in the [General MIDI Sound
Set][gm-sound-set]

[gm-sound-set]: http://www.midi.org/techspecs/gm1sound.php

Planned

If you'd like to help, come on in -- the water's fine!

Installation

See [the official website][alda-install] for instructions to install the latest release of Alda.

[alda-install]: https://alda.io/install

Building from source

Another option is to build Alda from source. Alda consists of two components: the client (written in Go) and the player (written in Kotlin/Java).

# Clone the repo
git clone https://github.com/alda-lang/alda.git
cd alda

Build the client and player executables

client/bin/build player/bin/build

The executables are built in client/target and player/target, and the output of the build commands shows you the path to the built executables, which include builds for various OS/arch combinations.

For more details, see the READMEs in the client and player directories.

Demo

For an overview of available commands and options:

alda --help

To play a file containing Alda code:

alda play --file examples/bachcellosuiteno1.alda

To play arbitrary code at the command line:

alda play --code "piano: c6 d12 e6 g12~4"

To start an interactive Alda REPL session:

alda repl

Documentation

Alda's documentation can be found here.

Contributing

We'd love your help -- Pull Requests welcome!

For more details on how you can contribute to Alda, see CONTRIBUTING.md.

Another way you can contribute is by [sponsoring Dave][gh-sponsor] in the
future development of Alda.

[gh-sponsor]: https://github.com/sponsors/daveyarwood

Support, Discussion, Camaraderie

Slack: Joining the Alda Slack group is quick and painless. Come say hi!

Reddit: Subscribe to the /r/alda subreddit, where you can discuss all things Alda and share your Alda scores!

License

Copyright © 2012-2026 Dave Yarwood et al

Distributed under the Eclipse Public License version 2.0.

🔗 More in this category

© 2026 GitRepoTrend · alda-lang/alda · Updated daily from GitHub