Temporal semantics for a live coding language

Aaron, Samuel and Orchard, Dominic A. and Blackwell, Alan F. (2014) Temporal semantics for a live coding language. In: 2nd ACM SIGPLAN International workshop on Functional art, music, modeling & design, 1-3 Sep 2014, Gothenburg, Sweden. (doi:https://doi.org/10.1145/2633638.2633648) (Full text available)

PDF - Author's Accepted Manuscript
Download (292kB) Preview
[img]
Preview
Official URL
http://doi.acm.org/10.1145/2633638.2633648

Abstract

Sonic Pi is a music live coding language that has been designed for educational use as a first programming language. However, it is not straightforward to achieve the necessary simplicity of a first language in a music live coding setting, for reasons largely related to the manipulation of time. The original version of Sonic Pi used a `sleep' function for managing time, blocking computation for a specified time period. However, while this approach was conceptually simple, it resulted in badly timed music, especially when multiple musical threads were executing concurrently. This paper describes an alternative programming approach for timing (implemented in Sonic Pi v2.0) which maintains syntactic compatibility with v1.0, yet provides accurate timing via interaction between real time and a "virtual time''. We provide a formal specification of the temporal behaviour of Sonic Pi, motivated in relation to other recent approaches to the semantics of time in live coding and general computation. We then define a monadic model of the Sonic Pi temporal semantics which is sound with respect to this specification, using Haskell as a metalanguage.

Item Type: Conference or workshop item (Paper)
Divisions: Faculties > Sciences > School of Computing
Faculties > Sciences > School of Computing > Programming Languages and Systems Group
Depositing User: Dominic Orchard
Date Deposited: 05 May 2017 13:24 UTC
Last Modified: 08 Jun 2017 08:50 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/57489 (The current URI for this page, for reference purposes)
Orchard, Dominic A.: https://orcid.org/0000-0002-7058-7842
  • Depositors only (login required):

Downloads

Downloads per month over past year