home/ atoms/ tidalcycles-origin-design-pressure

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?

“trying to get from the point of what the reality was which was like working with this general purpose programming language pear to try and make music and it would take me minutes to even make a sound sometimes”
corpus · why-we-bleep-045-algorave-alex-mclean-podcast · chunk 3