HSS8121: Location Recordings

Uncategorized

The sound recordings included in this post were produced on 11th Feb this year, in response to a soundwalk/seminar delivered by Tim Shaw. They were not edited until April/May. They consist of a series of location recordings of footsteps made around the Culture Lab building. The recordings were made as an experiment. A handheld Zoom H1 recorder was used to make the recordings. The recordings reflect the position of the artist. The locations change, but the action remains constant. Listening back to the recordings one is immediately aware of the changing space, through the differing reverberant qualities of those spaces. This awareness brings to mind Zeno’s paradoxes and Henri Bergson’s ideas of Duration.

footsteps #06

footsteps #07

footsteps #08

footsteps #09

footsteps #12

footsteps #11

footsteps #10

footsteps #13

footsteps #14

footsteps #15

footsteps #18

footsteps #17

footsteps #16

footsteps #19

footsteps #20

footsteps #21

footsteps #22

footsteps #26

footsteps #27

In responding to the recordings a series of layered remixes were created. Experiments were also made playing the sounds back into the space where they were recorded.

footsteps (remix)

HSS8121: documentation 17-02-11

Uncategorized

Acknowledging a weakness revealed through the process of assessment at the end of the first semester. An effort was made to actively engage with the process of documentation. In particular this was perceived to be in the area of photography and video. With this in mind I gathered a handful of available tools – camera, phone, webcam, audio recorder and endoscope – and booked the CL studio space to conduct some experimental documentation.

Two current concerns were chosen as subjects for documentation. These being audio work produced in response to a recent soundwalk/seminar given by Tim Shaw and work about Morse code being prepared for exhibition at the Old Low Light in North Shields.

The audio work involved making a series of sound recordings of footsteps. These were to be made using different surfaces and spaces in Culture Lab. Further description of this will be included in a separate post. The Morse code project involved creating and experimenting with a relay, flashing lights, two buzzers and a battery.

The footsteps were recorded using a Zoom H1 sound recorder; the footwear was photographed using a variety of different devices. Circuits were built and photographed; videos were also produced using different imaging devices; further experiments were conducted with lighting.

The results were compared and uploaded for sharing using Google Photos. Links are listed below:

Of the available options, the phone was found to be most immediate and to give the greatest flexibility.

A selection of sound recordings form the session are included below.

documentation (sound recording) #01

documentation (sound recording) #02

documentation (sound recording) #03

documentation (sound recording) #04

documentation (sound recording) #05

documentation (sound recording) #23

documentation (sound recording) #24

documentation (sound recording) #25

documentation (sound recording) #28

blogging about blogging

Uncategorized

There is something inherently disappointing in the act of blogging. Since 2002 I have designed, built and contributed to many different blogs. In most instances it is the common experience that posting is slow to start and quick to cease. I have built community blogs where no one has posted; I built a blog for my daughter on her tenth birthday, she is now 23 years old and the blog still has only three posts.

On the other hand I have sketch books dating back nearly forty years. At best the blog can only ever be a showcase for creativity. It lacks the ability to be an active element of creative practice. The sketchbook on the other hand is full of scribblings, nascent ideas and rough workings out. It can contain railway tickets, pressed flowers, leaves, addresses, telephone numbers and mistakes. It is not insignificant that rough drawings in a 1981 sketchbook were useful in creating work that was shown at Hoults Yard earlier this year.

Where the sketchbook is a private space for enabling creative thought, the blog can only ever be a public showcase for arrogance and proof.

HSS8120 – insecurity generator

Uncategorized

This self generative audio piece is an experiment in aesthetics. AlsaModularSynth is used to generate a constantly evolving sequence of random minor chords. Audio output is passed through a circuit made from temporary wiring, emergency lighting batteries and exposed speaker cones. The presentation is functional, the incessant burbling and near miss repetition hint at uncertainty and threat.

The work interrogates the near future and draws dark conclusions. Despite the fact that all this is true, the work is no more than an essay, playing with form in the hope that truth may emerge.

HSS8120 – manifesto

Uncategorized

