Sample Playing Matrix

I had to make a sample playing matrix and here it is
package 
{

	//Class extends MovieClip
    import flash.display.MovieClip;
	import flash.display.Sprite;
    //Needed for our Buttons and Complete Events
    import flash.events.MouseEvent;
    import flash.events.Event;
    //Needed for standing Wave Library
    import flash.media.Sound;
    import com.noteflight.standingwave3.elements.*;
    import com.noteflight.standingwave3.filters.*;
    import com.noteflight.standingwave3.formats.*;
    import com.noteflight.standingwave3.generators.*;
    import com.noteflight.standingwave3.modulation.*;
    import com.noteflight.standingwave3.output.*;
    import com.noteflight.standingwave3.performance.*;
    import com.noteflight.standingwave3.sources.*;
    import com.noteflight.standingwave3.utils.*;

	public class Main extends MovieClip
	{

		var sinewavePlayer:AudioPlayer = new AudioPlayer();
		var sinewave:IAudioSource;
		var urbanSoundPlayer:AudioPlayer = new AudioPlayer();
        var C:Sound = new Csharp();
		var D:Sound = new Dsharp();
		var F:Sound = new Fsharp();
		var G:Sound = new Gsharp();
		var A:Sound = new Asharp();

		public function Main()
		{
			// constructor code
			//initNotes();
			initSample();

		}
		
		private function initNotes(){
			var notes:Array = [playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA,
							   playSinewaveC, playSinewaveD, playSinewaveF, playSinewaveG, playSinewaveA];
			
			
			var btn:Sprite;
			for ( var i:uint = 0; i < notes.length; i++ )
			{
				
				btn = new Sprite();
				btn.graphics.beginFill( Math.round( Math.random() * 0xFFFFFF ) );
				btn.graphics.drawRect( 0, 0, 50, 50 );
				btn.x = ( i % 20 ) * 50;
				btn.y = Math.floor( i / 20 ) * 50;
		
				// event listeners
				btn.addEventListener( MouseEvent.ROLL_OVER, notes[i] );
				//btn.addEventListener( MouseEvent.ROLL_OVER, playPianoSound );
				
		
				this.addChild( btn );
			}
		}
		
		private function initSample(){
			var samples:Array = [playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 playSoundC, playSoundD, playSoundF, playSoundG, playSoundA,
								 ];
			
			
			var btn:Sprite;
			for ( var i:uint = 0; i < samples.length; i++ )
			{
				
				btn = new Sprite();
				btn.graphics.beginFill( 0x000000 );
				btn.graphics.drawRect( 0, 0, 50, 50 );
				btn.x = ( i % 20 ) * 50;
				btn.y = Math.floor( i / 20 ) * 50;
		
				// event listeners
				btn.addEventListener( MouseEvent.ROLL_OVER, samples[i] );
				btn.addEventListener( MouseEvent.ROLL_OUT, samplesClear );
				//btn.addEventListener( MouseEvent.ROLL_OVER, playPianoSound );
				
		
				this.addChild( btn );
			}
		}
		
		
		
		private function samplesClear(e:Event):void{
			
			var btn:Sprite = e.currentTarget as Sprite;
            btn.graphics.clear();
            btn.graphics.beginFill( 0x000000 );
            btn.graphics.drawRect( 0, 0, 50, 50 );
			
		}
		// Samples
		private function playSoundC(e:Event):void{
			
			var btn:Sprite = e.currentTarget as Sprite;
            btn.graphics.clear();
            btn.graphics.beginFill( 0xFFFFFF );
            btn.graphics.drawRect( 0, 0, 50, 50 );
			var pianoSource:IAudioSource = new SoundSource(C,new AudioDescriptor());
			urbanSoundPlayer.addEventListener(Event.SOUND_COMPLETE,SoundCompleteC);
			urbanSoundPlayer.play(pianoSource);
		}
		
		private function SoundCompleteC(e:Event):void
		{
			trace('complete');
			//pianoSoundPlayer.stop(pianoSource);
		}
		
		//d
		private function playSoundD(e:Event):void{
			
			var btn:Sprite = e.currentTarget as Sprite;
            btn.graphics.clear();
            btn.graphics.beginFill( 0xFFFFFF );
            btn.graphics.drawRect( 0, 0, 50, 50 );
			var pianoSource:IAudioSource = new SoundSource(D,new AudioDescriptor());
			urbanSoundPlayer.addEventListener(Event.SOUND_COMPLETE,SoundCompleteD);
			urbanSoundPlayer.play(pianoSource);
		}
		
		private function SoundCompleteD(e:Event):void
		{
			trace('complete');
			//pianoSoundPlayer.stop(pianoSource);
		}
		
		//f
		private function playSoundF(e:Event):void{
			
			var btn:Sprite = e.currentTarget as Sprite;
            btn.graphics.clear();
            btn.graphics.beginFill( 0xFFFFFF );
            btn.graphics.drawRect( 0, 0, 50, 50 );
			var pianoSource:IAudioSource = new SoundSource(F,new AudioDescriptor());
			urbanSoundPlayer.addEventListener(Event.SOUND_COMPLETE,SoundCompleteF);
			urbanSoundPlayer.play(pianoSource);
		}
		
		private function SoundCompleteF(e:Event):void
		{
			trace('complete');
			//pianoSoundPlayer.stop(pianoSource);
		}
		
		//g
		private function playSoundG(e:Event):void{
			
			var btn:Sprite = e.currentTarget as Sprite;
            btn.graphics.clear();
            btn.graphics.beginFill( 0xFFFFFF );
            btn.graphics.drawRect( 0, 0, 50, 50 );
			var pianoSource:IAudioSource = new SoundSource(G,new AudioDescriptor());
			urbanSoundPlayer.addEventListener(Event.SOUND_COMPLETE,SoundCompleteG);
			urbanSoundPlayer.play(pianoSource);
		}
		
		private function SoundCompleteG(e:Event):void
		{
			trace('complete');
			//pianoSoundPlayer.stop(pianoSource);
		}
		
		private function playSoundA(e:Event):void{
			
			var btn:Sprite = e.currentTarget as Sprite;
            btn.graphics.clear();
            btn.graphics.beginFill( 0xFFFFFF );
            btn.graphics.drawRect( 0, 0, 50, 50 );
			var pianoSource:IAudioSource = new SoundSource(A,new AudioDescriptor());
			urbanSoundPlayer.addEventListener(Event.SOUND_COMPLETE,SoundCompleteA);
			urbanSoundPlayer.play(pianoSource);
		}
		
		private function SoundCompleteA(e:Event):void
		{
			trace('complete');
			//pianoSoundPlayer.stop(pianoSource);
		}
		
        //csharp
		private function playSinewaveC(e:Event):void
		{
		    trace(e.target);
			sinewave = new SineSource(new AudioDescriptor(),0.2,100,0.2);
			sinewavePlayer.addEventListener(Event.SOUND_COMPLETE,onPlaybackCompleteC);
			sinewavePlayer.play(sinewave);
		}

		private function onPlaybackCompleteC(e:Event):void
		{
			trace('complete');
			sinewavePlayer.stop(sinewave);
		}
		private function stopSinewaveC(e:Event):void
		{
			trace('stop');
			sinewavePlayer.stop(sinewave);
			sinewave = null;

		}
		
		//dsharp
		private function playSinewaveD(e:Event):void
		{
		    trace(e.target);
			
			sinewave = new SineSource(new AudioDescriptor(),0.2,200,0.1);
			sinewavePlayer.addEventListener(Event.SOUND_COMPLETE,onPlaybackCompleteD);
			sinewavePlayer.play(sinewave);
		}

		private function onPlaybackCompleteD(e:Event):void
		{
			trace('complete');
			
			sinewavePlayer.stop(sinewave);
		}
		private function stopSinewaveD(e:Event):void
		{
			trace('stop');
			sinewavePlayer.stop(sinewave);
			sinewave = null;

		}
		
		//fsharp
		private function playSinewaveF(e:Event):void
		{
		    trace(e.target);
			
			sinewave = new SineSource(new AudioDescriptor(),0.2,300,0.1);
			sinewavePlayer.addEventListener(Event.SOUND_COMPLETE,onPlaybackCompleteF);
			sinewavePlayer.play(sinewave);
		}

		private function onPlaybackCompleteF(e:Event):void
		{
			trace('complete');
			
			sinewavePlayer.stop(sinewave);
		}
		private function stopSinewaveF(e:Event):void
		{
			trace('stop');
			sinewavePlayer.stop(sinewave);
			sinewave = null;

		}
		
		//gsharp
		private function playSinewaveG(e:Event):void
		{
		    trace(e.target);
			
			sinewave = new SineSource(new AudioDescriptor(),0.2,400,0.1);
			sinewavePlayer.addEventListener(Event.SOUND_COMPLETE,onPlaybackCompleteG);
			sinewavePlayer.play(sinewave);
		}

		private function onPlaybackCompleteG(e:Event):void
		{
			trace('complete');
			
			sinewavePlayer.stop(sinewave);
		}
		private function stopSinewaveG(e:Event):void
		{
			trace('stop');
			sinewavePlayer.stop(sinewave);
			sinewave = null;

		}
		
		//asharp
		private function playSinewaveA(e:Event):void
		{
		    trace(e.target);
			
			sinewave = new SineSource(new AudioDescriptor(),0.2,500,0.1);
			sinewavePlayer.addEventListener(Event.SOUND_COMPLETE,onPlaybackCompleteA);
			sinewavePlayer.play(sinewave);
		}

		private function onPlaybackCompleteA(e:Event):void
		{
			trace('complete');
			
			sinewavePlayer.stop(sinewave);
		}
		private function stopSinewaveA(e:Event):void
		{
			trace('stop');
			sinewavePlayer.stop(sinewave);
			sinewave = null;

		}
	}

}