package { import de.popforge.audio.output.Audio; import de.popforge.audio.output.AudioBuffer; import flash.display.Sprite; import flash.events.Event; import net.fladdict.mml.MML; import net.fladdict.mml.MMLParser; public class soundStudy extends Sprite { public var buffer:AudioBuffer public var mml:MML //1フレーム理論値1470配列、多分5000回分も計算すればきれいに演奏できる…はず public function soundStudy() { start(); } public function start():void { buffer = new AudioBuffer(16, Audio.MONO, Audio.BIT8, Audio.RATE22050); buffer.onInit = bufferInit; buffer.onStart = bufferStart; buffer.onComplete = bufferComplete; mml = MMLParser.parse("t120o3l8c.el4dref;eef+rg+a", buffer); } protected function bufferInit(bufer:AudioBuffer):void { buffer.start(); } protected function bufferStart(buffer:AudioBuffer):void { } protected function bufferComplete(buffer:AudioBuffer):void { var samples:Array = buffer.getSamples(); mml.update(samples) buffer.update(); } } }