# Impromptu

> Mac OS X programming environment for live coding

**Wikidata**: [Q6007730](https://www.wikidata.org/wiki/Q6007730)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Impromptu_(programming_environment))  
**Source**: https://4ort.xyz/entity/impromptu

## Summary
Impromptu is a Mac OS X programming environment specifically designed for live coding and real-time sound synthesis. Developed in 2005, it serves as an audio programming language that facilitates algorithmic composition and dynamic audio production. The environment utilizes a functional programming paradigm and is heavily influenced by the Lisp programming language.

## Key Facts
- **Type:** Audio programming language and programming environment.
- **Platform:** Mac OS X.
- **Primary Use:** Live coding, sound production, algorithmic composition, and sound synthesis.
- **Inception:** 2005.
- **Programming Paradigm:** Functional programming.
- **Typing Discipline:** Dynamic typing.
- **Influences:** Lisp and Q187560 (Scheme).
- **Website:** http://impromptu.moso.com.au
- **Related Software:** Extempore (a real-time audiovisual software).

## FAQs
### Q: What is Impromptu used for?
A: Impromptu is used for live coding, serving as an environment for sound production, algorithmic composition, and sound synthesis on Mac OS X. It allows programmers to manipulate audio in real-time.

### Q: What programming language paradigm does Impromptu use?
A: Impromptu uses a functional programming paradigm with dynamic typing. It is an audio programming language influenced by Lisp.

### Q: When was Impromptu created?
A: Impromptu was created in 2005.

## Why It Matters
Impromptu plays a significant role in the specialized field of live coding, a performance practice where artists create music and visuals by writing and modifying code in real-time. By bridging the gap between high-level functional programming and low-level audio synthesis, it provides musicians and programmers with a powerful tool for algorithmic composition directly on Mac OS X. Its existence highlights the intersection of computer science and the arts, specifically within the laptop music movement. The environment allows for immediate auditory feedback, enabling a fluid creative process where code becomes a musical instrument. Furthermore, its connection to Extempore suggests its importance in the evolution of real-time audiovisual software development.

## Notable For
- **Live Coding Focus:** Being a dedicated environment for live coding on Mac OS X.
- **Functional Audio Synthesis:** Applying functional programming concepts (influenced by Lisp) to real-time sound generation.
- **Dynamic Interaction:** Allowing for the on-the-fly modification of code with immediate effect on audio output.
- **Algorithmic Composition:** Providing specific tools and structures for generating music through algorithms.
- **Lineage:** Serving as a predecessor or relative to Extempore, another platform for real-time audiovisual performance.

## Body

### Development and Environment
Impromptu is an audio programming language and environment that began in 2005. It is built specifically for the Mac OS X operating system. The environment is designed to support the "live coding" paradigm, where software is written and modified while it is running, typically for performance purposes.

### Technical Specifications
The language operates within the **functional programming** paradigm and utilizes **dynamic typing**. Its syntax and structure are heavily **influenced by Lisp**, a historic functional programming language based on lambda calculus (incepted in 1958). The internal programming language identifier is classified as Q187560.

### Core Functionality
As an **audio programming language**, Impromptu is designed for three primary objectives:
1.  **Sound Production:** Generating audio signals.
2.  **Algorithmic Composition:** Creating musical structures through logical rules and code.
3.  **Sound Synthesis:** Manipulating audio parameters digitally.

### Related Technologies
The knowledge base associates Impromptu with **Extempore**, a real-time audiovisual software. The development of Impromptu represents a key node in the history of live coding environments, specifically those leveraging Lisp-like syntax for artistic expression.

### Resources
- **Website:** The official resources and documentation are hosted at http://impromptu.moso.com.au.
- **Media:** The project logo is available via Wikimedia Commons.

## References

1. [OpenAlex](https://docs.openalex.org/download-snapshot/snapshot-data-format)