forked from: flash on 2010-4-3
forked from flash on 2010-4-3 (diff: 1)
ActionScript3 source code
/**
* Copyright marcsali ( http://wonderfl.net/user/marcsali )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/EH1g
*/
<?xml version="1.0" encoding="utf-8"?>
<!-- forked from Sharakusai's flash on 2010-4-3 -->
<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&",data:"valsound.bell17"},
{label:"twin marinba 1 g&",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 &",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>
