What if pattern matching could sound? In this workshop we’ll learn Elixir’s superpowers and (some) best practices building a near real time generative music system, shaping melodies with pure functions and concurrent instruments, while keeping the groove alive after failures. Using an external audio engine as a real world side effect we’ll create a one-of-a-kind distributed live performance.
Duration:
- 8 hours
Tutorial objectives:
- How to use Elixir’s functional style to generate musical structures
- How to separate pure data modeling from effectful I/O (OSC → Sonic Pi)
- How to leverage BEAM processes and supervision trees in a concrete way
- How to connect FP theory (associativity, identity, immutability) with a fun, audible domain
- How to extend these techniques for creative coding or production-grade concurrent systems
Target audience:
- Elixir beginners/curious, or people that just want to have some fun :)
Prerequisites:
- Laptop with Docker and Docker Compose or VirtualBox installed (for system isolation/safety when using distribution)
- Headphones
- Ability to pull a prebuilt Docker image (or provided offline image if needed, an emergency USB stick will be available)
- Basic knowledge of functional programming concepts (pattern matching, immutability, higher-order functions)
- (optional) willing to install Sonic Pi on the system, if using Mac