________________________________
/ o oooo ooo oooo o o o /\
/ oo ooo oo oooo o o o / /
/ _________________________ / /
/ // / // /// // /// // /// / / / /
/___ //////////////////////////_/ /
\____\________________________\_\/
~ alda ~
a music programming language for musicians
Installation | Docs | Changelog | Contributing
composers chatting
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!
Features
- 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
TODO
- 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
If you're a developer and you'd like to help, come on in -- the water's fine!
Syntax example
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.
Installation
You must have Java 7+ 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
alda
. -
Make the file executable:
chmod +x alda
-
Make
alda
available on your$PATH
:Using
/usr/local/bin
here as an example; you can use any directory on your$PATH
.mv alda /usr/local/bin
Windows
-
Go to the latest release page and download
alda.exe
. -
Make the file executable:
- Go to your downloads folder, right click
alda.exe
to open up its file properties, and clickunblock
- Go to your downloads folder, right click
-
Copy
alda.exe
to a location that makes sense for you. If you follow standard Windows conventions, this means creating a folder calledAlda
in yourProgram Files (x86)
folder, and then moving thealda.exe
file into it. -
Make
alda
available on yourPATH
:- Go to the Windows
System
control panel option, selectAdvanced System Settings
and then click onEnvironment Variables
, then edit thePATH
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 placedalda.exe
in a different folder, you will need to use that folder's full path name in your edit, instead.
- Go to the Windows
You will now be able to run Alda from anywhere in the command prompt by typing alda
, but note that command prompts that were already open will need to be restarted before they will pick up on the new PATH value.
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:
scripts/install-fluidr3
This will download FluidR3 and replace ~/.gervill/soundbank-emg.sf2
(your JVM's default soundfont) with it.
Windows
To replace the default soundfont on a Windows OS:
- Locate your Java Runtime (JRE) folder and navigate into the
lib
folder. - Make a new folder named
audio
. - Copy any
.sf2
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! :)
Demo
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
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 an overview of what we're working on, take a look at our waffle.io board.
For more details on how you can contribute to Alda, see CONTRIBUTING.md.
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-2016 Dave Yarwood et al
Distributed under the Eclipse Public License version 1.0.