Tuesday 22 January 2013

Media Art Design 4 - Project 2: Voice of H2O (QUICK LINKS)

Stage 1: Design Project Proposal
Stage 1: Precedence Studies
Stage 1: Mind Maps
Stage 1: Sketches

Stage 2: Research I - Water Crisis
Stage 2: Research II - Masaru Emoto, Water Emotion
Stage 2: Research III - Cymatics Studies
Stage 2: Survey, Data Collection, Facts Finding
Stage 2: Idea Development Sketches

Stage 3: Functional Specification Worksheet 
Stage 3: Gannt Chart 
Stage 3: Flow Chart 
Stage 3: Budget 

 Stage 4: Authoring 

Stage 5: Artist Impression 
Stage 5: Artist Statement & Technical Statement
Stage 5: Photo Documentation of Project Execution 
Stage 5: Video Documentation

Stage 5: Video Documentation

Video showing the water wave respond with different sine wave

Video showing the water wave respond with different sine wave

Close up shot for water wave


Video showing user interact with Voice of H2O



Video showing when the artist are experimenting with the sine wave frequency and water wave

Stage 5: Photo Documentation of Project Execution

Constructing The Installation
Testing with the speaker

Create different sine wave using Audacity

Testing the respond of microphone

Connect wires of the speaker on the table

Experiment with water wave

Experiment with water wave

Experiment with water wave

Experiment with water wave

____________________________________________________________________

Presentation Day

Voice of H2O

Installation Placement Overview


Installation Placement Overview

Installation Placement Overview


Fish in the aquarium indicates the living things in the sea

Fish in the aquarium indicates the living things in the sea

Water wave

Water wave

Water wave

Water wave

Water wave

Stage 5: Artist Statement & Technical Statement

Click to view bigger image

Stage 5: Artist Impression

Click to view bigger image

Tuesday 25 December 2012

Stage 4: Authoring


Action Script 2.0 is used for this interactive Installation Art Piece. The script will detect the microphone as input. The volume level by the users is divided into 4 categories. Each category will trigger 2 random different heartbeat sounds as the output. When voice is detected, the script will stop detecting the voice until the heartbeat sound is finished played. This is to avoid too many outputs happen at 1 time and affect the art piece.
Below is the script:

//declare a boolean variable to toggle mic on and off
var micToggle:Boolean = true;
onEnterFrame = function() {
                //if true on the mic, if false off the mic
                if (micToggle == true) {
                                myMic = Microphone.get();
                                attachAudio(myMic);
                                myMic.setUseEchoSuppression(true);
                                micOn.text="You can speak now..."
                                //trace("on");
                } else {
                                delete myMic;
                                micOn.text="Please wait..."
                                //trace("off");
                }
                //trace(myMic.activityLevel);
                if (myMic.activityLevel>60 && myMic.activityLevel<70) {
                                detectLevel.text="Level 1"
                                //trace("level 1");
                                micToggle = false;
                                randomVar = random(10);
                                //trace(randomVar);
                                if (randomVar<=5) {
                                                mySound = new Sound();
                                                mySound.attachSound("1.mp3");
                                                mySound.start();
                                                soundSample.text="Sample 1";
                                                //trace("play sound 1");
                                } else {
                                                mySound = new Sound();
                                                mySound.attachSound("2.mp3");
                                                mySound.start();
                                                soundSample.text="Sample 2";
                                                //trace("play sound 2");
                                }
                                delay1 = function () {
                                                micToggle = true;
                                                //trace("yes");
                                };
                                setTimeout(delay1,3000);
                } else if (myMic.activityLevel>70 && myMic.activityLevel<80) {
                                detectLevel.text="Level 2"
                                //trace("level 2");
                                micToggle = false;
                                randomVar = random(10);
                                //trace(randomVar);
                                if (randomVar<=5) {
                                                mySound = new Sound();
                                                mySound.attachSound("3.mp3");
                                                mySound.start();
                                                soundSample.text="Sample 3";
                                                //trace("play sound 3");
                                } else {
                                                mySound = new Sound();
                                                mySound.attachSound("4.mp3");
                                                mySound.start();
                                                soundSample.text="Sample 4";
                                                //trace("play sound 4");
                                }
                                delay2 = function () {
                                                micToggle = true;
                                                //trace("yes");
                                };
                                setTimeout(delay2,3000);
                } else if (myMic.activityLevel>80 && myMic.activityLevel<90) {
                                detectLevel.text="Level 3"
                                //trace("level 3");
                                micToggle = false;
                                randomVar = random(10);
                                //trace(randomVar);
                                if (randomVar<=5) {
                                                mySound = new Sound();
                                                mySound.attachSound("5.mp3");
                                                mySound.start();
                                                soundSample.text="Sample 5";
                                                //trace("play sound 5");
                                } else {
                                                mySound = new Sound();
                                                mySound.attachSound("6.mp3");
                                                mySound.start();
                                                soundSample.text="Sample 6";
                                                //trace("play sound 6");
                                }
                                delay3 = function () {
                                                micToggle = true;
                                                //trace("yes");
                                };
                                setTimeout(delay3,3000);
                               
                } else if (myMic.activityLevel>90 && myMic.activityLevel<100) {
                                detectLevel.text="Level 4"
                                //trace("level 4");
                                micToggle = false;
                                randomVar = random(10);
                                //trace(randomVar);
                                if (randomVar<=5) {
                                                mySound = new Sound();
                                                mySound.attachSound("7.mp3");
                                                mySound.start();
                                                soundSample.text="Sample 7";
                                                //trace("play sound 7");
                                } else {
                                                mySound = new Sound();
                                                mySound.attachSound("8.mp3");
                                                mySound.start();
                                                soundSample.text="Sample 8";
                                                //trace("play sound 8");
                                }
                                delay4 = function () {
                                                micToggle = true;
                                                //trace("yes");
                                };
                                setTimeout(delay4,3000);
                }
};