________________________________
/ o oooo ooo oooo o o o /\
/ oo ooo oo oooo o o o / /
/ _________________________ / /
/ // / // /// // /// // /// / / / /
/___ //////////////////////////_/ /
\____\________________________\_\/
~ alda ~
Installation | Docs | Changelog | Contributing
New to Alda? You may be interested in reading this blog post as an introduction.
Inspired by other music/audio programming languages such as PPMCK, LilyPond and ChucK, Alda aims to be a powerful and flexible programming language for the musician who wants to easily compose and generate music on the fly, using naught but a text editor. Alda is designed in a way that equally favors aesthetics, flexibility and ease of use, with (eventual) support for the text-based creation of all manner of music: classical, popular, chiptune, electroacoustic, and more!
- Easy to understand, markup-like syntax
- Perfect for musicians who don't know how to program and programmers who don't know how to music
- Represent scores as text files and play them back with the
alda
command-line tool - Interactive REPL lets you type Alda code and hear the results in real time
- Underlying Clojure DSL allows you to use Alda directly in your Clojure project.
- Inline Clojure code allows you to hack the Gibson and write scores programmatically
- Create MIDI music using any of the instruments in the General MIDI Sound Set
- Define and use waveform synthesis instruments
- Import MIDI files
- Export to MusicXML for inter-operability with other music software
- A more robust REPL, tailor-made for editing scores interactively
- A plugin system allowing users to define custom/unofficial syntax in Alda scores
- An "alda daemon" with server/client semantics
If you're a developer and you'd like to help, come on in -- the water's fine!
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.
More information can be found in the docs.
-
Install Boot.
-
Run this command to place the
alda
script in your$PATH
:curl https://raw.githubusercontent.com/alda-lang/alda/master/bin/alda -o /usr/local/bin/alda && chmod +x /usr/local/bin/alda
See the docs.
For the best experience when editing Alda score files, install the Alda file-type plugin for your editor of choice.
NOTE: The first time you run one of these tasks, you may need to wait a minute for the FluidR3 MIDI soundfont dependency (~141 MB) to download. Alda uses this soundfont in order to make your JVM's MIDI instruments sound a lot nicer. If you'd prefer to skip this step and use your JVM's default soundfont instead, include the
--stock
flag (i.e.play --stock --file ...
).
To play a file:
alda play --file examples/bach_cello_suite_no_1.alda
To play arbitrary code:
alda play --code "piano: c6 d12 e6 g12~4"
To start an Alda REPL:
alda repl
Alda's documentation can be found here.
PRs welcome! See: CONTRIBUTING.md
👏 👏 👏 A big shout-out to our contributors! 👏 👏 👏
Sign up to the universe of Clojure chat @ http://clojurians.net/, then join us on #alda
Copyright © 2012-2015 Dave Yarwood et al
Distributed under the Eclipse Public License version 1.0.