This blog contains a bunch of posts and tutorials covering Extempore, a programming environment for live coding of multimedia and real-time systems (among other things). If you're here to learn/find out more about Extempore, then here's an overview of all the documentation and some suggestions about where to start. This list is hand-curated to provide the best 'journey' through the concepts necessary to begin using Extempore in anger.
Alternately, there's an automatically-generated tags page which also allows you to browse by category.
xtlang is a strongly-typed programming language with a Lisp syntax which is JIT-compiled into high-performance native machine code by the Extempore compiler (with the help of LLVM). xtlang is in many ways Extempore's 'secret sauce', and most of the code examples in this documentation will be in xtlang.
Extempore is a great environment for audio DSP and number-crunching, particularly in a dynamic, interactive, 'live' coding context. It supports low-level, sample-based DSP as well as soft-synths and samplers (written in xtlang) which can be played like virtual MIDI instruments. Both types of audio processing can also be used together—in fact this is encouraged :)
Extempore supports working with graphics at several different levels of abstraction. You can use low-leve OpenGL calls, or you can use the higher-level 2D or 3D graphics libraries. And again, because everything's in xtlang, you can mix-and-match!
2D graphics primitives (like Quartz, Processing or Cairo) can be found
libs/external/openvg.xtm. For an example of this stuff in action,
Extempore has a 3D drawing pipeline written in xtlang, which supports blender models, lighting (and other custom shaders) and scene-graph type rendering. And because it's all written in xtlang, the whole pipeline itself is dynamic and tweakable on the fly.
The best place to see the 3D rendering pipeline in action is in the
xtmrender examples in