Python live coding with Renardo
Learning objectives
- learner can drive SuperCollider from Python players with patterns and attributes
- learner can use scale degrees, chords, tunings and stochastic patterns
- learner can automate arrangement with time-varying values and multi-backend routing
Capstone — one whole task that evidences the objectives
Live-code a Python (Renardo) set: players sending SynthDefs via >>, patterned attributes and stochastic patterns, Roman-numeral chords and just-intonation tuning, arrangement automated with var()/linvar and eclipse/fadein, routed to a chosen backend.
Prerequisite modules
This module builds toward performing a full live-coded set from a Python editor — the algorave scenario where your rig is a laptop running Renardo over a booted SuperCollider server, and the audience hears every edit the moment you evaluate it. Python live coding trades TidalCycles’ Haskell mini-notation for familiar imperative syntax, which makes it the natural entry point for Python programmers into performance, and its multi-backend routing means the same set can drive scsynth, REAPER, Ableton Live, or hardware MIDI.
The arc starts supported: get SuperCollider installed and booting before Renardo (the classic silent-startup trap), then drill the core gesture — assigning a SynthDef to a player with the >> operator and shaping it with attributes like dur, amp, and sus, plus play() string patterns for drums. These moves must become automatic; they are the typing you do continuously on stage. From there, musicality layers in: scale-degree pitch values instead of MIDI numbers, PGroups and Roman-numeral chord constants for progressions, just-intonation tuning for purer chords, and stochastic generators like PRand and PWhite for parts that never repeat identically. Finally, arrangement becomes code: var() steps chord roots per section, linvar() sweeps filter cutoffs, and .eclipse()/.fadein() let layers breathe without manual muting — culminating in the unsupported capstone set routed to your chosen backend.
Every required atom is something the capstone breaks without: sound won’t start, chords won’t voice, or the arrangement won’t move on its own. Supporting atoms enrich the practice — the wider scale library, microtonal degrees, Pvar structural switching, effect internals, startup files, the orientation fact that Renardo supersedes FoxDot, and the Sardine framework as a contrasting Python live-coding paradigm worth knowing once the Renardo workflow is solid.
Atoms in this module
Required — these gate the capstone
Supporting — enrichment, not gating
Part of curricula
- Live Coder — zero to performing live-coded music — Generative Systems & the SuperCollider Stack optional