Intervention for Ensemble

 Hacktivism is about taking matters into our own hands with the increasingly complex technology we have at our fingertips. ‘Intervention for Ensemble’ applies this idea to instrumental ensembles as a political act against the classical music establishment. Statistics of music played by leading classical music ensembles continue to show the neglect of women and ethnic minorities in programming in favour of white men, often from privileged backgrounds, predominantly from Europe and North America. This situation is remarkably backwards, particularly when compared with other art forms, and is a situation which I feel needs to change as a matter of utmost importance, or otherwise will further contribute to the decline in popularity and perceived relevance of classical music to wider society.

I wrote a piece of pseudocode as a template for the piece, which can be applied to ‘hack’ the ensemble of one’s choosing (in the spirit of the open source movement, the code can be found below and used for free). The ‘code’ takes the ensemble’s most played piece of music over the previous year and dismantles it over the course of the piece, making way for music that does not conform to the typical standards of the classical music establishment.

First iteration written for and recorded by the BBC Scottish Symphony Orchestra at City Halls, Glasgow on 13th February 2015.



RUN “catalyst”


[INPUT “organisation”

IF “organisation” = “organisation” + “problems”

THEN RUN “writepiece”

ELSE REPEAT “catalyst” UNTIL IF=true]

// problems: mis/under-representation of genders, backgrounds, nationalities //

// processing program: free audio to MIDI conversion found at, stock DAW plugins //


[DEFINE “problems”

SAVE “problems”

RUN “mostplayed”


[INPUT “total”

IF “total”>0

THEN INPUT “piece”

SAVE “piece” TO “pieces”

IF “piece”= “pieces”

THEN “piece” = “piece”+1



ELSE IF “piece”>other “pieces”

THEN “piece”=“mostplayed”

REPEAT “piece”>other “pieces” UNTIL “piece”=“mostplayed”]

DEFINE “hack”

INPUT “mostplayed” INTO “hack”

RUN “hack”

OUTPUT “hackresult”


OUTPUT “fix”

“piece” = “hackresult”+”fix”

OUTPUT “piece”

RUN “playpiece”]


[IF {“organisation”=“willingtoplaypiece”}=TRUE

THEN “piece”=“piece”+”orchestra”

OUTPUT “piece”


ELSE REPEAT “playpiece” UNTIL {“organisation”=“willingtoplaypiece”}=TRUE]