Euterpea is a domain-specific language, embedded in the functional language Haskell, for computer music development. It is a descendant of Haskore and HasSound, and is intended for both educational purposes as well as serious computer music applications. Euterpea is a wide-spectrum language, suitable for high-level music representation, algorithmic composition, and analysis; mid-level concepts such as MIDI; and low-level audio processing, sound synthesis, and instrument design. It also includes a “musical user interface,” a set of computer-music specific GUI widgets such as keyboards, pushbuttons, sliders, and so on. The performance of Euterpea is intended to be as good as any existing computer music language, with the goal of being able to develop real-time applications, using both MIDI and a high-performance back-end for real-time audio.
Research topics in the Euterpea Project include, on the computer science side, language design and implementation issues, formal methods and verification techniques, and concurrent and parallel computation; and on the computer music side, algorithmic composition and analysis, physical modeling and instrument design, and audio processing. Euterpea is a key component of the Music Track in Yale’s new Computing and the Arts major, in which Hudak teaches a two-term computer music sequence using Euterpea, and is developing considerable pedagogical material, including a new textbook titled The Haskell School of Music — From Signals to Symphonies. The name Euterpea is derived from Euterpe, who was one of the nine Greek Muses (goddesses of the arts), specifically the Muse of Music.