 
             var hexValues:Vector.<int> = this.hexValues;
             for (var i:int = 0; i < s.length; i += 4) {
-            	var sample:int = (hexValues[s.charCodeAt(i)]) |
-            	                 (hexValues[s.charCodeAt(i + 1)] << 4) |
-            	                 (hexValues[s.charCodeAt(i + 2)] << 8) |
-            	                 (hexValues[s.charCodeAt(i + 3)] << 12);
-		// sign extension to 32 bits via arithmetic shift            	
-		sample = (sample << 16) >> 16;
-            	this.buffer.push(sample * multiplier);
+                var sample:int = (hexValues[s.charCodeAt(i)]) |
+                                 (hexValues[s.charCodeAt(i + 1)] << 4) |
+                                 (hexValues[s.charCodeAt(i + 2)] << 8) |
+                                (hexValues[s.charCodeAt(i + 3)] << 12);
+                // sign extension to 32 bits via arithmetic shift
+                sample = (sample << 16) >> 16;
+                this.buffer.push(sample * multiplier);
             }
         }
 

                samplesQueued: samplesQueued()
            };
        }
        
        public function samplesQueued():Number {
        	return buffer.length / 2;
        }
        
        public function playbackPosition():Number {
        	if (this.soundChannel == null) {
        		return 0;
        	} else {
        		return this.soundChannel.position / 1000 - this.fudgeFactor;
        	}
        }

        public function soundGenerator(event:SampleDataEvent):void {
            var i:int;
            
            // If we haven't got enough data, write 2048 samples of silence to 
            // both channels, the minimum Flash allows
            if (buffer.length < bufferSize*2) {

    import flash.external.ExternalInterface;
    import flash.media.Sound;
    import flash.media.SoundChannel;

    public class dynamicaudio extends Sprite {
        public var bufferSize:Number = 2048; // In samples
        public var sound:Sound = null;
