From 1d70588bb0e6539f15ed755f39c4b4b4eb10c017 Mon Sep 17 00:00:00 2001 From: fjenett Date: Sun, 12 Jun 2011 11:57:28 +0000 Subject: [PATCH] js mode HTML5 audio example --- .../examples/HTML5/Audio/blobb/blobb.pde | 130 ++++++++++++++++++ .../examples/HTML5/Audio/blobb/data/BD.mp3 | Bin 0 -> 6047 bytes .../examples/HTML5/Audio/blobb/data/BD.wav | Bin 0 -> 32300 bytes javascript/examples/HTML5/Audio/blobb/snd.js | 41 ++++++ 4 files changed, 171 insertions(+) create mode 100644 javascript/examples/HTML5/Audio/blobb/blobb.pde create mode 100644 javascript/examples/HTML5/Audio/blobb/data/BD.mp3 create mode 100644 javascript/examples/HTML5/Audio/blobb/data/BD.wav create mode 100644 javascript/examples/HTML5/Audio/blobb/snd.js diff --git a/javascript/examples/HTML5/Audio/blobb/blobb.pde b/javascript/examples/HTML5/Audio/blobb/blobb.pde new file mode 100644 index 000000000..e01923c61 --- /dev/null +++ b/javascript/examples/HTML5/Audio/blobb/blobb.pde @@ -0,0 +1,130 @@ +/** + * Blobbbs.
+ * + * + */ + + Ball[] balls; + float maxSpeed = 0.5; + Audio audio; + + void setup () + { + size( 400, 300 ); + } + + void draw () + { + background(75); + + if ( balls != null ) + { + for ( int i = 0; i < balls.length; i++ ) + { + balls[i].update(); + balls[i].draw(); + } + } + } + + void newAudio ( Audio a ) + { + if ( audio == null ) + { + audio = a; + + balls = new Ball[10]; + for ( int i = 0; i < balls.length; i++ ) + { + balls[i] = new Ball(); + } + } + } + + class Ball + { + float px,py; + float dx,dy; + float rad; + float col; + float hitness; + + Ball () + { + rad = random(2,20); + + px = rad + random(width-2*rad); + py = rad + random(height-2*rad); + dx = random(-maxSpeed,maxSpeed); + dy = random(-maxSpeed,maxSpeed); + + colorMode(HSB); + col = color(random(255),200,150); + colorMode(RGB); + + hitness = 50; + } + + void update () + { + px += dx; + py += dy; + + hitness -= hitness/10; + + if ( px-rad <= 0 || px+rad >= width ) + { + dx *= -1; + playSound(); + hitness = 10; + } + if ( py-rad <= 0 || py+rad >= height ) + { + dy *= -1; + playSound(); + hitness = 10; + } + } + + void playSound () + { + if ( audio != null ) + { + audio.pause(); + audio.currentTime = 0; + audio.play(); + } + } + + void draw () + { + strokeWeight( hitness ); + stroke(200); + fill(col); + ellipse( px, py, rad*2, rad*2 ); + } + } + + /* let Processing know about the HTMLAudioElement */ + interface Audio + { + boolean muted; + float volume; + + boolean loop; + boolean paused; + boolean ended; + + String currentSrc; + + float duration; + float currentTime; + + void play(); + void pause(); + + Audio cloneNode( boolean deep ); /*DOM*/ + } diff --git a/javascript/examples/HTML5/Audio/blobb/data/BD.mp3 b/javascript/examples/HTML5/Audio/blobb/data/BD.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..9d1aa49fe48bbb294177aa3cd437ee61d241ee78 GIT binary patch literal 6047 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 R-t3~OHoIC1`+vxm{{j}x``-Wn literal 0 HcmV?d00001 diff --git a/javascript/examples/HTML5/Audio/blobb/data/BD.wav b/javascript/examples/HTML5/Audio/blobb/data/BD.wav new file mode 100644 index 0000000000000000000000000000000000000000..c8ac8535b5c581378c1a03ec54145627de17b63f GIT binary patch literal 32300 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 literal 0 HcmV?d00001 diff --git a/javascript/examples/HTML5/Audio/blobb/snd.js b/javascript/examples/HTML5/Audio/blobb/snd.js new file mode 100644 index 000000000..4bd5364f2 --- /dev/null +++ b/javascript/examples/HTML5/Audio/blobb/snd.js @@ -0,0 +1,41 @@ + +window.onload = function () { + var audioNode = document.getElementsByTagName("audio")[0]; + + function tryFindSketch () { + var sketch = Processing.instances[0]; + if ( sketch == undefined ) + return setTimeout(tryFindSketch,200); // retry + + sketch.newAudio( audioNode ); + } + + addEvent(audioNode, 'canplaythrough', function () { + tryFindSketch(); + }); +} + +// http://html5demos.com/ +var addEvent = (function () { + if (document.addEventListener) { + return function (el, type, fn) { + if (el && el.nodeName || el === window) { + el.addEventListener(type, fn, false); + } else if (el && el.length) { + for (var i = 0; i < el.length; i++) { + addEvent(el[i], type, fn); + } + } + }; + } else { + return function (el, type, fn) { + if (el && el.nodeName || el === window) { + el.attachEvent('on' + type, function () { return fn.call(el, window.event); }); + } else if (el && el.length) { + for (var i = 0; i < el.length; i++) { + addEvent(el[i], type, fn); + } + } + }; + } +})();