A music description language.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.cargo
doc
examples
memol
memol_cli
memol_gui
memol_vst
.gitignore
.gitmodules
.travis.yml
Cargo.toml
license.txt
readme.adoc

readme.adoc

memol - a music description language

Build Status

memol is a music description language which features:

Well-structured

Essentially, a score is described as recursive compositions of two constructs: group "[…​]" and chord "(…​)".

Orthogonal

Some musical elements like scale, chord and backing pattern can be described independently and composite them each other. "with" syntax enables (some of) them in a unified form. Expressions (note velocity, control change, …​) are also described separately.

Focused on musical composition

Language design and implementation help trial-and-error of musical composition well (in the future). Unlike score typesetting languages, memol also focused on describing time-dependent value used for MIDI control changes, etc.

Example

score $out.0() = { (c E G) | (c E G [B C b]) (c E F A) }
sample