flash on 2010-4-3

by Sharakusai
♥3 | Line 455 | Modified 2010-04-03 20:07:40 | MIT License
play

ActionScript3 source code

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

<?xml version="1.0" encoding="utf-8"?>
<mx:Application width="500" height="500"  
	paddingTop="8" paddingLeft="8" paddingRight="8" paddingBottom="8"
	xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script><![CDATA[

/*
	MML Player for Mabinogi

	ついでだから、MML@形式をクリップボードから読めるようにと思ったら、
	サンドボックスの設定のせいで何だかややこしい。
	仕方がないのでテキストエリアで頭に"mml@"があれば自動変換する事にしました。
	
	・大文字は通らないので内部で小文字に変換してます。
	・オクターブシフト( < > ) がマビノギでは逆なので変換。
	
	これで大半の曲が鳴ると思いますが、テンポ指定(T)が
	先頭になくて鳴らない曲がありますのでそこだけ修正が必要です。
	テンポチェンジができません。
	
	その他のMMLコマンド等については下記参照で
	SiON MML refernce
	http://mmltalks.appspot.com/document/siopm_mml_ref_05.html
 
 */
	
	
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.desktop.Clipboard;
	import flash.desktop.ClipboardFormats;
	import flash.desktop.ClipboardTransferMode;
    import org.si.sion.*;
    import org.si.sion.utils.SiONPresetVoice;
	import mx.collections.ArrayCollection;
	import mx.controls.*;	

	// SiONDriverクラスのインスタンスを生成
	public var driver:SiONDriver = new SiONDriver();
	// SiONPresetVoiceクラスのインスタンスを生成
	public var presetVoice:SiONPresetVoice = new SiONPresetVoice();
	// SiONVoice型変数を宣言
	public var voice1:SiONVoice;
	// SiONData型変数を宣言
	public var mainMelody:SiONData;

	[Bindable]
	public var cards:ArrayCollection = new ArrayCollection(

//Bass

[ {label:"Analog Bass #2+FBsynth",data:"valsound.bass1"},
{label:"Analog Bass",data:"valsound.bass2"},
{label:"Analog bass #2 (q2)",data: "valsound.bass3" },
{label:"Chopper Bass 0",data:"valsound.bass4"},
{label:"Chopper Bass 1",data:"valsound.bass5"},
{label:"Chopper bass 2 (CUT)", data:"valsound.bass6"},
{label:"Chopper bass 3", data:"valsound.bass7"},
{label:"Elec.Chopper bass+ 4", data:"valsound.bass8"},
{label:"Effect Bass 1", data:"valsound.bass9"},
{label:"Effect Bass 2 to UP", data:"valsound.bass10"},
{label:"Effect Bass 1",  data:"valsound.bass11"},
{label:"Mohaaa", data:"valsound.bass12"},
{label:"Effect FB Bass #5", data:"valsound.bass13"},
{label:"Magical bass", data:"valsound.bass14"},
{label:"E.Bass #6", data:"valsound.bass15"},
{label:"E.Bass #7",data:"valsound.bass16"},
{label:"E.Bass 70", data:"valsound.bass17"},
{label:"VAL006 Bass like Euro",data:"valsound.bass18"},
{label:"E.Bass x2", data:"valsound.bass19"},
{label:"E.Bass x4", data:"valsound.bass20"},
{label:"Metal pick bass X5", data:"valsound.bass21"},
{label:"Groove Bass 1", data:"valsound.bass22"},
{label:"Analog Bass Groove #2", data:"valsound.bass23"},
{label:"Harmonics #1",  data:"valsound.bass24"},
{label:"Low Bass x1",data:"valsound.bass25"},
{label:"Low_bass x2 Little FB",	data:"valsound.bass26"},
{label:"Low Bass x1 Rezzo.",	data:"valsound.bass27"},
{label:"Low Bass Picked",data:"valsound.bass28"},
{label:"metal bass",	data:"valsound.bass29"},
{label:"e.n.bass 1", data:"valsound.bass30"},
{label:"psg bass 1",	data:"valsound.bass31"},
{label:"psg bass 2",	data:"valsound.bass32"},
{label:"rezonance type bass #1",data:"valsound.bass33"},
{label:"slap bass",	data:"valsound.bass34"},
{label:"slap bass 1", data:"valsound.bass35"},
{label:"slap bass 2 (1+)",data:"valsound.bass36"},
{label:"slap bass #3", data:"valsound.bass37"},
{label:"slap bass pull",data:"valsound.bass38"},
{label:"slap bass mute",	data:"valsound.bass39"},
{label:"slap bass pick",  data:"valsound.bass40"},
{label:"super bass #2",  data:"valsound.bass41"},
{label:"sp_bass#3 soft",data:"valsound.bass42"},
{label:"sp_bass#4 soft*2",	data:"valsound.bass43"},
{label:"sp_bass#5 attack",	data:"valsound.bass44"},
{label:"sp.bass#6 rezz+pipebass",data:"valsound.bass45"},
{label:"synth bass 1",data:"valsound.bass46"},
{label:"synth bass 2 myon",data:"valsound.bass47"},
{label:"synth bass #3 cho!", data:"valsound.bass48"},
{label:"synth-wind-bass #4", data:"valsound.bass49"},
{label:"synth bass #5 q2",	data:"valsound.bass50"},
{label:"old wood bass",  	data:"valsound.bass51"},
{label:"w.bass bright", data:"valsound.bass52"},
{label:"w.bass x2 bow",data:"valsound.bass53"},
{label:"wood bass 3 (muted1)", data:"valsound.bass54" },

//Bell

{label:"Calm Bell",data:"valsound.bell1"},
{label:"China Bell Double",data:"valsound.bell2"},
{label:"Church Bell 2",data:"valsound.bell3"},
{label:"Church Bell",data:"valsound.bell4"},
{label:"Glocken 1",data:"valsound.bell5"},
{label:"Harp #1",data:"valsound.bell6"},
{label:"Harp #2",data:"valsound.bell7"},
{label:"kirakira",data:"valsound.bell8"},
{label:"Marimba",data:"valsound.bell9"},
{label:"Old Bell",data:"valsound.bell10"},
{label:"Percus. Bell",data:"valsound.bell11"},
{label:"Pretty Bell",data:"valsound.bell12"},
{label:"Synth Bell #0 (fromOPM)",data:"valsound.bell13"},
{label:"Synth Bell #1 o5",data:"valsound.bell14"},
{label:"Synth Bell 2",data:"valsound.bell15"},
{label:"Viberaphon AMS-modu.",data:"valsound.bell16"},
{label:"twin marinba 2 g&amp",data:"valsound.bell17"},
{label:"twin marinba 1 g&amp",data:"valsound.bell18"},

//Brass

{label:"Brass strings",data:"valsound.brass1"},
{label:"E.mute Trampet",data:"valsound.brass2"},
{label:"HORN 2",data:"valsound.brass3"},
{label:"Alpine Horn #3",data:"valsound.brass4"},
{label:"Lead brass",data:"valsound.brass5"},
{label:"Normal HORN",data:"valsound.brass6"},
{label:"Synth Oboe",data:"valsound.brass7"},
{label:"Oboe 2",data:"valsound.brass8"},
{label:"Attack Brass (q2)",data:"valsound.brass9"},
{label:"SAX",data:"valsound.brass10"},
{label:"Soft brass(lead)",data:"valsound.brass11"},
{label:"Synth Brass 1 OLD",data:"valsound.brass12"},
{label:"Synth Brass 2 OLD",data:"valsound.brass13"},
{label:"Synth Brass 3",data:"valsound.brass14"},
{label:"Synth Brass #4",data:"valsound.brass15"},
{label:"Syn.Brass 5(long)",data:"valsound.brass16"},
{label:"Synth Brass 6",data:"valsound.brass17"},
{label:"Trumpet",data:"valsound.brass18"},
{label:"Trumpet 2",data:"valsound.brass19"},
{label:"Twin Horn (or OL=25)",data:"valsound.brass20"},

//Guitar

{label:"Guitar VeloLow",data:"valsound.guitar1"},
{label:"Guitar VeloHigh",data:"valsound.guitar2"},
{label:"A.Guitar #3",data:"valsound.guitar3"},
{label:"Cutting E.Guitar",data:"valsound.guitar4"},
{label:"Dis. Synth (old)",data:"valsound.guitar5"},
{label:"Dra-spi-Dis.G.",data:"valsound.guitar6"},
{label:"Dis.Guitar 3-",data:"valsound.guitar7"},
{label:"Dis.Guitar 3+",data:"valsound.guitar8"},
{label:"Feed-back Guitar 1",data:"valsound.guitar9"},
{label:"Hard Dis. Guitar 1",data:"valsound.guitar10"},
{label:"Hard Dis.Guitar 3",data:"valsound.guitar11"},
{label:"Dis.Guitar '94 Hard",data:"valsound.guitar12"},
{label:"New Dis.Guitar 1",data:"valsound.guitar13"},
{label:"New Dis.Guitar 2",data:"valsound.guitar14"},
{label:"New Dis.Guitar 3",data:"valsound.guitar15"},
{label:"Overdrive.G. (AL=013)",data:"valsound.guitar16"},
{label:"METAL",data:"valsound.guitar17"},
{label:"Soft Dis.Guitar",data:"valsound.guitar18"},

//Lead

{label:"Aco code",data:"valsound.lead1"},
{label:"Analog synthe 1",data:"valsound.lead2"},
{label:"Bosco-lead",data:"valsound.lead3"},
{label:"Cosmo Lead",data:"valsound.lead4"},
{label:"Cosmo Lead 2",data:"valsound.lead5"},
{label:"Digital lead #1",data:"valsound.lead6"},
{label:"Double sin wave",data:"valsound.lead7"},
{label:"E.Organ 2 bright",data:"valsound.lead8"},
{label:"E.Organ 2 (voice)",data:"valsound.lead9"},
{label:"E.Organ 4 Click",data:"valsound.lead10"},
{label:"E.Organ 5 Click",data:"valsound.lead11"},
{label:"E.Organ 6",data:"valsound.lead12"},
{label:"E.Organ 7 Church",data:"valsound.lead13"},
{label:"Metal Lead",data:"valsound.lead14"},
{label:"Metal Lead 3",data:"valsound.lead15"},
{label:"MONO Lead",data:"valsound.lead16"},
{label:"PSG like PC88 (long)",data:"valsound.lead17"},
{label:"PSG Cut 1",data:"valsound.lead18"},
{label:"Attack Synth",data:"valsound.lead19"},
{label:"Sin wave",data:"valsound.lead20"},
{label:"Synth &amp",data:"valsound.lead21"},
{label:"Chorus #2(Voice)+bell",data:"valsound.lead22"},
{label:"Synth Cut 8-4",data:"valsound.lead23"},
{label:"Synth long 8-4",data:"valsound.lead24"},
{label:"ACO_Code #2",data:"valsound.lead25"},
{label:"ACO_Code #3",data:"valsound.lead26"},
{label:"Synth FB long 4",data:"valsound.lead27"},
{label:"Synth FB long 5",data:"valsound.lead28"},
{label:"Synth Lead 0",data:"valsound.lead29"},
{label:"Synth Lead 1",data:"valsound.lead30"},
{label:"Synth Lead 2",data:"valsound.lead31"},
{label:"Synth Lead 3",data:"valsound.lead32"},
{label:"Synth Lead 4",data:"valsound.lead33"},
{label:"Synth Lead 5",data:"valsound.lead34"},
{label:"Synth Lead 6",data:"valsound.lead35"},
{label:"Synth Lead 7 (Soft FB)",data:"valsound.lead36"},
{label:"Synth PSG",data:"valsound.lead37"},
{label:"Synth PSG 2",data:"valsound.lead38"},
{label:"Synth PSG 3",data:"valsound.lead39"},
{label:"Synth PSG 4",data:"valsound.lead40"},
{label:"Synth PSG 5",data:"valsound.lead41"},
{label:"Sin water synth",data:"valsound.lead42"},

//Percus

{label:"Bass Drum 2",data:"valsound.percus1"},
{label:"Bass Drum 3 o1f",data:"valsound.percus2"},
{label:"RUFINA BD o2c",data:"valsound.percus3"},
{label:"B.D.(-vBend)",data:"valsound.percus4"},
{label:"BD808_2(-vBend)",data:"valsound.percus5"},
{label:"Cho cho 3 (o2e)",data:"valsound.percus6"},
{label:"Cow-Bell 1",data:"valsound.percus7"},
{label:"Crash Cymbal (noise)",data:"valsound.percus8"},
{label:"Crash Noise",data:"valsound.percus9"},
{label:"Crash Noise Short",data:"valsound.percus10"},
{label:"ETHNIC Percus.0",data:"valsound.percus11"},
{label:"ETHNIC Percus.1",data:"valsound.percus12"},
{label:"Heavy BD.",data:"valsound.percus13"},
{label:"Heavy BD2",data:"valsound.percus14"},
{label:"Heavy SD1",data:"valsound.percus15"},
{label:"Hi-Hat close 5_",data:"valsound.percus16"},
{label:"Hi-Hat close 4",data:"valsound.percus17"},
{label:"Hi-Hat close 5",data:"valsound.percus18"},
{label:"Hi-Hat Close 6 -808-",data:"valsound.percus19"},
{label:"Hi-hat #7 Metal o3-6",data:"valsound.percus20"},
{label:"Hi-Hat Close #8 o4",data:"valsound.percus21"},
{label:"Hi-hat Open o4e-g+",data:"valsound.percus22"},
{label:"Open-hat2 Metal o4c-",data:"valsound.percus23"},
{label:"Open-hat3 Metal",data:"valsound.percus24"},
{label:"Hi-Hat Open #4 o4f",data:"valsound.percus25"},
{label:"Metal ride o4c or o5c",data:"valsound.percus26"},
{label:"Rim Shot #1 o3c",data:"valsound.percus27"},
{label:"Snare Drum Light",data:"valsound.percus28"},
{label:"Snare Drum Lighter",data:"valsound.percus29"},
{label:"Snare Drum 808 o2-o3",data:"valsound.percus30"},
{label:"Snare4 -808type- o2",data:"valsound.percus31"},
{label:"Snare5 o1-2(Franger)",data:"valsound.percus32"},
{label:"Tom (old)",data:"valsound.percus33"},
{label:"Synth tom 2 algo 3",data:"valsound.percus34"},
{label:"Synth (Noisy) Tom #3",data:"valsound.percus35"},
{label:"Synth Tom #3",data:"valsound.percus36"},
{label:"Synth -DX7- Tom #4",data:"valsound.percus37"},
{label:"Triangle 1 o5c",data:"valsound.percus38"},

//Piano

{label:"Aco Piano2 (Attack)",data:"valsound.piano1"},
{label:"Backing 1 (Clav.)",data:"valsound.piano2"},
{label:"Clav. coad",data:"valsound.piano3"},
{label:"Deep Piano 1",data:"valsound.piano4"},
{label:"Deep Piano 3",data:"valsound.piano5"},
{label:"E.piano #2",data:"valsound.piano6"},
{label:"E.piano #3",data:"valsound.piano7"},
{label:"E.piano #4(2+)",data:"valsound.piano8"},
{label:"E.(Bell)Piano #5",data:"valsound.piano9"},
{label:"E.Piano #6",data:"valsound.piano10"},
{label:"E.Piano #7", data:"valsound.piano11" },
{label:"Harpci chord 1",data:"valsound.piano12"},
{label:"Harpci 2",data:"valsound.piano13"},
{label:"Piano1 (ML1",data:"valsound.piano14"},
{label:"Piano3",data:"valsound.piano15"},
{label:"Piano4",data:"valsound.piano16"},
{label:"Digital Piano #5",data:"valsound.piano17"},
{label:"Piano 6 High-tone",data:"valsound.piano18"},
{label:"Panning Harpci",data:"valsound.piano19"},
{label:"Yam Harpci chord",data:"valsound.piano20"},

//SE

{label:"S.E.(Detune is needed o2c)",data:"valsound.se1"},
{label:"S.E. 2 o0-1-2",data:"valsound.se2"},
{label:"S.E. 3(Feedin /noise add.)",data:"valsound.se3"},

//Special

{label:"Digital 1",data:"valsound.special1"},
{label:"Digital 2",data:"valsound.special2"},
{label:"Digital[BAS] 3 o2-o3",data:"valsound.special3"},
{label:"Digital[GTR] 3 o2-o3",data:"valsound.special4"},
{label:"Digital 4 o4a",data:"valsound.special5"},

//Strpad

{label:"Accordion1",data:"valsound.strpad1"},
{label:"Accordion2",data:"valsound.strpad2"},
{label:"Accordion3",data:"valsound.strpad3"},
{label:"Chorus #2(Voice)",data:"valsound.strpad4"},
{label:"Chorus #3",data:"valsound.strpad5"},
{label:"Chorus #4",data:"valsound.strpad6"},
{label:"F.Strings 1",data:"valsound.strpad7"},
{label:"F.Strings 2",data:"valsound.strpad8"},
{label:"F.Strings 3",data:"valsound.strpad9"},
{label:"F.Strings 4 (low)",data:"valsound.strpad10"},
{label:"Pizzicate#1(KOTO2)",data:"valsound.strpad11"},
{label:"sound truck modoki",data:"valsound.strpad12"},
{label:"Strings",data:"valsound.strpad13"},
{label:"Synth Accordion",data:"valsound.strpad14"},
{label:"Phaser synthe.",data:"valsound.strpad15"},
{label:"FB Synth.",data:"valsound.strpad16"},
{label:"Synth Strings MB",data:"valsound.strpad17"},
{label:"Synth Strings #2",data:"valsound.strpad18"},
{label:"Synth.Sweep Pad #1",data:"valsound.strpad19"},
{label:"Twin synth. #1 Calm",data:"valsound.strpad20"},
{label:"Twin synth. #2 FB",data:"valsound.strpad21"},
{label:"Twin synth. #3 FB",data:"valsound.strpad22"},
{label:"Vocoder voice1",data:"valsound.strpad23"},
{label:"Voice o3-o5",data:"valsound.strpad24"},
{label:"Voice' o3-o5",data:"valsound.strpad25"},

//Wind

{label:"Clarinet #1",data:"valsound.wind1"},
{label:"Clarinet #2 Brighter",data:"valsound.wind2"},
{label:"E.Flute",data:"valsound.wind3"},
{label:"E.Flute 2",data:"valsound.wind4"},
{label:"Flute + Bell",data:"valsound.wind5"},
{label:"Old flute",data:"valsound.wind6"},
{label:"Whitsle 1",data:"valsound.wind7"},
{label:"Whitsle 2",data:"valsound.wind8"},

//World

{label:"Banjo (Harpci)",data:"valsound.world1"},
{label:"KOTO",data:"valsound.world2"},
{label:"Koto 2",data:"valsound.world3"},
{label:"Sitar 1",data:"valsound.world4"},
{label:"Shamisen 2",data:"valsound.world5"},
{label:"Shamisen 1",data:"valsound.world6"},
{label:"Synth Shamisen",data:"valsound.world7"}])
				
	private function init():void {
	    myCombo.selectedIndex = 92;	//デフォルトの音色
	}

	// Play Button
	private function onButtonClick() : void {

		
	    // セミコロン( ; )で結合
		
	    var melody:String = myText.text + ";" + myText2.text + ";" + myText3.text + ";";
		
	    // マビノギはオクターブシフト( >< )の方向が逆なので
	    // 文字列置換します。
	    // また大文字は通らないので小文字にします。
		
	    var myPattern:RegExp = />/g;  
	    melody = melody.replace(myPattern, "@");	// > を一旦@に変更
	    myPattern = /</g;
	    melody = melody.replace(myPattern, ">");
	    myPattern = /@/g;
	    melody = melody.replace(myPattern, "<");
		
	    melody = melody.toLocaleLowerCase(); //小文字に変換
		
	    mainMelody    = driver.compile(melody)
			
	    //SiONVoice型変数にプリセットボイスを設定
		
	    voice1 = presetVoice[myCombo.selectedItem.data];
	    driver.play();
			
	    // 第一引数にSiONData、第二引数にSiONVoice、
	    // 第三引数以降は、length=0(play all of sequence), 
	    //			delay=0(no delay), quantize=2(8th beat)
		
	    driver.sequenceOn(mainMelody, voice1, 0, 0, 2);
	}

	//テキストエリア メロディ枠
	public function onText1Change():void{
	    var tmp:String = myText.text;
		
	    //mml@形式
	    tmp = tmp.toLocaleLowerCase(); //小文字に変換
	    if ( tmp.slice(0, 4) == "mml@") {
		tmp = tmp.slice(4, tmp.length-1);
		var mmlArray:Array = tmp.split(/,/g);			
		myText.text = String(mmlArray[0]).slice(0,String(mmlArray[0]).length);
		myText2.text = String(mmlArray[1]).slice(0,String(mmlArray[1]).length-1);
		myText3.text = mmlArray[2];
		}
	    strCount1.text = String(myText.text.length) + "文字";
	    strCount2.text = String(myText2.text.length) + "文字";
	    strCount3.text = String(myText3.text.length) + "文字";
		
	}
	// テキストエリア 和音1 文字数カウント
	public function onText2Change():void{
	    var tmp:String = myText2.text;
	    strCount2.text = String(tmp.length) + "文字";
	}
	//テキストエリア 和音2
	public function onText3Change():void{
	    var tmp:String = myText3.text;
	    strCount3.text = String(tmp.length) + "文字";
	}
	
	//クリップボードに書き出し
	public function onCopyButtonClick():void{
	    var mml:String;
	    mml = "mml@" + myText.text + "," + myText2.text + "," + myText3.text + ";";		
	    Clipboard.generalClipboard.clear();
	    Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, mml);
	}

	//テキストエリアのクリア
	public function onClearButtonClick():void{
	    myText.text = "";
	    myText2.text = "";
	    myText3.text = "";
	}

//	以下デモ曲データ
	
private function demo1_click():void{

//MMLをSiONData型にコンパイル
var mml:String = "t120";
mml += "v4r12b12g12&g12b12g12&g12b12g12&g12b12g12&g12b12";
mml += "g12&g12b12g12&g12b12g12&g12b12g12&g12b12g12&g1";
mml += "2b12g12&g12b12g12&g12b12g12&g12b12g12&g12b12g1";
mml += "2&g12b12g12&g12b12g12&g12b12g12&g12>e12c12&c12";
mml += "e12c12&c12e12c12&c12e12c12&c12e12c12&c12e12c12";
mml += "&c12e12c12&c12f+12d+12&d+12f+12d+12&d+12f+12d+";
mml += "12&d+12f+12d+12&d+12f+12d+12&d+12f+12d+12&d+12";
mml += "<b12g12&g12b12g12&g12b12g12&g12b12g12&g12b12g1";
mml += "2&g12b12g12&g12b12a12&a12b12a12&a12b12a12&a12b";
mml += "12a12&a12b12a12&a12b12a12&a12b12g12&g12b12g12&";
mml += "g12b12g12l64<br>gr>e2&e8.l12r<bg+rbg+rbg+rbg+r";
mml += "bg+rbg+raf+raf+raf+raf+raf+raf+r>f+d+rf+d+rf+d";
mml += "+rf+d+rf+d+rf+d+rf+d+rf+d+rf+d+rg+erg+erg+erg+";
mml += "erg+erg+erg+erg+erg+erec+rec+rec+rec+rec+rec+r";
mml += "<bg+rbg+rbg+r>d+<ar>d+<ar>d+<arbg+rbg+rbg+b2";

myText.text = mml;
strCount1.text = String(mml.length);

mml = "v14>bbbbaggf+eegb>eeeedcc<baabb+bb+b>d+c<bbaggf+e";
mml += "f+f+f+f+gf+eeel64r<erb2&b8.&bl4>g+g+g+g+f+eed+";
mml += "d+d+dd+>c+c+c+c+d+c+c+<bbb>c+d+eeeed+dc+c+c+c+";
mml += "<bag+g+g+g+af+eeee2";

myText2.text = mml;
strCount2.text = String(mml.length);

mml = "v8l2.<eeeeeeaabbeebb>e4<b4g4eeef+f+bbeeeeaaebr4b";
mml += "4a4e";

myText3.text = mml;
strCount3.text = String(mml.length);

}
		
private function demo2_click():void{

var mml:String = "t140";
mml+="l16frfffrfffrfffrfffrfffrfffrfffrfffrfffrfffrfffrffereeereeere";
mml+="eereefrfffrfffrfffrffereeereeereeereedrdddrdddrdddrd";
mml+="dereeereeereeereedrdddrdddrdddrddereeereeereeer";
mml+="eefrfffrfffrfffrffereeereeereeereefrfffrfffrfffrffereeere";
mml+="eereeereedrdddrdddrdddrddereeereeereeereedrdddr";
mml+="dddrdddrddereeereeereeereefrfffrfffrfffrffereeereeer";
mml+="eeereefrfffrfffrfffrffereeereeereeereedrdddrdddrdddr";
mml+="ddereeereeereeereev6drdddrdddrdddrddv4ereeeree";
mml+="v2ereeeree";

myText.text = mml;
strCount1.text = String(mml.length);

mml="r1r1v15>f2dfe2c<al8>fedcd4a4e2<a2>d4c<a+agaa+l4";
mml+="a>ec+<al8>ddc<a+agaa+a4>e2l16efgaf2l4dfe2c<al8>f";
mml+="edcd4a4e2<a2>d4c<a+agaa+l4a>ec+<al8>ddc<a+agaa";
mml+="+a4>e2l16efgaf2l4dfe2c<al8>fedcd4a4e2<a2>d4c<a+";
mml+="agaa+l4a>ec+<av10l8>ddc<a+v8agaa+v5a4v3>e2v2l16";
mml+="efga";

myText2.text = mml;
strCount2.text = String(mml.length);

mml="v12<d<a>d<a>d<a>d<a>d<a>d<a>e<a>e<a>d<a>d<a>e<";
mml+="a>e<a>gdgdac+ac+gdgdac+ac+d<a>d<a>e<a>e<a>d<a>";
mml+="d<a>e<a>e<a>gdgdac+ac+gdgdac+ac+d<a>d<a>e<a>e<";
mml+="a>d<a>d<a>e<a>e<a>gdgdac+ac+v6gdgdv4ac+v2ac+";

myText3.text = mml;
strCount3.text = String(mml.length);

	}
		
private function demo3_click():void{

var mml:String = "t140";

mml += "r2.r8v15l16dcc-dgbdgb>d<b8b8b8b>d<b8b>d<b8";
mml += "b>ddc<af+d4edf+a>d<f+a>df+8f+8f+8edf+8edf+";
mml += "8eded<bgd8dcc-dgbdgb>d<b8b8b8b>d<b8b>d<b8b";
mml += ">ddc<af+d4edf+a>d<f+a>df+8f+8f+8edf+8f+edc";
mml += "<bag8g8g4a8g+abab>c+dc+def+4<a>ggf+e4<a>f+";
mml += "f+ed4<a8g+abab>c+dc+def+4<a>ggf+egf+ed8f+8";
mml += "d8<dcc-dgbdgb>d<b8b8b8b>d<b8b>d<b8b>ddc<af";
mml += "+d4edf+a>d<f+a>df+8f+8f+8edf+8edf+8eded<bg";
mml += "d8dcc-dgbdgb>d<b8b8b8b>d<b8b>d<b8b>ddc<af+";
mml += "d4edf+a>d<f+a>df+8f+8f+8edf+8f+edc<bag8g8g";
mml += "8>g8g4&gece<g4.gfegb+gegb+gfgbgf8>g8g4&gdc";
mml += "-d<g4.agfgbgfgbgegb+ge8>g8g4&gece<g4.gfegb";
mml += "+gegb+gfgbgf8>g8g4&gdc-d<g4.agfgbgfgab>c8c";
mml += "8c4";

myText.text = mml;
strCount1.text = String(mml.length);

mml = "r1l8<dv12bgbdbgbdbgbdb+f+b+db+f+b+db+f+b+d";
mml += "b+f+b+dbgbdbgbdbgbdbgbdb+f+b+db+f+b+db+f+b";
mml += "+db+f+b+bdgr>c+<ea4>d<f+ar>c+<ga4>d<f+ar>c";
mml += "+<eg4>d<f+ar>c+gara4r4dbgbdbgbdbgbdb+f+b+d";
mml += "b+f+b+db+f+b+db+f+b+dbgbdbgbdbgbdbgbdb+f+b";
mml += "+db+f+b+db+f+b+db+f+b+dgbrb+ege>e<gb+g>e<g";
mml += "b+g>e<gbg>e<gb+g>f<gbr>f<gbg>f<gbg>f<gbg>e";
mml += "<gb+g>e<gb+g>e<gb+g>e<gb+g>f<gbg>f<gbg>f<g";

myText2.text = mml;
strCount2.text = String(mml.length);

mml = "r1v10o2gdgdgdadadadadgdgdgdgdadadadad8e8g";
mml += "dae>d<aae>d<aae>d<aae>d8d8d<gdgdgdadadadad";
mml += "gdgdgdgdadadadad8e8ggb+gb+gb+g>d<g>d<g>d<g";
mml += ">d<gb+gb+gb+gb+g>d<g>d<g>d<g>d<g>c8c8c";

myText3.text = mml;
strCount3.text = String(mml.length);
		}
		
	
]]></mx:Script>
<mx:Panel title="MML Player for Mabinogi" backgroundColor="0xC0D0D0" width="100%" height="100%" fontSize="12">
    <mx:HBox paddingTop="8" paddingLeft="8" paddingRight="8">
        <mx:ComboBox id="myCombo" dataProvider="{cards}" width="220" height="30" rowCount="15"/>
        <mx:Button label="PLAY" click="onButtonClick();" width="80" height="30"/>
        <mx:Button label="Copy" click="onCopyButtonClick();" toolTip="mml@形式でクリップボードに書き出します"/>
        <mx:Button label="Clear" click="onClearButtonClick();"/>
    </mx:HBox>
    <mx:Label text="Demo Music" paddingLeft="8" />
    <mx:HBox paddingLeft="8">
        <mx:Button id="demo1" label="Demo 1" click="demo1_click()"/>
        <mx:Button id="demo2" label="Demo 2" click="demo2_click()"/>
        <mx:Button id="demo3" label="Demo 3" click="demo3_click()"/>				
    </mx:HBox>
    <mx:VBox paddingLeft="8" paddingRight="8" paddingBottom="8" width="100%" height="100%">
    <mx:HBox>
        <mx:Label text="メロディ"/>
        <mx:Label text="0文字" id="strCount1" />
        <mx:Label text="(MML@形式をこのメロディ欄にペーストしてください)"/>
    </mx:HBox>
    <mx:TextArea id="myText" change="onText1Change();" width="100%" height="100%"/>
    <mx:HBox>
        <mx:Label text="和音1"/>
        <mx:Label text="0文字" id="strCount2"/>
    </mx:HBox>
    <mx:TextArea id="myText2" change="onText2Change();" width="100%" height="100%"/>
    <mx:HBox>
        <mx:Label text="和音2"/>
        <mx:Label text="0文字" id="strCount3" />
    </mx:HBox>
    <mx:TextArea id="myText3" change="onText3Change();" width="100%" height="100%"/>				
    </mx:VBox>
</mx:Panel>
</mx:Application>

Forked