1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| import flash.display.Graphics;
import flash.events.Event;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundMixer;
import flash.net.URLRequest;
const PLOT_HEIGHT:int = 300;
const PLOT_WIDTH:int = 800;
const CHANNEL_LENGTH:int = 256;
const BAR_WIDTH:Number = PLOT_WIDTH/CHANNEL_LENGTH;
const COLOR_RANGE:Number = 255/1.42;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
var bytes:ByteArray = new ByteArray();
function onEnterFrame(event:Event):void
{
SoundMixer.computeSpectrum(bytes, true, 0);
var g:Graphics = this.graphics;
g.clear();
var n:Number = 0;
// left channel
for (var i:int = 0; i < CHANNEL_LENGTH; i++)
{
n = bytes.readFloat()*COLOR_RANGE;
g.beginFill(n << 16);
g.drawRect(i*BAR_WIDTH, 0, BAR_WIDTH, PLOT_HEIGHT);
g.endFill();
} |