Compose and play back music by writing note sequences in a text file without a digital audio workstation or notation software
Experiment with live coding music in the interactive REPL, hearing notes play instantly as you type
Generate algorithmic compositions by using loops and variables in Alda code to produce music programmatically
Access all 128 General MIDI instruments in text-based scores without setting up any sound library
| alda-lang/alda | goss-org/goss | stefanprodan/podinfo | |
|---|---|---|---|
| Stars | 5,897 | 5,890 | 5,904 |
| Language | Go | Go | Go |
| Setup difficulty | easy | easy | hard |
| Complexity | 2/5 | 2/5 | 4/5 |
| Audience | general | ops devops | ops devops |
Figures from each repo's GitHub metadata at analysis time.
Installation packages are available on the official website, building from source requires separate build steps for the Go client and the Kotlin player.
Alda is a programming language for writing music. Instead of using a graphical notation program or a digital audio workstation, you write music as plain text in a file and then run a command to play it back. The syntax is designed to be readable even for people without a programming background. A piece of music in Alda is called a score. You specify an instrument (like "piano"), then write notes using letter names, numbers for duration, and symbols for things like octave changes and ties. The tool reads the file and plays it through MIDI, which is a standard format for computer-generated instrument sounds. Alda comes with access to all instruments in the General MIDI Sound Set. Beyond playing back static files, Alda includes an interactive mode called the REPL, where you type Alda code and hear the notes play immediately. It also supports writing music programmatically, so you can use loops, variables, and logic to generate compositions algorithmically or to experiment with live coding. Alda is built from two components: a client written in Go (which handles the command-line interface and sends instructions) and a player written in Kotlin and Java (which handles audio playback). Installation packages are available on the official website. Building from source requires cloning the repository and running build scripts for each component separately. The project is maintained by Dave Yarwood and distributed under the Eclipse Public License version 2.0. There is a Slack community and a Reddit community for users who want to share scores or get help.
A programming language for writing and playing back music as plain text files, using simple note letter syntax and MIDI for instrument sounds, with an interactive live-coding mode included.
Mainly Go. The stack also includes Go, Kotlin, Java.
Free to use and modify, changes to covered files must be shared under the same license, but combining with other code has relaxed terms under this weak copyleft license.
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly general.
This repo across BitVibe Labs
Verify against the repo before relying on details.