Extempore (software)
Extempore is a real-time audio synthesis and music programming environment. It is dynamically typed and primarily uses a Lisp-based language for code definition and manipulation. Developed by Andrew Sorensen, Extempore is designed for live coding, improvisation, and the development of interactive music systems.
Extempore distinguishes itself through its focus on real-time performance. The language allows for on-the-fly code modifications and execution without requiring a full restart, enabling musicians and programmers to immediately hear and react to changes in their code. This immediacy makes it particularly well-suited for live performance and generative music.
Key features of Extempore include its embedded garbage collection, support for concurrency via lightweight threads, and direct access to low-level audio drivers. It leverages Just-In-Time (JIT) compilation to achieve high performance, translating Lisp code into machine code at runtime. The environment is typically used with Linux, macOS, and other Unix-like operating systems.
Extempore is often used in educational settings to teach programming concepts related to real-time systems and music synthesis. Its flexible architecture also allows for integration with other software and hardware, such as MIDI controllers and sensors. The environment fosters an active community of users and developers who share code and techniques for creating innovative musical experiences.