It is the nature of manifesto statements to present binary statements. There is an exactitude and certainty implied through the use of definitive language. In responding to the project brief the document presented for assessment takes the notion and pushes it to the extreme. Statements are translated to binary form and presented as a series of ‘1’ and ‘0’.

Under the title of ‘Nothing Matters’ a series of short statements are presented. Each statement suggests multiple meanings, subverting the form, shifting from didactic text to meditation. It can be said that meditation is the art of doing nothing, this then is art which strives to say everything through saying nothing.

in creating this work it was necessary to write a short script to translate ascii text to binary form. The script uses a single line of perl to make the translation


$ echo "ABC" | perl -lpe '$_=join " ", unpack"(B8)*"'
01000001 01000010 01000011

The process can be reversed using this matching perl one-liner.


$ echo 01000001 01000010 01000011 | perl -lape '$_=pack"(B8)*",@F'
ABC

HSS8120 – time for truth

Uncategorized

In responding to the project brief for the January assessment, work has focused on the convergence of truth and time. Radio is no longer a linear shared experience. Digital devices allow asynchronous listening; buffering and other factors can delay signal reception for periods of anything up to 20 or 30 seconds. The verity of the Greenwich time signal has been eroded. In an era when we are increasingly aware of the blurring between fiction, speculation and truth, the placing of the time signal in advance of the news is not without significance. If the time signal itself cannot be trusted, how can we trust anything which follows.

In troubleshooting any device or system it is important to consider events immediately preceding the breakdown. It is suggested that the same is true in the instance of our questioning the verity of news delivery.

As a mechanism to explore these ideas scripts have been written to generate local versions of a variety of time signals. In this first script tones are produced to match thaose of the familiar Greenwich time signal (GTS).


# ====================================
# GTS.sh
# Greenwich Time Signal (GTS)
# Mike Hirst
# Sat 17 Dec 2016 13:28:44 GMT
# ====================================

s="sox -n -p synth 0.1 sine 1k pad 0 0.9 gain -n -3"
l="sox -n -p synth 0.5 sine 1k pad 0 0.5 gain -n -3"
{
play "|$s" "|$s" "|$s" "|$s" "|$s" "|$l"
# sox "|$s" "|$s" "|$s" "|$s" "|$s" "|$l" GTS.wav
} &> /dev/null


This next script produces the tones used on China National Radio.


# ====================================
# CNR.sh
# China national radio time signal
# Mike Hirst
# Sun 18 Dec 2016 14:36:54 GMT
# ====================================

s="sox -n -p synth 0.25 sine 800 pad 0 0.75 gain -n -3"
l="sox -n -p synth 0.5 sine 1600 pad 0 0.5 gain -n -3"
{
play "|$s" "|$s" "|$s" "|$s" "|$s" "|$l"
# sox "|$s" "|$s" "|$s" "|$s" "|$s" "|$l" CNR.wav
} &> /dev/null


This final script recreates the tones used on NHK Television (Japan).


# ====================================
# NHK.sh
# NHK Television (Japan) time signal
# Mike Hirst
# Sun 18 Dec 2016 14:45:08 GMT
# ====================================

s="sox -n -p synth 0.25 sine 1k pad 0 0.75 gain -n -3"
l="sox -n -p synth 3 sine 1k pad 0 3 gain -n -3"
{
play "|$s" "|$s" "|$s" "|$l"
# sox "|$s" "|$s" "|$s" "|$l" NHK.wav
} &> /dev/null


The tones have been used to create a series of public experiments where loops of different lengths are broadcast using a short range FM transmitters. Other elements have been introduced including the 60Hz signal used to synchronize clocks and the telephone speaking clock service.

This work will be presented as part of the HSS8102 assessment on 20th Jan 2017 and also as part of a group exhibition at Hoults Yard, Walker Rd, Newcastle on 23rd February 2017.

Books read and other resources used in completing this work are listed below. N.B. list also includes resources used in compiling manifesto and creating ‘insecurity generator’ audio piece.

HSS8120 – processing (objects and arrays)

