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 for a brief history and rationale.)
- 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
aldacommand-line tool. - Interactive REPL lets you enter Alda code and hear the results in real time.
- Supports writing music programmatically (for algorithmic composition, live coding, etc.)
- Create MIDI music using any of the instruments in the General MIDI Sound Set
If you'd like to help, come on in -- the water's fine!
- Run Alda in the browser
- Define and use waveform synthesis instruments
- Export to MusicXML for inter-operability with other music software
- Improve Raspberry Pi support
See the official website for instructions to install the latest release of Alda.
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/buildThe 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.
For an overview of available commands and options:
alda --help
To play a file containing Alda code:
alda play --file examples/bach_cello_suite_no_1.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
Alda's documentation can be found here.
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 in the future development of Alda.
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!
Copyright © 2012-2025 Dave Yarwood et al
Distributed under the Eclipse Public License version 2.0.