Ludwig Documentation

Ludwig is a lazy functional logic programming language designed to compose and play music. Melodies played with one hand can be combined non-deterministically to form ever more elaborate music.

Get Started

Powered by the Web™️

Ludwig uses the excellent Tone.js internally and can deployed as part of your webapplication as minified JS library.

Non-determinism

Ludwig computations can have multiple values at the same time which translates to natural ways of composing melodies.

Simplicity

Ludwig is made up of relatively few orthogonal language constructs. A programmer could learn the entire language in one setting.