Heart of Clojure
TimeLines: Crafting a Live Coding Musical Instrument with & out of Clojure
TimeLines is an ongoing PhD research project in the design and implementation of Live Coding musical instruments. Live Coding is a creative practice that, at its core, involves real-time Human-Computer Interaction (HCI) with a live and dynamic computational system - as much an instrument as an open-ended instrument-building workbench. TimeLines follows a purely functional approach to music, treating both the synthesis of sounds and of musical structure to be functions of just a single numerical argument: time itself. All time-varying behavior is encoded in those pure functions, enabling the potential for massive parallelization and static analyses. Clojure’s Lisp-heritage’s metaprogramming powers are greatly relied upon to make an instrument that is capable of creating and extending itself.
The talk will feature an overview of the research motivations for this project:
- Physical and cognitive ergonomics (“how can we design instruments that work with the human body and mind and not against them”).
- Embodied interaction with and feedback from the computational process (eye-gaze tracking, custom domain-specific keyboards, haptic feedback etc.)
- Linguistic meta-abstraction (designing a programming language and environment that is as much a workbench for languages and environments).
- Reclaiming forgotten paradigms of interaction that were being explored in the late 20th century, and as such decolonizing the notion and experience of using a personal computer.
It will then present a historical overview of the TimeLines project, its different incarnations (including its first iteration that was implemented in Haskell), and an overview of why Clojure was chosen for this project, as well as how the choice of Clojure has introduced new ideas and possibilities.
There will also be a short live demonstration of some of the principles talked about, with commentary.
Speakers
-
Dimitris Kyriakoudis
Dimitris is a music tech PhD Student at Univeristy of Sussex, as well as a Live Coding Luthier & Performer
He’s the creator of the TimeLines live coding system, originally written in Haskell, but since ported to Clojure.