Uncategorized

The work described here relates to a coding workshop delivered by Tom Schofield. The sketches below show the use of class and array within the processing context.

In this first simple sketch random shapes are generated in a never ending barrage of colour and surprise.


void setup() {
size(255, 255);
frameRate(4);
}

void draw() {
int x = int(random(0, 255));
int y = int(random(0, 255));
int z = int(random(0, 255));
fill(x, y, z);
noStroke();
ellipse(x, y, z, z);
}

This code can be improved though using system variable frameCount and modulo operator to control speed.


void setup() {
size(255, 255);
}

void draw() {
if ( frameCount % 20 == 0 ) {
int x = int(random(0, 255));
int y = int(random(0, 255));
int z = int(random(0, 255));
fill(x, y, z);
noStroke();
ellipse(x, y, z, z);
}
}

In this next sketch the coloured circles are defined using the Ball class definition.


Ball coloured_ball;
int w;
int h;

void setup() {
size(720, 560);
w = width;
h = height;
background(255);
}

void draw() {
if (frameCount % 20 == 0) {
coloured_ball = new Ball(int(random(0, h)), color(int(random(0, 255)), int(random(0, 255)), int(random(0, 255))), int(random(0, w)), int(random(0, h)));
coloured_ball.display();
}
}

class Ball {
int d;
int h;
int x;
int y;
Ball (int diameter, color hex, int xpos, int ypos) {
d = diameter;
h = hex;
x = xpos;
y = ypos;
}
void display () {
noStroke();
fill(h);
ellipse(x, y, d, d);
}
}

In this final example an array is used to limit the number of circles shown.


/*
====================================
bubbles.pde
class/array example
Mike Hirst
2016-12-12
====================================
*/

Bubbles[] bubbles;

void setup() {
size(180, 180);
bubbles = new Bubbles[3];
for (int i = 0; i < 3; i++) {
bubbles[i] = new Bubbles();
}
}

void draw() {
background(255);
for (Bubbles bubble : bubbles) {
bubble.display();
}
}

class Bubbles {
int d;
int x;
int y;
color c;
Bubbles() {
d = int(random(0, 255));
x = int(random(0, 255));
y = int(random(0, 255));
c = color(int(random(0, 255)), int(random(0, 255)), int(random(0, 255)), d);
}
void display() {
noStroke();
fill(c);
ellipse(x, y, d, d);
d++;
if ( d > 255 ) {
d = int(random(0, 255));
x = int(random(0, 255));
y = int(random(0, 255));
c = color(int(random(0, 255)), int(random(0, 255)), int(random(0, 255)), d);
}
}
}

HSS8120 – scraping

Uncategorized

This work was completed in response to a coding workshop delivered by Tom Schofield on 12th Dec 2016. In this exercise the BeautifulSoup Python library is used to extract data relating to air pollution. Taking as it’s source the U.S. Department of State Air Quality Monitoring Program twitter feed information is gathered relating to pm2.5 particle pollution in the Chinese city of Beijing.

Data is filtered and formated then output as a timestampped csv file.


# ====================================
# beijingair.py
# scrape AQI twitter feed
# Mike Hirst
# Sun 15 Jan 2017 02:07:36 GMT
# ====================================

import datetime
import csv
import requests
from BeautifulSoup import BeautifulSoup

url = ‘https://twitter.com/beijingair’
response = requests.get(url)
html = response.content

soup = BeautifulSoup(html)
timeline = soup.find(‘div’, attrs={‘id’: ‘timeline’})

data = []
for t in timeline.findAll(‘div’, attrs={‘class’: ‘js-tweet-text-container’}):
if ” 24hr” not in t.p.string:
values = []
values = t.p.string.split(‘; ‘)
data.append(values)

timestamp = ‘{:%Y-%m-%dT%H_%M_%S}’.format(datetime.datetime.now())

file = open(“beijingair”+timestamp+”.csv”,”wb”)
writer = csv.writer(file)
writer.writerows(data)

Sample output is included below:


