πΆ 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
- βΆοΈ Playground
- π Documentation
- π§© VSCode Extension
- π¨ Prettier Plugin
- π Changelog
- π‘ Examples
- π Project Website
- π¦ Devalang CLI on npm
β±οΈ Try it now !
You can also have a look at the Playground to try Devalang directly in your browser
# Install Devalang CLI globally
# Create a new Devalang 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
# Play the Devalang file with watch mode
# LIVE mode (repeat the playback + watch mode)
π 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,checkandplaycommands - π 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