Need help with alda?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

alda-lang
3.8K Stars 221 Forks Eclipse Public License 1.0 883 Commits 32 Opened issues

Description

A music programming language for musicians. :notes:

Services available

!
?

Need anything else?

Contributors list

# 46,293
Clojure
Neovim
curl
racket-...
714 commits
# 102,796
Clojure
Clojure...
Shell
project...
26 commits
# 55,815
Qt
emacs-m...
Common ...
Lisp
7 commits
# 396,425
Clojure
Shell
4 commits
# 313,922
buckles...
Shell
PureScr...
flowtyp...
4 commits
# 35,549
Clojure
messeng...
re-fram...
React N...
3 commits
# 389,371
Clojure
Shell
Java
sendgri...
3 commits
# 30,062
clean-c...
React
hoc
jQuery
3 commits
# 111,714
Clojure
Shell
Perl
2 commits
# 462,370
Clojure
Shell
2 commits
# 451,575
Clojure
Shell
Groovy
JavaFX
2 commits
# 405,083
Clojure
Shell
Securit...
2 commits
# 457,840
Clojure
Shell
2 commits
# 107,250
repl
css-fra...
nim-lan...
nim-lan...
2 commits
# 50,535
apache-...
IPFS
Svelte
autohot...
1 commit
# 524,900
Clojure
Shell
1 commit
# 260,281
Amazon ...
uva
HTML
Shell
1 commit
# 50,453
Clojure
Clojure...
boot
Shell
1 commit
# 413,928
Clojure
Shell
CSS
tla
1 commit
# 355,288
Clojure
aws-s3
netlify
hugo
1 commit

alda logo

Installation | Docs | Changelog | Contributing

Join us on Slack! composers chatting

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.)

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.
  • Supports writing music programmatically (for algorithmic composition, live coding, etc.)
  • Create MIDI music using any of the instruments in the General MIDI Sound Set

TODO

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

Installation

See the official website for instructions to install the latest release of Alda.

Demo

First start the Alda server (this may take a minute):

alda up

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 Alda REPL:

alda repl

Documentation

Alda's documentation can be found here.

Contributing

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

The Alda project is composed of a number of subprojects, each of which has its own GitHub repository within the alda-lang organization.

For a top-level overview of things we're talking about and working on across all of the subprojects, check out the Alda GitHub Project board.

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.

Support, Discussion, Comaraderie

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-2021 Dave Yarwood et al

Distributed under the Eclipse Public License version 1.0.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.