devalang 0.0.1-alpha.13

Write music like code. Devalang is a domain-specific language (DSL) for sound designers and music hackers. Compose, automate, and control sound β€” in plain text.
Documentation

Rust TypeScript Node.js

Project Status Version License: MIT Platform

npm crates

VSCode Extension

🎢 Devalang

Compose music with code β€” structured, expressive, and fast.

Devalang is a tiny domain-specific language (DSL) for music makers, sound designers, and audio hackers. Compose loops, control samples, render and play audio β€” all in clean, readable text.

🦊 Whether you're building a track, shaping textures, or performing live, Devalang helps you think in rhythms. It’s designed to be simple, expressive, and fast β€” because your ideas shouldn’t wait.

From studio sketches to live sets, Devalang gives you rhythmic control β€” with the elegance of code.

🚧 v0.0.1-alpha.13 Notice 🚧

NEW: Devalang is available in your browser at playground.devalang.com !

NEW: Online documentation is now available at docs.devalang.com

Includes synthesis, playback, and rendering features, but is still in early development.

Currently, Devalang CLI is only available for Windows.
Linux and macOS binaries will be added in future releases via cross-platform builds.

πŸ“š Quick Access

⏱️ Try it now !

You can also have a look at the Playground to try Devalang directly in your browser

# Install Devalang CLI globally

npm install -g @devaloop/devalang


# Create a new Devalang project

devalang init --name my-project --template minimal

cd my-project

Create a new Devalang file src/index.deva in the project directory:

# src/index.deva

group myLead:
    let mySynth = synth sine

    mySynth -> note(C4, { duration: 400 })
    mySynth -> note(G4, { duration: 600 })

# Play the lead

call myLead

And the best part ? You can play it directly from the command line:

# Play the Devalang file

devalang play


# Play the Devalang file with watch mode

devalang play --watch


# LIVE mode (repeat the playback + watch mode)

devalang play --repeat

πŸŽ‰ You can now hear your Devalang code in action!

For more examples, check out the examples directory.

❓ Why Devalang?

  • 🎹 Prototype audio ideas without opening a DAW
  • πŸ’» Integrate sound into code-based workflows
  • πŸŽ›οΈ Control audio parameters through readable syntax
  • πŸ§ͺ Build musical logic with variables and conditions

Producer, coder, or both β€” Devalang gives you musical structure, instantly.

πŸš€ Features

  • 🎡 Audio Engine: Integrated audio playback and rendering
  • 🧩 Module system for importing and exporting variables between files
  • πŸ“œ Structured AST generation for debugging and future compilation
  • πŸ”’ Basic data types: strings, numbers, booleans, maps, arrays
  • πŸ‘οΈ Watch mode for build, check and play commands
  • πŸ“‚ Project templates for quick setup
  • πŸŽ›οΈ Custom samples: easily load and trigger your own audio files
  • πŸ”„ Looping and grouping: create complex patterns with ease

πŸ“„ Documentation

Please refer to the online documentation for detailed information on syntax, features, and usage examples.

🧯 Known issues

  • No smart modules yet, all groups, variables, and samples must be explicitly imported where used
  • No support yet for cross-platform builds (Linux, macOS)

πŸ§ͺ Roadmap Highlights

For more info, see docs/ROADMAP.md

  • ⏳ Other statements (e.g function, pattern, ...)
  • ⏳ Cross-platform support (Linux, macOS)
  • ⏳ More built-in instruments (e.g. snare, hi-hat, etc.)

πŸ›‘οΈ License

MIT β€” see LICENSE

🀝 Contributing

Contributions, bug reports and suggestions are welcome !
Feel free to open an issue or submit a pull request.

πŸ“’ Contact

πŸ“§ contact@devaloop.com