Learning Extempore

For my honours project, I’m working on the Extempore programming language. It’s a language designed for live coding, and audiovisual performances. Working with a REPL to interactively develop programs is one of my preferred methods of programming; it makes understanding your code and iteratively improving it actually enjoyable. From what I understand, live coding in Extempore is geared more towards performance programming, but it’s still live and enables the same REPL experience that I am used to. To start working on the language, obviously the first step is to learn how to use it.

There are two languages in Extempore: Scheme and XTLang. I’m a familiar with Scheme from the few times I’ve tried to read Structure and Interpretation of Computer Programs, and I write a bit of Clojure. Extempore’s Scheme is interpreted, so for efficient audio work, Extempore provides XTLang, which is a JIT compiled language built on LLVM.

The entry point to Extempore is the online documentation. Extempore is not a mainstream language by any measure, and the documentation is pretty good considering that. It’s easy enough to get Extempore compiled and running, and key language features are covered. There are issues with out of date documentation, in particular the ’building an instrument’ page uses an older API.

For up to date examples, it’s best to look in extempore/examples/core. I understand that these examples get updated as the language does. core/extempore_lang.xtm is handy for XTLang in particular. I’m playing around with XTLang by trying to write a hash map data structure.