# HG changeset patch # User Robert McIntyre # Date 1319930577 25200 # Node ID bc6fbfbbadd974d3ff1ba2599d9c8226f08142ab # Parent 4de7988407ef316aa3b7a07da02ee6553f2a3cc1 retarded spazz dancing achieved diff -r 4de7988407ef -r bc6fbfbbadd9 src/com/aurellem/capture/examples/AdvancedAudio.java --- a/src/com/aurellem/capture/examples/AdvancedAudio.java Sat Oct 29 15:16:06 2011 -0700 +++ b/src/com/aurellem/capture/examples/AdvancedAudio.java Sat Oct 29 16:22:57 2011 -0700 @@ -1,9 +1,11 @@ package com.aurellem.capture.examples; import java.io.File; +import java.nio.ByteBuffer; import com.aurellem.capture.IsoTimer; import com.aurellem.capture.audio.MultiListener; +import com.aurellem.capture.audio.SoundProcessor; import com.aurellem.capture.audio.WaveFileWriter; import com.jme3.app.SimpleApplication; import com.jme3.audio.AudioNode; @@ -20,6 +22,7 @@ import com.jme3.math.Vector3f; import com.jme3.scene.Geometry; import com.jme3.scene.Node; +import com.jme3.scene.Spatial; import com.jme3.scene.shape.Box; import com.jme3.scene.shape.Sphere; import com.jme3.system.AppSettings; @@ -50,7 +53,7 @@ AdvancedAudio app = new AdvancedAudio(); AppSettings settings = new AppSettings(true); - //settings.setAudioRenderer("Send"); + settings.setAudioRenderer("Send"); app.setSettings(settings); app.setShowSettings(false); app.setPauseOnLostFocus(false); @@ -61,17 +64,23 @@ private MotionTrack motionControl; - private void makeEar(Node root, Vector3f position){ + private Spatial makeEar(Node root, Vector3f position){ Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); Geometry ear = new Geometry("ear", new Box(1.0f, 1.0f, 1.0f)); ear.setLocalTranslation(position); mat.setColor("Color", ColorRGBA.Green); ear.setMaterial(mat); root.attachChild(ear); + return ear; } private Geometry bell; + private Spatial ear1; + private Spatial ear2; + private Spatial ear3; + private Spatial ear4; + private Vector3f[] path = new Vector3f[]{ // loop 1 @@ -136,10 +145,10 @@ light.setColor(ColorRGBA.White.mult(1.5f)); rootNode.addLight(light); - makeEar(rootNode, new Vector3f(0, 0 ,20)); - makeEar(rootNode, new Vector3f(0, 0 ,-20)); - makeEar(rootNode, new Vector3f(20, 0 ,0)); - makeEar(rootNode, new Vector3f(-20, 0 ,0)); + ear1 = makeEar(rootNode, new Vector3f(0, 0 ,20)); + ear2 = makeEar(rootNode, new Vector3f(0, 0 ,-20)); + ear3 = makeEar(rootNode, new Vector3f(20, 0 ,0)); + ear4 = makeEar(rootNode, new Vector3f(-20, 0 ,0)); MotionPath track = new MotionPath(); @@ -205,28 +214,57 @@ public File data4 = new File("/home/r/tmp/data4.wav"); public File data5 = new File("/home/r/tmp/data5.wav"); public File data6 = new File("/home/r/tmp/data6.wav"); + + + public class Dancer implements SoundProcessor { + + Spatial entity; + + float scale = 2; + + public Dancer(Spatial entity){ + this.entity = entity; + } + + /** + * this method is irrelevant since there is no state to cleanup. + */ + public void cleanup() {} + + + /** + * Dance to the beat! This is the brain of an AI entity that + * hears it's surroundings and reacts to them. + */ + public void process(ByteBuffer audioSamples, int numSamples) { + System.out.println("I'm DANCING <3"); + entity.scale(this.scale); + if (this.scale == 2f){this.scale = 0.5f;} + else {this.scale = 2;} + } + + + } + + public void simpleInitApp() { this.setTimer(new IsoTimer(60)); - + initAudio(); + initKeys(); + createScene(); if (this.audioRenderer instanceof MultiListener){ MultiListener rf = (MultiListener)this.audioRenderer; - for (int n = 0; n < 0; n++){ - Listener zzz = new Listener(); - rf.addListener(zzz); - } - Listener listener3 = new Listener(); + rf.addListener(auxListener); - rf.addListener(listener3); + rf.registerSoundProcessor(new WaveFileWriter(data1)); - rf.registerSoundProcessor(auxListener, new WaveFileWriter(data2)); - rf.registerSoundProcessor(listener3, new WaveFileWriter(data3)); + rf.registerSoundProcessor(auxListener, new Dancer(ear1)); + } - initAudio(); - initKeys(); - createScene(); + motionControl.play(); }