by alda-lang

alda-lang / alda

A music programming language for musicians. :notes:

3.7K Stars 214 Forks Last release: 27 days ago (1.4.3) Eclipse Public License 1.0 866 Commits 137 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

alda logo

Installation | Docs | Changelog | Contributing

Join us on Slack! composers chatting

New to Alda? You may be interested in reading this blog post as an introduction.

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

  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.


  • 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
    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


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


You must have Java 8+ installed on your system in order to run Alda.

(Chances are, you already have a recent enough version of Java installed.)

Mac OS X / Linux

  • Go to the latest release page and download

  • Make the file executable:

    chmod +x alda
  • Make

    available on your


here as an example; you can use any directory on your
  mv alda /usr/local/bin


  • Go to the latest release page and download

  • Make the file executable:

    • Go to your downloads folder, right click
      to open up its file properties, and click
  • Copy

    to a location that makes sense for you. If you follow standard Windows conventions, this means creating a folder called
    in your
    Program Files (x86)
    folder, and then moving the
    file into it.
  • Make

    available on your
    • Go to the Windows
      Control Panel option, select
      Advanced System Settings
      and then click on
      Environment Variables
      , then edit the
      variable (either specifically for your user account or for the system in general) and add
      ;C:\Program Files (x86)\Alda
      to the end. Save this edit. Note that if you placed
      in a different folder, you will need to use that folder's full path name in your edit, instead.

You will now be able to run Alda from anywhere in the command prompt by typing

, but note that command prompts that were already open will need to be restarted before they will pick up on the new PATH value.


is available on nixpkgs:
nix-shell -p alda

Updating Alda

Once you have Alda installed, you can update to the latest version at any time by running:

alda update

MIDI soundfonts

Default JVM soundfonts usually are of low quality. We recommend installing a good freeware soundfont like FluidR3 to make your MIDI instruments sound a lot nicer.

Mac OS X / Linux

For your convenience, there is a script in this repo that will install the FluidR3 soundfont for Mac and Linux users.

To install FluidR3 on your Mac or Linux system, clone this repo and run:


This will download FluidR3 and replace

(your JVM's default soundfont) with it.


Replacing the JVM soundfont on Windows

To replace the default soundfont on a Windows OS:

  1. Locate your Java Runtime (JRE) folder and navigate into the
    • If you have JDK 8 or earlier installed, locate your JDK folder instead and navigate into the
  2. Make a new folder named
  3. Copy any
    file into this folder.

A variety of popular freeware soundfonts, including FluidR3, are available for download here.

Editor Plugins

For the best experience when editing Alda score files, install the Alda file-type plugin for your editor of choice.

Don't see a plugin for your favorite editor? Write your own and open a pull request to add it here! :)


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


Alda's documentation can be found here.


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

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!


Copyright © 2012-2020 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.