Skip to content

Instantly share code, notes, and snippets.

@Oldes
Last active October 14, 2020 03:41
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Oldes/63703c0e775f647eee40 to your computer and use it in GitHub Desktop.
Save Oldes/63703c0e775f647eee40 to your computer and use it in GitHub Desktop.
SoundRAW loop
package core
{
import display.TimelineMemoryBlock;
import flash.events.SampleDataEvent;
import flash.media.Sound;
import avm2.intrinsics.memory.*;
/**
* ...
* @author Oldes
*/
public class SoundRAW extends Sound
{
protected var mPointerHead:uint;
protected var mPointerTail:uint;
protected var mPointer:uint;
public function SoundRAW(memoryBlock:TimelineMemoryBlock)
{
super();
mPointerHead = memoryBlock.head;
mPointerTail = memoryBlock.tail;
mPointer = mPointerHead ;
this.addEventListener(SampleDataEvent.SAMPLE_DATA, sampleData);
}
public function dispose():void {
this.removeEventListener(SampleDataEvent.SAMPLE_DATA, sampleData);
}
private function sampleData(event:SampleDataEvent):void
{
var p:uint = mPointer;
for (var i:int = 0; i < 5292; i++)
{
event.data.writeFloat( sxi16(li16(p)) / 32767 );
if ((p += 2) >= mPointerTail) p = mPointerHead;
}
mPointer = p;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment