awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
alda-lang avatar

alda-lang/alda

0
View on GitHub↗
5,906 stars·311 forks·Go·EPL-2.0·9 viewsalda.io↗

Alda

Alda is a text-based music programming language and command-line tool for composing, playing, and live-coding musical scores. It functions as a MIDI composition engine that renders plain-text scores into audio output, and as a live coding environment where code entered in a read-eval-print loop produces real-time playback without restarting the interpreter.

The system distinguishes itself through an event-driven playback engine that schedules timed note events, an instrument-attribute inheritance model that cascades properties like volume and tempo from global defaults to individual parts, and marker-based synchronization that aligns multiple instrument parts by naming time points. It also supports octave-shift operator notation for pitch changes, variable-based pattern reuse for storing and transforming musical motifs, and MIDI-based audio rendering using standard instrument sound sets.

The platform covers the full scope of music composition through text-based score authoring, including note pitch and duration specification, chord and polyphonic voice construction, key signature application, multi-voice score structuring, and per-instrument attribute adjustment for tempo, dynamics, and articulation. It enables algorithmic music generation, reusable pattern definition, and file-based or command-line score playback.

Features

  • Algorithmic Music Composition - Creates scores programmatically by treating music as data for generative or procedural composition.
  • Text-Based Score Programming - Writes musical scores using a text-based programming language for version control and repeatable playback.
  • Multi-Voice Score Organization - Organizes music into separate voices and parts that play simultaneously with independent settings.
  • MIDI Music Composition Tools - Renders text scores to MIDI output using standard instrument sets for playback or export.
  • Command-Line Music Players - Executes composed scores directly in the terminal to produce audio output without a graphical interface.
  • File-Based Score Players - Runs text files containing music code to hear the full composition performed from the command line.
  • Interactive REPLs - Provides an interactive REPL for entering music code and hearing results in real time without leaving the editor.
  • Instrument Playback Controls - Modifies per-instrument properties like volume, quantization, and tempo to shape individual part sounds.
  • Marker-Based Synchronization - Aligns multiple instrument parts by naming time points and jumping between them for synchronized playback.
  • Multi-Instrument Score Synchronizers - Writes separate instrument parts with independent attributes and markers to coordinate simultaneous playback.
  • Instrument Track Assignments - Assigns specific synthesizer voices to individual audio tracks for simultaneous playback.
  • Live Coding Music Performance - Enables live coding music by entering code in a read-eval-print loop and hearing results in real time.
  • Macro Language Music Notation - Provides a text-based language for composing and playing back musical scores from the command line or REPL.
  • Text-Based Score Editors - Composes music as plain text with syntax for notes, rests, chords, and instruments for version control and repeatable playback.
  • Fixed Note Durations - Specifies note lengths as numbers and uses rests to create silence between notes in a score.
  • Text-Based Score Editors - Represents musical scores as plain text files parsed into an abstract syntax tree for interpretation and playback.
  • Key Signature Definitions - Sets major, minor, modal, or custom key signatures that affect pitch interpretation across the score.
  • Note Definition with Defaults - Defines notes by letter name, octave, accidental, and length with defaults that persist until changed.
  • Octave Shift Operators - Changes note pitch by shifting octaves up or down using angle bracket operators that persist until reset.
  • Pitch and Duration Specification - Specifies notes by octave, accidental, and length using standard or custom time values.
  • Chord and Voice Construction - Constructs chords and polyphonic voices by playing multiple notes simultaneously on one instrument.
  • Reusable Musical Patterns - Stores note sequences, chords, or motifs in variables and repeats them with or without variations.
  • Playback Speed and Volume Controls - Adjusts playback speed and volume globally or per instrument part using dynamic markings.
  • MIDI-to-Audio Synthesizers - Renders compositions to audio by generating MIDI events and sending them to a software synthesizer.
  • MIDI Output Controls - Renders compositions to MIDI with standard sound sets and adjusts per-instrument properties like volume and tempo.
  • Music Score Marker Synchronizers - Aligns multiple instrument parts by naming time points and jumping between them for synchronized playback.
  • Multi-Part Score Coordination - Coordinates multiple instrument parts to play simultaneously with global attributes and markers.
  • Interactive Read-Eval-Print Loops - Provides an interactive read-eval-print loop for real-time music code evaluation and playback.
  • Domain Specific Languages - Provides a domain-specific language for writing musical scores as text and playing them back from the command line.
  • Music Playback Schedulers - Schedules timed note events from parsed scores into real-time audio output for playback.
  • Tempo and Dynamics Defaults - Applies global tempo and dynamics settings that affect all instruments simultaneously in a score.
  • Music Instrument Attribute Cascades - Cascades per-instrument properties like volume and tempo from global defaults to individual parts.
  • Music Pattern Variables - Stores reusable musical patterns in named variables for reference and transformation within scores.
  • Articulation Percentage Controls - Adjusts note length as a percentage of its duration to create staccato or legato articulation effects.
  • Music Octave Shift Operators - Changes note pitch by shifting octaves up or down using persistent angle bracket operators.
  • Go Projects - Listed in the “Go Projects” section of the Awesome For Beginners awesome list.
  • Music Programming - Music programming language designed for musicians.
  • Audio And Music - Music programming language for Clojure.

Star history

Star history chart for alda-lang/aldaStar history chart for alda-lang/alda

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does alda-lang/alda do?

Alda is a text-based music programming language and command-line tool for composing, playing, and live-coding musical scores. It functions as a MIDI composition engine that renders plain-text scores into audio output, and as a live coding environment where code entered in a read-eval-print loop produces real-time playback without restarting the interpreter.

What are the main features of alda-lang/alda?

The main features of alda-lang/alda are: Algorithmic Music Composition, Text-Based Score Programming, Multi-Voice Score Organization, MIDI Music Composition Tools, Command-Line Music Players, File-Based Score Players, Interactive REPLs, Instrument Playback Controls.

What are some open-source alternatives to alda-lang/alda?

Open-source alternatives to alda-lang/alda include: samaaron/sonic-pi — Sonic Pi is a live coding music environment and algorithmic composition tool. It functions as a Ruby-based audio… lmms/lmms — LMMS is a digital audio workstation and MIDI sequencer designed for composing, arranging, and mixing music. It… hundredrabbits/orca — Orca is a grid-based live coding sequencer that uses single-letter operators placed on a two-dimensional grid to… tonejs/tone.js — Tone.js is a web-based audio synthesizer and framework for the Web Audio API. It provides a digital signal processing… bespokesynth/bespokesynth — BespokeSynth is a modular synthesizer environment that combines a node-based audio graph routing system with a live… sonic-pi-net/sonic-pi — Sonic Pi is a live coding music environment and algorithmic composition tool. It functions as a Ruby-based audio…

Open-source alternatives to Alda

Similar open-source projects, ranked by how many features they share with Alda.
  • samaaron/sonic-pisamaaron avatar

    samaaron/sonic-pi

    11,867View on GitHub↗

    Sonic Pi is a live coding music environment and algorithmic composition tool. It functions as a Ruby-based audio engine that allows users to compose and perform audio in real-time through a programmable interface. The software serves as interactive music education software, designed to teach computer science fundamentals and introductory programming concepts through the immediate feedback of sound generation. The system provides capabilities for real-time audio synthesis and the creation of complex musical patterns and sequences. It enables the generation of audio and the execution of music

    C++
    View on GitHub↗11,867
  • lmms/lmmsLMMS avatar

    LMMS/lmms

    10,005View on GitHub↗

    LMMS is a digital audio workstation and MIDI sequencer designed for composing, arranging, and mixing music. It functions as a comprehensive production environment that integrates a MIDI sequencer, a sample-based synthesizer, and an audio mixing console. The project distinguishes itself through a versatile synthesis engine that includes additive synthesis, wavetable generation, and emulations of vintage hardware such as NES audio and FM chips. It also serves as a VST plugin host, allowing for the integration of third-party virtual instruments and audio effects via a standardized interface. Be

    C++dawhacktoberfestmidi
    View on GitHub↗10,005
  • hundredrabbits/orcahundredrabbits avatar

    hundredrabbits/Orca

    4,952View on GitHub↗

    Orca is a grid-based live coding sequencer that uses single-letter operators placed on a two-dimensional grid to generate procedural music patterns. Each operator encodes its function in a single ASCII character, with column position determining timing and rows defining data flow paths. Execution advances frame-by-frame, and clock operators produce periodic bang events to drive the sequence forward. The system acts as a MIDI, OSC, and UDP controller, sending note events, control changes, and messages over configurable ports to control synthesizers and audio software in real time. It supports

    JavaScriptesoteric-languagelivecodingmidi
    View on GitHub↗4,952
  • tonejs/tone.jsTonejs avatar

    Tonejs/Tone.js

    14,657View on GitHub↗

    Tone.js is a web-based audio synthesizer and framework for the Web Audio API. It provides a digital signal processing toolkit, a musical timing engine, and a library for MIDI processing to create interactive music and synthesizers directly in the browser. The project features a musical timing engine that coordinates audio events and loops using BPM-relative timing and a global transport. It includes a MIDI processing library capable of converting binary MIDI files into JSON format to trigger sounds and control audio parameters in real time. Its capabilities cover polyphonic sound synthesis,

    TypeScript
    View on GitHub↗14,657
See all 30 alternatives to Alda→