Combining Music and Computer Code in Nightclubs
To the average person, the programming language Sonic Pi looks like any other one, as it’s comprised of numbers, punctuation marks, and letters arranged seemingly at random across the display. But Sonic Pi is unique among coding languages, as it’s designed specifically to produce music in real time. The goal of the language is to allow programmers to use their computers like instruments, creating music as they rapidly type away at their keyboards. With this technique, DJs who are skilled in the art of programming can host music shows at so-called “algoraves,” a portmanteau of the words “algorithm” and “rave.” By taking advantage of this unique musical approach, DJs can experiment with creating music in groundbreaking and innovative ways, using the obscure logic of programming to dynamically craft melodies and entire compositions.
Algoraves are hosted nearly every weekend in cities around the world, including New York City, Moscow, and Mexico City, and draw crowds ranging from technology enthusiasts to music fans who know little about programming. At these shows, code is projected onto a massive screen for audiences to see, as DJs produce in real time the sounds for the crowd to dance to. Instead of working with pre-recorded samples like traditional DJs, algorave musicians improvise music on the fly, as all audio is generated directly by the computer program as it is being created and modified. This technique of music generation allows for an intensely cognitive type of musical creativity, as musicians in this genre tend to be professional computer scientists, many with PhDs.
Sonic Pi was originally created to be a teaching tool. The idea was that students, who may not be initially inclined to devote the hours upon hours of work necessary to learn programming, may be motivated to do so by combining the task with the joy of music. Though Sonic Pi has not taken off in classrooms, it has found a new, unexpected life in nightclubs around the world. Sonic Pi is not the only language programmers use to make music in real-time; other, more general languages, such as Orca and Hydra, are also used at these events.
Tidal Cycles, a popular free and open source program among algorave enthusiasts, allows users to make patterns with code, and interfaces with other programs to create music or visuals. Sometimes the music is accompanied by visuals that are also generated by programmers working on the fly, who use programming to generate shapes, colors, textures, and animations to project in the club.
The algorave movement is part of the larger practice of live coding, which started in the 1970s and is often used in the context of the performing arts. Live coding, in which programming is an integral part of the running program, is used not only to create music and visualizations but also as a teaching tool, as it allows professors to demonstrate in real time the effects of making changes to various pieces of code. Algoraves give programmers an opportunity to meet each other and network in a fun and creative environment, and the algorave subculture is known for being friendly and welcoming even to people who have little experience in programming.
The creator of Tidal Cycles, Alex McLean, often hosts festivals and workshops during which guests can learn how to make their own music with code. People become interested in algoraves for a variety of reasons, but perhaps the most compelling reason is the direct level of creativity it allows programmers who ordinarily have to wait for their programs to compile before being able to run them. As the task of programming can be quite tedious and monotonous, particularly when programs take hours to compile, the appeal for professional software engineers and algorave musicians of seeing code come to life in musical form is strong.
Featured image credit: https://commons.wikimedia.org/wiki/File:Algorave_Club_Fierce_2014_1.png

Tyler Olhorst is a Contributing Editor at The National Digest based in New York. You can reach him at inquiries@thenationaldigest.com.