SAL: A simple algorithmic language in common music

Heinrich Taube

Research output: Contribution to conferencePaperpeer-review


SAL is a new infix language for designing algorithmic compositions in Common Music (CM) [1], a composition environment implemented in Common Lisp [2] and Scheme [3]. SAL provides an easy-to-learn, command-style syntax that lets a composer learn algorithmic design without requiring that they first become familiar with Lisp notation. The name SAL stands for Simple Algorithmic Language-or Secretly Another Lisp-and is a hommage to Sal Martirano, a brilliant and influential composer who was a professor at the UIUC School of Music for many years. SAL incorporates many features of Lisp while avoiding the two most confusing aspects of Lisp programming style: prefix notation and the use of Quote to block evaluation. The result is a highly expressive language that is easy to learn. SAL also takes ideas from shell languages, and its (extendable) command set provides a consistent, clean way of interacting with the CM environment. SAL commands are typically easier (shorter, less arcane) to express than equivalent Lisp expressions. The SAL system consists of two software components: a lexer/parser that is loaded into Common Music and an editing mode that provides syntax highlighting (code colorization) and evaluation services for designing and executing SAL programs. The separation between runtime and development components allows a single CM runtime to serve multiple, concurrent SAL sessions. Using SAL the composer does not interact directly with Lisp and so does not need to learn anything about Lisp's Read/Eval/Print loop (REPL) or how to recover from Lisp error breaks. Since SAL is parsed from its string representation it is able to report better (more helpful) program error messages back to the composer than can the underlying Lisp evaluator.

Original languageEnglish (US)
Number of pages4
StatePublished - 2007
Externally publishedYes
EventInternational Computer Music Conference, ICMC 2007 - Copenhagen, Denmark
Duration: Aug 27 2007Aug 31 2007


OtherInternational Computer Music Conference, ICMC 2007

ASJC Scopus subject areas

  • Media Technology
  • Computer Science Applications
  • Music


Dive into the research topics of 'SAL: A simple algorithmic language in common music'. Together they form a unique fingerprint.

Cite this