• Corpus ID: 19651258

LC: a strongly-Timed Prototype-Based Programming Language for Computer Music

  title={LC: a strongly-Timed Prototype-Based Programming Language for Computer Music},
  author={Hiroki Nishino and Naotoshi Osaka and Ryohei Nakatsu},
This paper describes LC, a new computer music programming language currently under development. LC is a strongly-timed prototype-based programming language for live computer music with lightweight concurrency and lexical closure, the design of which takes the emergence of live-coding performance on laptop computers into consideration as a significant design opportunity for a new computer music language. 

Figures from this paper

Mostly-Strongly-Timed Programming in LC

mostly-strongly-timed programming is proposed, which extends strongly- Timed programming with the explicit switch between synchronous context and asynchronous context, if a thread is in asynchronous context and the underlying scheduler is allowed to preempt it without the explicit advance of logical time.

LC: A New Computer Music Programming Language with Three Core Features

This paper gives a brief overview of the three core features of LC, a new computer music programming language we prototyped: (1) prototype-based programming at both levels of compositional algorithms



LCSynth: A Strongly-Timed Synthesis Language that Integrates Objects and Manipulations for Microsounds

LCSynth, a new sound synthesis language currently under development, which integrates objects and manipulation for microsounds in its language design can facilitate creative exploration in microsound synthesis techniques, which have been considered rela-tively difficult in the existing sound synthesis frameworks and computer music languages.

The chuck audio programming language. a strongly-timed and on-the-fly environ/mentality

ChucK is argued for, a general-purpose programming language tailored for computer music that provides a syntax for representing information flow, a new time-based concurrent programming model that allows programmers to flexibly and precisely control the flow of time in code, and facilities to develop programs on-the-fly —as they run.

Programming with time: cyber-physical programming with impromptu

This paper discusses the idea of programming as an activity that takes place within the temporal bounds of a real-time computational process and its interactions with the physical world and ground these ideas within the con- text of livecoding -- a live audiovisual performance practice.

Live coding in laptop performance

This paper presents an introduction to the field of live coding, of real-time scripting during laptop music performance, and the improvisatory power and risks involved, and looks at two test cases, the command-line music of slub utilising Perl and REALbasic, and Julian Rohrhuber's Just In Time library for SuperCollider.

SELF: The power of simplicity

Because SELF does not distinguish state from behavior, it narrows the gaps between ordinary objects, procedures, and closures, and offers new insights into object-oriented computation.

Io: a small programming language

An overview of the Io language and demos of some multi-platform desktop applications written with it are included, well suited for use as both scripting and embedding within larger projects.

A Principled Approach to Developing New Languages for Live Coding

A 3-tiered architecture centering around the notion of a Common Music Runtime, a shared platform on top of which inter-operating client interfaces may be combined to form new musical instruments is described.

Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages

The strengths and weaknesses of the languages are discovered, while dissecting the process of learning languages quickly--for example, finding the typing and programming models, decision structures, and how you interact with them.

Static vs. dynamic type systems: an empirical study about the relationship between type casts and development time

An empirical study with 21 subjects that compares programming tasks performed in Java and Groovy - programming tasks where the number of expected type casts vary in the statically typed language finds that the dynamically typed group solved the complete programming tasks significantly faster for most tasks - but for larger tasks with a higher number of type casts no significant difference could be found.

Live coding: an Overview

An overview on the evolution of Live Coding within the last decade is given, where the performers create and modify their software-based instruments during the performance.