Thesis Info

Thesis Title
Hiroki Nishino
2nd Author
3rd Author
Number of Pages
National University of Singapore
Thesis Supervisor
Prof. Ryohei Nakatsu
Supervisor e-mail
Ryohei Nakatsu <>
Other Supervisor(s)
Language(s) of Thesis
Department / Discipline
Graduate School for Integrative Sciences and Engineering
Languages Familiar to Author
English, Japanese
URL where full thesis can be found
computer music, programing language, live-coding, microsound synthesis, strongly-timed programming, prototype-based programming
Abstract: 200-500 words
Through the design of LC, a new computer music programming language, this thesis contributes to solutions to three problems in today’s computer music language design: (1) the insu�cient support for dynamic modifica- tion, (2) the insu�cient support for precise timing behaviour and other desirable features with respect to time, and (3) the di�culty in microsound synthesis programming caused by the anti-pattern of abstraction inversion. As the creation process of computer music composition can be highly ex- ploratory in that musicians normally experiment with di↵erent composi- tional and sound synthesis algorithms, better support for rapid-prototyping is considered important. At the same time, recent computer music practices can even involve dynamic modification of a program at runtime, on-the-fly on stage, at both levels of compositional algorithms and sound synthesis. Nevertheless, even the latest computer music languages do not provide a terse and consistent programming model with a su�cient degree of sup- port for dynamic modification, especially at the sound synthesis level. This thesis contributes to this issue by the adoption of prototype-based program- ming, which is highly dynamic in its nature, at both levels of compositional algorithms and sound synthesis in the language design. The insu�cient support for precise timing behaviour and other desirable features with respect to time is another significant problem in many com- puter music languages. While the strongly-timed programming concept can achieve precise timing behaviour with sample-rate accuracy by the ex- plicit control of the advance of logical time, a time-consuming task that hinders the advance of logical time can easily cause the temporary suspen- sion of real-time DSP. This thesis proposes the concept of mostly-strongly- timed programming, which extends strongly-timed programming with ex- plicit switching to asynchronous context, in which a thread can be pre- empted regardless of the synchronization with the advance of logical time; thus, a mostly- strongly-timed program can avoid temporary suspension of real-time DSP by executing time-consuming tasks in the asynchronous pre- emptive context, while maintaining sample-rate accurate timing behaviour of strongly-timed programming. This thesis also discusses the benefits for integrating other desirable features with respect to time, such as timing constraints and time-tagged message communication. Microsound synthesis programs written in unit-generator languages often in- volve certain programming patterns, which complicate the implementation to compensate imprecise timing behaviour and the lack of the consideration on microsound synthesis in the abstraction of its underlying sound synthe- sis framework. Such a symptom can be assessed as abstraction inversion, an anti-pattern that occurs when high-level abstractions must be combined to express a lower-level abstraction. This thesis proposes a novel abstrac- tion for microsound synthesis that integrates objects and manipulations for microsounds in the design, which can collaborate with the traditional unit- generator concept in a complementary style. Together with precise timing behaviour supported by mostly-strongly-timed programming, the abstrac- tion makes it possible to describe microsound synthesis techniques more tersely without involving abstraction inversion. As above, this thesis contributes to three issues that computer music lan- guage research faces today, through the design of LC, a mostly-strongly- timed prototype-based programming language that integrates objects and manipulations for microsounds.