private void loadTone(ToneParamCT8 tone) { param = (ToneParamCT8)tone.Clone(); { var obj = transform.Find("Panel/LFO").gameObject; setSliderValue(obj, "WaveForm", "lw:", 0, 7, param.Lfo.WS); setSliderValue(obj, "Frequency", "lf:", 0, 127, param.Lfo.LF); setSliderValue(obj, "PMPower", "lp:", 0, 127, param.Lfo.LP); setSliderValue(obj, "AMPower", "la:", 0, 127, param.Lfo.LA); if (param.Extended) { setSliderValue(obj, "AttackRate", "ar:", 0, 127, param.Lfo.Env.ExAR); setSliderValue(obj, "DecayRate", "dr:", 0, 127, param.Lfo.Env.ExDR); setSliderValue(obj, "SustainLevel", "sl:", 0, 127, param.Lfo.Env.ExSL); setSliderValue(obj, "SustainRate", "sr:", 0, 127, param.Lfo.Env.ExSR); setSliderValue(obj, "ReleaseRate", "rr:", 0, 127, param.Lfo.Env.ExRR); } else { setSliderValue(obj, "AttackRate", "ar:", 0, 31, param.Lfo.Env.AR); setSliderValue(obj, "DecayRate", "dr:", 0, 31, param.Lfo.Env.DR); setSliderValue(obj, "SustainLevel", "sl:", 0, 15, param.Lfo.Env.SL); setSliderValue(obj, "SustainRate", "sr:", 0, 31, param.Lfo.Env.SR); setSliderValue(obj, "ReleaseRate", "rr:", 0, 15, param.Lfo.Env.RR); } } { var obj = transform.Find("Panel/ENV").gameObject; setSliderValue(obj, "WaveStyle", "ws:", 0, 7, param.WS); setSliderValue(obj, "KeyScale", "ks:", 0, 3, param.Env.KS); setSliderValue(obj, "VelocitySense", "vs:", 0, 7, param.Env.VS); setSliderValue(obj, "TotalLevel", "tl:", 0, 127, param.Env.TL); if (param.Extended) { setSliderValue(obj, "AttackRate", "ar:", 0, 127, param.Env.ExAR); setSliderValue(obj, "DecayRate", "dr:", 0, 127, param.Env.ExDR); setSliderValue(obj, "SustainLevel", "sl:", 0, 127, param.Env.ExSL); setSliderValue(obj, "SustainRate", "sr:", 0, 127, param.Env.ExSR); setSliderValue(obj, "ReleaseRate", "rr:", 0, 127, param.Env.ExRR); } else { setSliderValue(obj, "AttackRate", "ar:", 0, 31, param.Env.AR); setSliderValue(obj, "DecayRate", "dr:", 0, 31, param.Env.DR); setSliderValue(obj, "SustainLevel", "sl:", 0, 15, param.Env.SL); setSliderValue(obj, "SustainRate", "sr:", 0, 31, param.Env.SR); setSliderValue(obj, "ReleaseRate", "rr:", 0, 15, param.Env.RR); } } { var wt = transform.Find("Panel/WaveTable").GetComponent <WaveTable>(); for (int i = 0; i < 32; i++) { wt.WT[i] = param.WT[i]; } } updateParam(); }
private void Awake() { syntheStation = GameObject.FindObjectOfType <MySyntheStation>(); sampleTools = GameObject.FindObjectOfType <SampleTools>(); mmlBox = sampleTools.GetComponent <MyMMLBox>(); { var extend = transform.Find("Panel/Extend").GetComponent <Button>(); extend.onClick.AddListener(() => { param.Extended = !param.Extended; updateParam(); loadTone(param); }); } { inputField = transform.Find("Panel/InputField").GetComponent <InputField>(); inputField.onEndEdit.AddListener((v) => { var tone = new ToneParamCT8(); if (tone.LoadFromString(v)) { loadTone(tone); } }); var presets = GetComponentsInChildren <PresetButton>(); foreach (var pb in presets) { var btn = pb.GetComponent <Button>(); var tp = new ToneParamCT8(pb.ToneData); btn.onClick.AddListener(() => { loadTone(tp); }); } } { var obj = transform.Find("Panel/LFO").gameObject; setupSlider(obj, "WaveForm", "lw:", (val) => { param.Lfo.WS = (Byte)val; updateParam(); }); setupSlider(obj, "Frequency", "lf:", (val) => { param.Lfo.LF = (Byte)val; updateParam(); }); setupSlider(obj, "PMPower", "lp:", (val) => { param.Lfo.LP = (Byte)val; updateParam(); }); setupSlider(obj, "AMPower", "la:", (val) => { param.Lfo.LA = (Byte)val; updateParam(); }); setupSlider(obj, "AttackRate", "ar:", (val) => { param.Lfo.Env.AR = (Byte)val; updateParam(); }); setupSlider(obj, "DecayRate", "dr:", (val) => { param.Lfo.Env.DR = (Byte)val; updateParam(); }); setupSlider(obj, "SustainLevel", "sl:", (val) => { param.Lfo.Env.SL = (Byte)val; updateParam(); }); setupSlider(obj, "SustainRate", "sr:", (val) => { param.Lfo.Env.SR = (Byte)val; updateParam(); }); setupSlider(obj, "ReleaseRate", "rr:", (val) => { param.Lfo.Env.RR = (Byte)val; updateParam(); }); } { var obj = transform.Find("Panel/ENV").gameObject; setupSlider(obj, "WaveStyle", "ws:", (val) => { param.WS = (Byte)val; updateParam(); }); setupSlider(obj, "KeyScale", "ks:", (val) => { param.Env.KS = (Byte)val; updateParam(); }); setupSlider(obj, "VelocitySense", "vs:", (val) => { param.Env.VS = (Byte)val; updateParam(); }); setupSlider(obj, "TotalLevel", "tl:", (val) => { param.Env.TL = (Byte)val; updateParam(); }); setupSlider(obj, "AttackRate", "ar:", (val) => { param.Env.AR = (Byte)val; updateParam(); }); setupSlider(obj, "DecayRate", "dr:", (val) => { param.Env.DR = (Byte)val; updateParam(); }); setupSlider(obj, "SustainLevel", "sl:", (val) => { param.Env.SL = (Byte)val; updateParam(); }); setupSlider(obj, "SustainRate", "sr:", (val) => { param.Env.SR = (Byte)val; updateParam(); }); setupSlider(obj, "ReleaseRate", "rr:", (val) => { param.Env.RR = (Byte)val; updateParam(); }); } { var wt = transform.Find("Panel/WaveTable").GetComponent <WaveTable>(); wt.OnUpdateAction += (idx) => { param.WT[idx] = wt.WT[idx]; updateParam(); }; } { var keyboard = transform.Find("Panel/Keyboard").GetComponent <Keyboard>(); keyboard.ChNo = chNo; keyboard.PortNo = portNo; } { var mmlEditorCanvas = transform.parent.Find("MMLPlayerCanvas"); var button = transform.Find("Panel/MMLEditorButton").GetComponent <Button>(); button.onClick.AddListener(() => { mmlBox.Play("Click"); sampleTools.MoveCameraTo(mmlEditorCanvas.localPosition); mmlEditorCanvas.GetComponent <CanvasGroup>().interactable = true; this.GetComponent <CanvasGroup>().interactable = false; }); } }