mac online apple blackjack

Final Project: Setting up


Unfortunately, black-and-white televisions could not be connected with computers. So, the Action B appears.

I would like to keep using B/W televisions as creative medium in this piece of work. And it will handle the part of literally embodied noise of signal. And there are three 24″ screens which are outputted the images on the computers showing the reflective images from the variable noise in the space.

A great thanks for technical team in Cultural Lab.

Final Project: Three visions


Step by step, after figuring out what I am making, can I call this project is ‘The illusion of time and you’?

To some extent, it looks more like the advanced vision of our group project of the theme of ‘time’ in the aspect of time, space and individuals by interaction…

Vision 1 – B/W vision of time-delayed image:

Vision 2 – random particles with time-delayed image (responding by sound feedback):

Vision 3 – variegated image  (responding by sound feedback):


Chung, C. (2013) Multimedia Programming with Pure DataPackt Publishing.


Final Project: Inspiration of screens


The sketch of prototype

After talking with tutor who suggested me to think about some issues that might be happened in building the technical part, I changed the mind of using projections and cloths, instead using old televisions under the consideration of interactive experience and retrospective development of technology.

The idea was built based on triptych (The triptych form arises from early Christian art – Wikipedia) which shows the religious content in the history of this art form. This art form was inspired me in the aspect of using three different forms of ‘one’ to show multi-layer visual experience by interaction.

Master of the Beffi Triptych 
The Madonna and Child with Scenes from the
Life of Christ and the Virgin (The Beffi Triptych)
early fifteenth century

The Haywain, Escorial

Example of old television

Digital Media Project: A Moonish Installation


Documentation of A Moonish Installation

Flashy Version (the version with ringing sound)

Creative Arts Practice for Digital Media Project 2014.

This interactive installation is controlled by Arduino and a USB camera, which captures the light status and ‘request’ the light by the way of ringing and changing colour of the rotatable flower randomly to attract participant’s attention if too much light is blocked on the top of the installation. It shows the opposite colour (i.e. white for the demand of dark and black is for the need of light source) in alternative light condition (dark / bright) that the installation can be captured, and impels the participant to response it as a part of the creation.

The code was programmed by Processing and Pure Data and outputted by two different visual forms through interaction. This installation was designed to invite participants to ponder the perception and interaction, immersion and embodiment, partial and the whole by digital arts throughout the interactive process.

Project Code:

Processing Part:

import ddf.minim.spi.*;
import ddf.minim.signals.*;
import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.ugens.*;
import ddf.minim.effects.*;

import processing.serial.*; // import the Serial library
Serial myPort;

Minim minim;
AudioPlayer sou; // variable name

float sensorValue;
float angle = 0;
int x = -142;
int y = -112;
int smallPoint, largePoint;

PImage img;

PShape SVG01;
PShape SVG02;
PShape SVG03;
PShape SVG04;
PShape SVG05;
PShape SVG06;
//PShape SVG07;
PShape SVG08;
PShape SVG09;
PFont font; // showing the sensorValue

void setup() {

// font = loadFont(“Serif-24.vlw”);
size(1300, 800);

// println(Serial.list()); // print a list of available serial ports
/* better way to print this
for (int i=0;i<Serial.list().length;i++) {

myPort = new Serial(this, “COM7”, 9600);
myPort.clear(); // Empty the buffer, removes all the data stored there.
myPort.bufferUntil(‘\n’); // Throw out the first reading, in case we started reading
// in the middle of a string from the sender. (start buffer Until “\n” is read)
SVG01= loadShape(“img1.svg”);
SVG02= loadShape(“img2.svg”);
SVG03= loadShape(“img3.svg”);
SVG04= loadShape(“img4.svg”);
SVG05= loadShape(“img5.svg”);
SVG06= loadShape(“img6.svg”);
// SVG07= loadShape(“img7.svg”);
SVG08= loadShape(“img8.svg”);
SVG09= loadShape(“img0.svg”);
SVG51= loadShape(“img51.svg”);
SVG61= loadShape(“img61.svg”);
SVG81= loadShape(“img81.svg”);
void draw() {
//textFont(font, 24);
// text(“sensorValue= “, width*0.3, height/2);
// text(sensorValue, width*0.55, height/2);
pushMatrix(); // save the current coordinate system to the stack
// translate to the center of screen
translate(width/2, height/2);
// rotate everything when the frameCount adds up

// small flower
if (sensorValue>300 && sensorValue<=400) {
fill(0, 180);
shape(SVG09, x+10, y+10, sensorValue+15, sensorValue+15);
shape(SVG01, x+10, y+10, sensorValue+15, sensorValue+15);
// bigger flower
else if (sensorValue>400 && sensorValue<=500) {
fill(0, 180);
shape(SVG03, x-20, y-20, sensorValue+20, sensorValue+20);
shape(SVG04, x-30, y-30, sensorValue+25, sensorValue+25);
// random colour
else if (sensorValue>500 && sensorValue<=700) {
//Audio is triggered
minim = new Minim(this);
sou = minim.loadFile(“ESA_installation.wav”);;
fill(random(0, 100), random(0, 100), random(0, 100), 80);
shape(SVG51, x-60, y-60, sensorValue+60, sensorValue+60);
fill(random(100, 200), random(100, 200), random(100, 200), 150);
shape(SVG61, x-50, y-50, sensorValue+35, sensorValue+35);
fill(random(200, 255), random(200, 255), random(200, 255), 50);
shape(SVG81, x-60, y-60, sensorValue+40, sensorValue+40);

// else if (sensorValue>700 && sensorValue<=800) {
// fill(random(0, 100), random(0, 100), random(0, 100), 100);
// }
else {
fill(255, 150);
shape(SVG08, x+30, y+30, sensorValue+300, sensorValue+300);

popMatrix(); // restores the prior coordinate system

void serialEvent (Serial myPort) { // SerialEvent is called when data is available.
// get the ASCII string:
String inString = myPort.readStringUntil(‘\n’);
if (inString != null) { // only does the following when there is something
// convert to a float
sensorValue = float(inString);

Arduino Part:
void setup(){

void loop(){


Pure Data Part:

Environmental Sound Art: Experimental Sound & Soundscape

This work was made by the delay effect of Pure Data that captured and reacted surrounding sound directly as the way of exploring different possibility of environmental sound from a limited space. It was an experimental piece to collect the feedback from the sound of wood blocks and noise via playing drum head and snare wires with 20 strands connected with loudspeaker in that place.

This piece of soundscape was recorded in Newcastle upon Tyne 2014, and it mixed two versions up from different periods of time (daytime in the early Spring and evening in the end of Spring). It was created after several trials by building the concept of the comparison of soundscape in the context of cityscape and the issue of animal habitats. Noise (e.g. car waves and electronic noise from machines), as the part of the product in the industrial world, represents the change of landscape. I used headphone and a perspex box as the way of outputting the first recording, which could be heard like the residual noise.

This piece of soundscape was mixed two states of recording up in Newcastle University. The one that I stayed beside the dried leaves to do the recording in last Christmas Day near the campus, and another one was made by walking around the campus in May 2014.

This piece is an environmental sound art work which was performed by different cobblestones in Whitley Bay of Newcastle upon Tyne nearly 2 months. There are totally 5 pieces – 4 pieces were performed on different sea rocks in the bay and the last recording ended when tide rose. It was mixed together for several experiments. This piece is the one that I used 4-channels installation to combine them together for the metaphor of time, space and memory.