# HG changeset patch # User Robert McIntyre # Date 1320011881 25200 # Node ID 13d354e1184be289300e7d75f95aa305561d51cf # Parent c4bfbf5d090eff57887838bc4da035853f21730a trying to track down very strange bug where a listener and aux listener at the same location hear different things diff -r c4bfbf5d090e -r 13d354e1184b src/com/aurellem/capture/audio/AudioSendRenderer.java --- a/src/com/aurellem/capture/audio/AudioSendRenderer.java Sun Oct 30 13:57:16 2011 -0700 +++ b/src/com/aurellem/capture/audio/AudioSendRenderer.java Sun Oct 30 14:58:01 2011 -0700 @@ -71,6 +71,7 @@ catch (InterruptedException e) {e.printStackTrace();} audioSend.addListener(); this.listeners.add(l); + l.setRenderer(this); } /** diff -r c4bfbf5d090e -r 13d354e1184b src/com/aurellem/capture/examples/AdvancedAudio.java --- a/src/com/aurellem/capture/examples/AdvancedAudio.java Sun Oct 30 13:57:16 2011 -0700 +++ b/src/com/aurellem/capture/examples/AdvancedAudio.java Sun Oct 30 14:58:01 2011 -0700 @@ -17,6 +17,7 @@ import com.aurellem.capture.audio.WaveFileWriter; import com.jme3.app.SimpleApplication; import com.jme3.audio.AudioNode; +import com.jme3.audio.AudioParam; import com.jme3.audio.Listener; import com.jme3.cinematic.MotionPath; import com.jme3.cinematic.events.MotionTrack; @@ -206,11 +207,11 @@ rootNode.attachChild(music); audioRenderer.playSource(music); music.setPositional(true); - //music.setVolume(1f); - - //music.setMaxDistance(200.0f); - //music.setRefDistance(0.1f); - //music.setRolloffFactor(5f); + music.setVolume(1f); + music.setReverbEnabled(false); + music.setMaxDistance(200.0f); + music.setRefDistance(1f); + music.setRolloffFactor(5f); audioRenderer.pauseSource(music); } @@ -219,12 +220,12 @@ private Listener auxListener = new Listener(); - public File data1 = new File("/home/r/tmp/data1.wav"); - public File data2 = new File("/home/r/tmp/data2.wav"); - public File data3 = new File("/home/r/tmp/data3.wav"); - 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 File data1 = new File("/home/r/tmp/data1.wav"); + //public File data2 = new File("/home/r/tmp/data2.wav"); + //public File data3 = new File("/home/r/tmp/data3.wav"); + //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 { @@ -258,7 +259,7 @@ float max = Float.NEGATIVE_INFINITY; for (float f : out){if (f > max) max = f;} - + audioSamples.clear(); System.out.println(debug); System.out.println(max); @@ -284,22 +285,25 @@ MultiListener rf = (MultiListener)this.audioRenderer; + listener.setLocation(ear1.getLocalTranslation()); + auxListener = new Listener(listener); + rf.addListener(auxListener); - WaveFileWriter writer = null; - WaveFileWriter writer2 = null; - auxListener.setLocation(ear1.getLocalTranslation()); - listener.setLocation(ear1.getLocalTranslation()); - try {writer = new WaveFileWriter(new File("/home/r/tmp/out.wav"));} + WaveFileWriter aux = null; + WaveFileWriter main = null; + + + try {aux = new WaveFileWriter(new File("/home/r/tmp/aux.wav"));} catch (FileNotFoundException e) {e.printStackTrace();} - try {writer2 = new WaveFileWriter(new File("/home/r/tmp/outmain.wav"));} + try {main = new WaveFileWriter(new File("/home/r/tmp/main.wav"));} catch (FileNotFoundException e) {e.printStackTrace();} rf.registerSoundProcessor(auxListener, - new CompositeSoundProcessor(new Dancer(ear1, "aux"), writer)); + new CompositeSoundProcessor(new Dancer(ear1, "aux"), aux)); rf.registerSoundProcessor( - new CompositeSoundProcessor(new Dancer(ear1, "main"), writer2)); + new CompositeSoundProcessor(new Dancer(ear1, "--------\nmain"), main)); } motionControl.play(); @@ -358,6 +362,12 @@ music.setLocalTranslation(bell.getLocalTranslation()); music.setVelocity(bellVelocity); + //audioRenderer.updateSourceParam(music, AudioParam.Position); + //audioRenderer.updateSourceParam(music, AudioParam.Velocity); + + + //System.out.println("main:" + listener.getVolume()); + //System.out.println("aux:" + auxListener.getVolume()); //org.lwjgl.openal.AL10.alSourcef(1, org.lwjgl.openal.AL10.AL_MIN_GAIN, 0f); //org.lwjgl.openal.AL10.alSourcef(1, org.lwjgl.openal.AL10.AL_ROLLOFF_FACTOR, 5f);