Software has become our interface to the world, to others, to our memory and our imagination—a universal language through which the world speaks, and a universal engine on which the world runs

Lev Manovich 1

beyond utilitarian software

Social Software "...primarily, it is software built by and for those of us locked out of the narrowly engineered subjectivity of mainstream software. It is software which asks itself what kind of currents, what kinds of machine, numerical, social, and other dynamics, it feeds in and out of, and what others can be brought into being" furthermore, "It is software that is directly born, changed, and developed as the result of an ongoing sociability between users and programmers in which demands are made on the practices of coding that exceed their easy fit into standardised social relations" 2

Critical Software is "...software designed explicitly to pull the rug from underneath normalised understanding of software [...] Critical software engages with existing software programmes and mutates or critically analyses them."2 this is software as critical commentary, where thing being commented on is software products && software ideas.

early artware

Female Extention by Cornelia Sollfrank

Speculative Software; "The best fiction is always also attempting to deal with the crisis of written language, in the way that it asks itself about the legacy built into text as the result of its birth in the keeping of records, in the establishment of laws, in assembling and managing tables of debt and credi. It does this perpetually, at the same time as reiventing and expanding upon the capacity of language to create new things. Speculative software fulfills something of a similar function for digital cultures."2

"outsider" artware

Project Xanadur by Ted Nelson

firesheep by Eric Butler

software for artists by artists

AI + the Artist's agency

Our Bodies are hardware, our behavior software

Jack Burnham 3

Gesture makes way for independent algorithmic systems. The hell with humans... let's play god

Joshua Davis 4

“I looked for signatures of Cope style. I was hearing suddenly Ligeti and not David Cope.” the composer noted, “As Stravinski said, ‘good composers borrow, great composers steal’. This was borrowing, this was not stealing and I wanted to be a real, professional thief. So I had to hide some of that stuff, so I changed my style based on what I was observing through the output [of] Emmy, and that was just great.” David Cope 5

While attempting to publish the first EMI record "Bach by Design", Cope recalls “I spent almost a year trying to get an actual record company to produce the music. It was really tough.” Cope said, “I remember my greatest exasperation was, coming in on the same day, were two negative replies. The first said ‘we only publish contemporary music, and this, by our definitions, is not contemporary music, and then the other one said ‘we only do classic music, and this is not classical music’, so I said ‘then, what is it?’”5

Despite the critical reactions, the pieces EMI composed were certainly Bach-like. Professor Douglas Hofstadter of the University of Oregon organized a musical form of the Turing Test. Pianist Winifred Kerner performed three pieces in the style of Bach: one written by EMI, one by Dr. Steve Larson, and the last an actual piece by Bach. The audience then had to attempt to tell which piece was which. The audience selected Emmy’s piece as the actual Bach, while believing that Larson’s was the one composed by computer. “Bach is absolutely one of my favorite composers,” Dr. Larson said to the New York Times, “my admiration for his music is deep and cosmic. That people could be duped by a computer program was very disconcerting.” 5

Harold Cohen's AARON

Google's Deep Dream

Are computers creative? “Oh, there’s no question about it. Yes, yes, a million times yes. Creativity is simple; consciousness, intelligence, those are hard.”5

flow-based programming


a project in max is called a "patch", below is an empty "patcher window"

a patch can be either ‘locked’ or ‘unlocked’ (see the first icon from the left). when a patch is ‘locked’ it can be used/interacted with as software. when a patch is ‘unlocked’ it can be edited. a patch has two modes, ‘patching mode’ and ‘presentation mode’ (the fifth icon from the left). ‘patching mode’ presents you with all the objects in your sketch ‘presentation mode’ presents you with only the objects you include in your ‘presentation’ ( which is the graphical interface you design for the end-user ). to add an object to presentation mode: right mouse click (or control click on a mac ) it and choose “Add to presentation”. To change the stacking order of objects in your presentation right mouse click and choose (Send to Front or Send to Back).

key programming concepts in max

Variables. Just like in JavaScript variables store stuff. a variable stores some data (they can be numbers or letters). In Max variables look like this.

Functions. Just like in JavaScript functions do stuff. there are different kinds of functions ( which are called ‘objects’ in Max ), but in every case they perform some procedure or routine. Here is an example of two connected objects, the first converts the incoming message (in this case the variable 60) into a midi note, the second object takes that midi note and converts into analog sound (outputting it through the speakers). notice that the makenote has two arguments already in it ( 127, 1000 ), if this where JavaScript it might looke like this:
var note = 60;
makeNote( note, 127, 1000 );

Loops and Automation. here is an example of a basic loop created in Max. It is made up of two objects, the first (metro) dictates the speed of the loop and the second (counter) dictates how many iterations are in the loop. Think of this like requestAnimationFrame and setInterval() in JavaScript ( or the draw() loop in Processing ). the metro takes one argument (the time of the interval), this argument is set to ‘500’, in programming time is usually kept in milliseconds. 500 milliseconds = third of a second, this means our loop iterates twice a second. the counter takes one argument (the amount of intervals), this argument is set to 3. In programming we start counting from 0, so this counter has a total of 4 iterations (0, 1, 2, 3)

Conditional Statements. we use the same operatos in Max/MSP as we use in any other programming language, and we write conditional statements directly into objects like this


do Max tutorials 1 - 11. when you’re finished consider the works we looked at in class along with these tutorials ( and the initial EMI-inspired project we did in class ). applying all this to moving images ( cinema, video, etc. ) what kind of algorithmic artware system could you imagine? propose an idea below.


  1. Manovich, Lev. Software Takes Command. Bloomsbury Publishing. 2013.
  2. Fuller, Matthew. Behind the Blip: Essays on the Culture of Software. autonomedia. 2003.
  3. Burnham, Jack. Notes on art and information processing. Information technology: its new meaning for art. 1970.
  4. Joshua Davis - etapes interview
  5. Garcia, Chris. Algorithmic Music – David Cope and EMI. Computer History Museum.