Since I was introduced glitch art last May I’ve really been hooked on exploring this technique and how it can affect my artwork. One thing that I’ve never done is to explain why I do this, so here it goes!
For me glitch art is about exploring the boundaries in which things will operate as expected, with particular emphasis on computers. Computers are very complex and can take years to understand understand. Computers are also very obedient. They will do what you tell them to, but you have to tell them in a way that they understand. For example, it is assumed that if you double-click on an image it will open in an image viewer or editor. This is because the image has data in it (the header data) describing what kind of file it is and when you double-click on it an instruction is sent to open that kind of file with any program that can interpret it that data.
But then, what about if we fooled the computer into thinking it is opening one type of file, when in fact it is another. For example, what if we added the header data of an image file to an mp3 file and then tried to edit it in an image editor? The output is usually a burst of colourful pixels. Whilst we may perceive the output as an error and instantly discard it the computer is not as judgmental. It is devoid of emotion and doesn’t question actions and will do what we tell it to do, and so will happily do this with any data that it has been instructed to interpret
Why would one want to do all of this? Think of the computer as a world of its own, or the human body. All of the underlying code and hardware relies on each other for it to operate successfully. Should one part become damaged it can sometimes be fatal, but often the overall ability to operate is hampered. How far can I push a piece of hardware or software before it either breaks itself or the whole computer? You can easily relate this to athletes who constantly put their bodies through hours of physically demanding activity in order to push the boundaries in which their bodies will operate. In either case, at what point will you reach the limits?
More importantly, what can be discovered by doing all of this? New, hidden abilities that we didn’t know our computers had, improved performance, increased knowledge of how things work, a new form of art, or something else? Well, that’s what I want to find out.
As readers of my blog will know by now you can easily import any data into audacity and play it as audio. However, most data that you’ll import and then play will just turn out as noise. That is simply because there’s too much noise in the image i.e. too many colours and too much data. So, if you reduce the amount of colours and data in theory you get something a little bit more pleasing to the ear. Experimentationing time!
These were my initial two shapes that I worked with:
And the resulting sound, when looped a lil’ bit:
It’s not much but it shows definite potential. I’ve yet to work out how colour affects the sound, but I’m getting there
The next logical step is to of course run a glitched image through this process! I worked with this image for the sound then used ImageMagick to crop the image to 30x30px squares and used FFmpeg to arrange them into a video
On Thursday 4th March I took part in the AntsArtJam at BitJam in Stoke-on-Trent. Three canvases were set up on the stage and artists were invited to get creative on them as the night went on.
Photo by These Ants
Those who know me will know that live art is not something that I’ve really done before. I’ve done a fairbitofperforming, but nothing like this, so it was quite an exciting challenge.
In my performance I set out to explore how to preserve glitches. Although there are no rules or even strict definitions to terms such as databending or glitch art, to me glitches are naturally occurring errors whereas databending is the act of reproducing an error. Take, for example, my Glitches set and my Databending set on Flickr. Whereas the Databending set is quite full the Glitches set has only three items. I feel this is because it’s harder to capture naturally occurring glitches as you’re often not prepared for them.
To prepare for my performance I downloaded the two movies from the Blender Foundation (Big Buck Bunny and Elephants Dream) and used a modified version of MPEGFucker to databend them. I opened them to at least see if they could be played, but otherwise had no idea what state they were in. This was then projected onto the canvas where I began to paint it.
Photo by These Ants
I got a few questions asking how I was actually determining what to paint. Afterall, images were zooming by at 24 frames per second, so how would I decide what colour to put where? Overall I was looking for patterns. From the five or so seconds of footage that I’d see I’d try and determine what average value best represented it.
In some ways this is a randomised process. I had only seen seconds of the glitched movie proir to the performance so didn’t know what to expect. Also, marks that I made on the canvas were determined by where my brush was, what colour was on there at the time and what was being projected. To add to this throughout the three-hour performance I didn’t really get to see any of what I was painting, due to the projection onto the canvas. I’m sure there were many occasions where I painted over the same spot many many times.
Here’s the finished product, next to work by Iona Makiola
Photo by These Ants
All of the work from the night, including the video footage that I used, will be exhibited as part of The Talking Shop project in Stoke-on-Trent in the near future
On Thursday 4th February I was Stoke-on-Trent for BitJam. I still don’t have anything ready to show on stage but thought I’d use the night as a testing ground for some of my ideas. I wanted to investigate ways in which to interpret what was happening around me. The main performance of the night was from a chap called Arctic Sunrise
For my first test I fired up Alchemy and attempted to draw the music. Alchemy fortunately has a few tools that can make your sketches react to sounds. They are Create > Mic Shapes and Affect > Mic Expand. Here’s the result of using both of them together
And a nice little animation of those done using GIMP and Openshot.
The next method was to use the Echobender script on a webcam pointing at the stage. Obvious errors in the sound recording actually kinda complimented the video. However, I’m a lil bit disappointed by the speed of the script at the moment. I may investigate doing something similar in Processing.
The final method involved a bit of post-processing. I made a short compilation of clips I shot at BitJam and then opened the video in a text editor and replaced loads of text with other text. The output was then reencoded using Avidemux
So, there you have it! Now to figure out how I can turn this into some sort of performance
One of my overall goals is to find a way to databend live video. I’m sure there’s a way to do it with Processing and Pure:Data but I’m not yet proficient in those programs so they’re out of the question for now. In the meantime I thought to try and hack the Echobender script to databend my webcam images.
tonyg provides a great tutorial on how to convert live webcam images into audio, which I’ve used as a starting point for my hack.
The process for making it works is as follows:
Images from the webcam are saved to the computer
These are converted to a .bmp file then renamed to a .raw file
Sox applies an audio effect to the .raw file
The .raw file is converted back to a .bmp then to a .jpg
The updated webcam image is displayed to a window and updated once every second
Sound overly complicated? It probably is. Like the Echobender script you’ll need ImageMagick and Sox but we’ll also be using Webcam, which you can install via “sudo apt-get install webcam”
If you haven’t already, create a file called “.webcamrc” in your home directory (/home/yourusername) and enter this text into it:
[grab]
delay = 0
text = “”
[ftp]
local = 1
tmp = uploading.jpg
file = webcam.jpg
dir = .
debug = 1
Now create a file called grabframe, place it in your home directory and fill it with this:
To start things running, open up three terminal instances:
In shell number one, run “webcam”.
In shell number two, run “while true; do ./grabframe ; done”.
In shell number three, run “display -update 1 output.jpg”
Voila!
I know it’s quite slow, but I haven’t yet found a way to update faster and it’ll still be restricted by the time it takes Sox/ImageMagick to perform their conversions.
Thanks again to tonyg, Imbecil and Mez for their help and inspiration