In Commands to Command Commands, Giuseppe Torre invites us into a stark, code-driven environment where sound, philosophy, and digital aesthetics converge. At the heart of the installation is a simple yet profound gesture: typing. Visitors are presented with a printed booklet of command-line instructions and asked to input them manually into a terminal interface. As each command is executed, it generates sound—tones, textures, and ambient compositions—transforming the act of coding into a performative and sonic experience. This work is not merely about sound synthesis or programming. It is a critical reflection on the nature of control in digital culture. Inspired by philosopher Giorgio Agamben’s notion of the “ontology of the command,” Torre explores how digital systems blur the lines between agency and obedience. In a world where we believe we are commanding machines, are we in fact obeying the structures they impose? By removing the graphical user interface and relying solely on a command-line environment, Torre strips digital interaction to its barest form. The audience becomes both user and performer, enacting a choreography of commands that reveals the recursive logic of digital systems—where commands command to command. This installation merges the aesthetics of live coding with the participatory ethos of interactive art. It challenges the viewer to consider not only what is being created, but how and by whom. In doing so, it raises urgent questions about authorship, autonomy, and the performative nature of digital life.
This research-based artwork investigates the philosophical and aesthetic implications of the digital command through the lens of interactive art and live coding. Drawing on Giorgio Agamben’s concept of the “ontology of the command,” the work interrogates the performative structures that underpin contemporary digital culture, where the act of commanding is paradoxically an act of obedience. The installation is built around a minimalist technological setup: a Raspberry Pi running a command-line interface (CLI) without graphical user interface (GUI), and the SOX audio toolkit. Visitors are invited to type a sequence of audio-generating commands into the terminal. These commands, printed in a booklet, range from simple tones to complex generative structures. The act of typing becomes a performative gesture, enacting the philosophical tension between agency and submission, authorship and automation. The work is situated within a methodological framework that treats artistic research as a practice of problematisation. Rather than illustrating philosophical concepts, the piece enacts them through immanent processes of making and doing. It aligns with Agamben’s claim that in contemporary societies, the command has supplanted the assertion—not as overt imperative, but as subtle invitation, suggestion, or interface. In this context, the digital artist, the code, and the audience are all implicated in a recursive structure where commands command to command. By merging live coding aesthetics with interactive installation, the work foregrounds the performative dimension of digital systems. It challenges the presumed autonomy of the user and the authority of the artist, proposing instead a distributed authorship mediated by code. The audience, in executing commands, becomes both operator and subject, enacting a choreography of control that is at once technical and philosophical. This project was exhibited at the VIII Art of Research Conference (Aalto University, 2023), where it invited participants to reflect critically on the nature of digital interaction, authorship, and the performative logic of computational systems. It ultimately asks: in a world where commands are ubiquitous and obedience is embedded in interaction, what remains of the artistic self?
In Commands to Command Commands, I explore the ontology of the command as both a philosophical and artistic inquiry. Drawing from Giorgio Agamben’s reflections on the shift from assertion to command in contemporary society, this work interrogates the subtle yet pervasive structures of control embedded in our digital interactions. Through the medium of live coding and interactive sound art, I aim to expose the performative tension between command and obedience—between the illusion of agency and the reality of submission.The installation invites participants to engage with a bare command-line interface, stripped of graphical mediation. Here, the audience becomes both performer and subject, typing commands that generate soundscapes in real time. These commands, while appearing to offer control, are in fact inscribed with predetermined structures—echoing Agamben’s notion that in digital societies, we obey even in the very act of commanding.This work is not merely about sound or code; it is about the act of commanding itself. It is about the recursive logic of digital systems where commands command to command, and where the artist, the code, and the audience are all entangled in a loop of performative obedience. The use of SOX on a Raspberry Pi, devoid of GUI, reinforces this raw encounter with the digital apparatus—an encounter that is as much philosophical as it is experiential. By situating this work within the traditions of live coding and interactive art, I aim to problematize the role of the artist and the user in digital creation. Has the digital command structure, in its recursive and performative nature, dissolved the artistic self? This question lies at the heart of my practice—a practice that seeks not to answer, but to provoke, to perform, and to command reflection.
The work is created with Sox, a command-line toolkit for audio manipulations (https://sox.sourceforge.net/).
play -n synth 5 sine 200
play -n synth 5 sine 200-300
play -n synth 5 exp 100-400
play -n synth 5 triangle 300-50
play -n synth 5 0 0 30 20 90 triangle 130
play -n synth 5 pluck A2 fade h 0 4 1 echos 1 0.5 1000 0.3 2000 0.25 3000 0.1
play -n synth 4 pluck A2 fade h 0 3 1 repeat 2 | play -n synth 4 pluck C2 fade h 0 3 1 repeat 2 | play -n synth 4 pluck E2 fade h 0 3 1 repeat 2
for n in 1 2 3; do play -n synth 4 pluck $(( $RANDOM % 100 + 200 )) fade h 0 3 1 | play -n synth 4 pluck $(( $RANDOM % 300 + 400 )) fade h 0 3 1 | play -n synth 4 pluck $(( $RANDOM % 100 + 200 )) fade h 0 3 1; done
for (( ; ; )); do play -n synth 4 pluck $(( $RANDOM % 100 + 200 )) fade h 0 3 1 | play -n synth 4 pluck $(( $RANDOM % 300 + 400 )) fade h 0 3 1 | play -n synth 4 pluck $(( $RANDOM % 100 + 200 )) fade h 0 3 1; done
for (( ; ; )); do play -n synth 4 sine $(( $RANDOM % 100 + 200 )) gain -9 fade h 1 2 1 | play -n synth 4 sine $(( $RANDOM % 100 + 200 )) gain -9 fade h 1 2 1 | play -n synth 4 sine $(( $RANDOM % 100 + 200 )) gain -9 fade h 1 2 1; done
for (( ; ; )); do play -n synth 4 sine $(( $RANDOM % 100 + 200 )) gain -9 fade h 1 2 1 | play -n synth 4 sine $(( $RANDOM % 200 + 300 )) gain -9 fade h 1 2 1 | play -n synth 4 sine $(( $RANDOM % 300 + 400 )) gain -9 fade h 1 2 1; done
for (( ; ; )); do play -n synth 4 sine $(( $RANDOM % 200 + 300 )) gain -9 fade h 1 2 1 | play -n synth 4 sine $(( $RANDOM % 200 + 300 )) gain -9 fade h 1 2 1 | play -n synth 4 sine $(( $RANDOM % 200 + 300 )) gain -9 fade h 1 2 1; done
for (( ; ; )); do play -n synth 4 sine $(( $RANDOM % 300 + 400 )) gain -9 fade h 1 2 1 | play -n synth 4 sine $(( $RANDOM % 300 + 400 )) gain -9 fade h 1 2 1 | play -n synth 4 sine $(( $RANDOM % 300 + 400 )) gain -9 fade h 1 2 1; done
for (( ; ; )); do play -n synth 4 sine $(( $RANDOM % 300 + 400 )) gain -9 fade h 1 2 1 | play -n synth 4 sine $(( $RANDOM % 300 + 400 )) gain -9 fade p 1 2 1 | play -n synth 4 sine $(( $RANDOM % 300 + 400 )) gain -9 fade l 1 2 1; done
for (( ; ; )); do play -n synth 4 sine $(( $RANDOM % 300 + 400 )) gain -9 fade h 1 2 1 | play -n synth 4 sine $(( $RANDOM % 200 + 300 )) gain -9 fade p 1 2 1 | play -n synth 4 sine $(( $RANDOM % 300 + 400 )) gain -9 fade l 1 2 1; done
for (( ; ; )); do play -n synth 4 triangle $(( $RANDOM % 200 + 250 )) gain -9 fade h 1 2 1 | play -n synth 4 square $(( $RANDOM % 200 + 250 )) gain -9 fade p 1 2 1 | play -n synth 4 sine $(( $RANDOM % 200 + 250 )) gain -9 fade l 1 2 1; done
for (( ; ; )); do play -n synth 4 triangle $(( $RANDOM % 200 + 250 )) gain -9 fade h 1 2 1 | play -n synth 4 square $(( $RANDOM % 200 + 250 )) gain -9 fade p 1 2 1 | play -n synth 4 sine $(( $RANDOM % 200 + 250 )) gain -9 fade l 1 2 1 bend 0,3000,4; done
for (( ; ; )); do play -n synth 4 triangle $(( $RANDOM % 200 + 250 )) gain -9 fade h 1 2 1 bend 0,3000,4 | play -n synth 4 square $(( $RANDOM % 200 + 250 )) gain -9 fade p 1 2 1 bend 0,3000,4 | play -n synth 4 sine $(( $RANDOM % 200 + 250 )) gain -9 fade l 1 2 1 bend 0,3000,4; done
for (( ; ; )); do play -n synth 4 triangle $(( $RANDOM % 200 + 250 )) gain -9 fade h 1 2 1 bend 0,-3000,4 | play -n synth 4 square $(( $RANDOM % 200 + 250 )) gain -9 fade p 1 2 1 bend 0,-3000,4 | play -n synth 4 sine $(( $RANDOM % 200 + 250 )) gain -9 fade l 1 2 1 bend 0,-3000,4; done
for (( ; ; )); do play -n synth 100 triangle $(( $RANDOM % 200 + 250 )) gain -9 fade h 10 80 10 bend 0,-1000,4 | play -n synth 100 square $(( $RANDOM % 200 + 250 )) gain -9 fade p 10 80 10 bend 0,-1000,4 | play -n synth 100 sine $(( $RANDOM % 200 + 250 )) gain -9 fade l 10 80 10 bend 0,-500,4; done
for (( ; ; )); do play -n synth 100 square $(( $RANDOM % 200 + 210 )) gain -9 fade h 10 80 10 bend 0,-10,100 | play -n synth 100 square $(( $RANDOM % 200 + 210 )) gain -9 fade p 10 80 10 bend 0,10,100 | play -n synth 100 square $(( $RANDOM % 190 + 200 )) gain -9 fade l 10 80 10 bend 0,20,100 | play -n synth 100 square $(( $RANDOM % 190 + 200 )) gain -9 fade l 10 80 10 bend 0,-20,100; done