TidalCycles emerged from the need to make live music without minutes of dead air — Perl was too slow for real-time performance
Before TidalCycles, McLean made music in Perl, a general-purpose language with no music-specific abstractions. Generating even a single sound could take minutes of setup, making real-time performance impossible. The design pressure came partly from collaborating with a Basque free-jazz drummer (Alex Gagot) who improvised acoustically and pushed McLean to do ‘from scratch’ live coding in response. This mismatch forced McLean to develop TidalCycles as a domain-specific language that could produce sound within seconds and make changes within a couple of seconds — the minimum viable speed for improvisation. A research scholarship at Goldsmiths (three to four years) gave him the space to build it.
Examples
The constraint: a jazz drummer is improvising at full speed and expects the live coder to respond in real time. The coder is spending 2+ minutes just to produce a sound in Perl. TidalCycles solves this by making drum patterns typeable in seconds.
Assessment
Explain the ‘design pressure’ that led McLean to create TidalCycles rather than continue using Perl for live music performance. What was the specific collaborative context that made the slow-startup problem acute?