01-15-2017 21:00,PM2.5,81.0,164,Unhealthy (at 24-hour exposure at this level)
01-15-2017 20:00,PM2.5,69.0,158,Unhealthy (at 24-hour exposure at this level)
01-15-2017 19:00,PM2.5,69.0,158,Unhealthy (at 24-hour exposure at this level)
01-15-2017 18:00,PM2.5,69.0,158,Unhealthy (at 24-hour exposure at this level)
01-15-2017 17:00,PM2.5,59.0,153,Unhealthy (at 24-hour exposure at this level)
01-15-2017 16:00,PM2.5,55.0,149,Unhealthy for Sensitive Groups (at 24-hour exposure at this level)
01-15-2017 15:00,PM2.5,47.0,129,Unhealthy for Sensitive Groups (at 24-hour exposure at this level)
01-15-2017 14:00,PM2.5,42.0,117,Unhealthy for Sensitive Groups (at 24-hour exposure at this level)
01-15-2017 13:00,PM2.5,34.0,97,Moderate (at 24-hour exposure at this level)
01-15-2017 12:00,PM2.5,32.0,93,Moderate (at 24-hour exposure at this level)
01-15-2017 11:00,PM2.5,27.0,82,Moderate (at 24-hour exposure at this level)
01-15-2017 10:00,PM2.5,33.0,95,Moderate (at 24-hour exposure at this level)
01-15-2017 09:00,PM2.5,23.0,74,Moderate (at 24-hour exposure at this level)
01-15-2017 08:00,PM2.5,35.0,99,Moderate (at 24-hour exposure at this level)
01-15-2017 07:00,PM2.5,51.0,139,Unhealthy for Sensitive Groups (at 24-hour exposure at this level)
01-15-2017 06:00,PM2.5,52.0,142,Unhealthy for Sensitive Groups (at 24-hour exposure at this level)
01-15-2017 05:00,PM2.5,50.0,137,Unhealthy for Sensitive Groups (at 24-hour exposure at this level)
01-15-2017 04:00,PM2.5,53.0,144,Unhealthy for Sensitive Groups (at 24-hour exposure at this level)
01-15-2017 03:00,PM2.5,37.0,105,Unhealthy for Sensitive Groups (at 24-hour exposure at this level)

This same code can be used to get data about other cities, including Chengdu and Zhujiang New Town, Guangzhou.

By way of comparison a bash script was written to achieve the same result. In this instance cURL is used to download raw html, which is filtered and formatted using sed.


# ====================================
# beijingair.sh
# scrape AQI twitter feed
# Mike Hirst
# Sun 15 Jan 2017 01:15:59 GMT
# ====================================

url=’https://twitter.com/beijingair’
timestamp=$(date +%Y-%m-%dT%H_%M_%S)
csv=”beijingair${timestamp}.csv”
{
curl ${url}|sed ‘/tweet-text\x22/!d;/24hr/d;s/ *\x3c[^\x3e]\+\x3e *//g;s/; /,/g’ > ${csv}
} &> /dev/null

Execution times were compared and the bash script was consistently found to be significantly faster.

Screenshot_2017-01-15_13-24-21

Books read and other resources used in completing this work are listed below.

Schhh…

Uncategorized

Nov 21st saw a visit to Culture Lab from Ann Rosén and Sten-Olof Hellström from the Stockholm-based Schhh… record label. A collaborative audio piece was developed using Schmitt NAND gates. The gated oscillators were manipulated using a range of different resistive materials, including graphite and knitted yarn.

gated_oscillator

HSS8120 – audio art + language

Uncategorized

Also generated through the collaborative instructioning project, this body of work focuses on the dissonance between audio art and language. Starting as a playful investigation using image manipulation and collage, the process resulted in a series which questions the language through which we articulate our understanding of audio art and music.

Though the works may appear frivolous, the intent is one of serious exploration. These works have resulted in a much greater project which has resulted in the design and building of a series of flexible half rack audio modules under the name ‘Passive Devices’. Full description of this will be included in a later posting.

chickenheads

prophet

wee-woo-tinkle-bonk