SiON tuning test

by yonatan
♥0 | Line 50 | Modified 2010-12-06 09:03:44 | MIT License
play

ActionScript3 source code

/**
 * Copyright yonatan ( http://wonderfl.net/user/yonatan )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/daV0s
 */

package {
    import flash.display.Sprite;
    import flash.text.*;
    import org.si.sion.module.*;
    import org.si.sion.utils.*;
    import org.si.sion.*;
	import com.bit101.components.*;

    public class FlashTest extends Sprite {
		private var tf:TextField;
		private var driver:SiONDriver;
		private var pitchTable:Vector.<Vector.<int>>;

        public function FlashTest() {
			tf = new TextField;
			tf.autoSize = "left";
			tf.wordWrap = true;
			tf.width = tf.height = 465;
			addChild(tf);

			driver = new SiONDriver;
			pitchTable = SiOPMTable._instance.pitchTable;

			tf.appendText("driver: " + driver + "\n");
			tf.appendText("SiOPMTable._instance: " + SiOPMTable._instance + "\n");

			var c:int = pitchTable[2][60 * 64];
			var just_e:int = c*5/4; // pure major 3rd
			var just_g:int = c*3/2; // pure 5th

			var orig_e:int = pitchTable[2][64 * 64];
			var orig_g:int = pitchTable[2][67 * 64];

			tf.appendText("Original c: " + pitchTable[2][60 * 64] + "\n"); // c
			tf.appendText("Original e: " + pitchTable[2][64 * 64] + "\n"); // e
			tf.appendText("Original g: " + pitchTable[2][67 * 64] + "\n"); // g

			tf.appendText("New c: " + pitchTable[2][60 * 64] + "\n"); // c
			tf.appendText("New e: " + pitchTable[2][64 * 64] + "\n"); // e
			tf.appendText("New g: " + pitchTable[2][67 * 64] + "\n"); // g

			function playChord() :void {
				//driver.play("t10 %5 @0 c; %5 @0 e; %5 @0 g;");
				driver.play("t10 %0 @0 c; %0 @0 e; %0 @0 g;");
				//driver.play("t10 c; e; g;");
			}

			function normalTuning(e:*):void {
				pitchTable[2][64 * 64] = orig_e;
				pitchTable[2][67 * 64] = orig_g;
				playChord();
			}
				
			function justIntonation(e:*):void {
				pitchTable[2][64 * 64] = just_e;
				pitchTable[2][67 * 64] = just_g;
				playChord();
			}

			new PushButton(this, 100, 200, "Normal Tuning", normalTuning);
			new PushButton(this, 250, 200, "Just Intonation", justIntonation);
        }
    }
}