Beating Threads — live coding music
A deep technical dive into the internal ideas and innovations of Sonic Pi — a system designed specifically for live coding music.
Live Coding systems encourage us to think extremely differently about programming languages. In addition to considering standard requirements such as reliability, efficiency and correctness we are also forced to deal with issues such as liveness, coordination and synchronization al whilst working in real time. Live Coders not only run and modify our code live — they often performing with it live on stage in front of large crowds of people who really don’t want the code to miss a beat.
In this code and demo-heavy talk, Sam will take a deep technical dive into the internal ideas and innovations of Sonic Pi — a system designed specifically for live coding music. The audience will explore Sonic Pi’s novel temporal semantics which allows multiple concurrent threads to execute in synchronization whilst still allowing live hot-swapping of code. For example, participants will examine cue and sync, techniques which allow users to coordinate, manipulate and synchronize threads whilst they’re still running and playing music. Along with Sam we will discover what it means for lambdas to close over temporal as well as a lexical scope and finally come to an understanding of the importance and challenges in achieving repeatable, deterministic execution semantics.
Ultimately, everyone will discover an exciting an exciting area of programming language research in an approachable and instructive manner all whilst making some sick beats and drops. Watch a previous version of this talk: https://www.youtube.com/watch?v=YlRTTzlhquo