The proposed workshop is about the usage of probabilistic methods in live coding, as exemplified by my domain specific language (DSL) called “Mégra” (https://github.com/the-drunk-coder/megra).

The Mégra DSL is an ongoing project that started a while ago out of frustration over the static nature of producing music with digital audio workstations, where the composed piece sounds exactly the same every time you hit play.

Having discovered the creation of DSLs as a means of musical expression, after two predecessors written in Python, a programming environment based on Common Lisp evolved that provides a concise syntax for musical event generators based on variable-order Markov chains.

While the early versions rather dealt with the manual creation of those generators, the current iterations shifted toward the programmatic creation and manipulation of more complex event generators.

The Mégra language deviates from some trends that are commonly found in DSLs for in live coding. It doesn’t provide a pattern syntax, nor does it impose a grid or static tempo. Time is generally notated in milliseconds, thus retaining a good lot of time control (even though means of synchronization exist). As a result, it focuses on non- repetitive structures with an inherent indeterminism (even though repetition might occasionally occur).

Other concepts, like the organization of samples and synthesizers, are variations of what is found in other DSLs like Tidal or Sonic Pi. That way, the language allows the the creation of a wide range of musical results, while being concise enough to work with it in a live situation.

As for musical examples, all pieces on my Soundcloud page that have ben published since 2017 have been produced with Mégra (https://soundcloud.com/parkellipsen). Video Examples can be found on my Vimeo accout (https://vimeo.com/user37414592).

A further overview over the language itself can be found in the tutorial section of the project repository (https://github.com/the-drunk-coder/megra/tree/master/Tutorial).

The workshop will give an introduction to the language and its underlying concepts, like variable-order Markov chains. The concepts will be explained in an intuitive fashion with the help of visual aids. No extensive knowledge of statistics or probability theory is needed. Even though the language is based on Common Lisp, no deeper knowledge of the Common Lisp language is required either.

A part of the workshop will deal with the cognitive aspect of dealing (or getting comfortable) with non- deterministic musical structures that avoid total unpredictability as well as static repetition, both of which are generally perceived as boring. This part will roughly be following David Huron’s book “Sweet Anticipation – Music and the Psychology of Expectation”, which has been a great inspiration along the way.

Optionally, the workshop will also give an introduction to the environment upon which the Mégra system is built, namely a brief introduction to the Common Lisp environment, the Incudine DSP/Music programming environment (https://github.com/titola/incudine) and the ancient, but functional Common Music 2.x environment (https://github.com/ormf/cm). Hopefully this might show up a path for the attendants to create their own DSLs as a means of musical expression themselves.

Note:

The environment has been tested on Linux and macOS. It might be running on Windows, but will most likely require some patience.