Example #1
0
        void setupSingerIcon()
        {
            if (ProjectBeeper == null || ProjectBeeper.AllocedObject == null)
            {
                return;
            }
            if (OAC == null || OAC.AllocedObject == null)
            {
                return;
            }
            ProjectObject po     = (ProjectObject)ProjectBeeper.AllocedObject;
            PartsObject   pt     = (PartsObject)OAC.AllocedObject;
            string        avatar = "";

            if (po.SingerList.Count > 0)
            {
                avatar = po.SingerList[0].Avatar;
            }
            foreach (SingerObject so in po.SingerList)
            {
                if (so.getGuid() == pt.SingerGUID)
                {
                    avatar = so.Avatar;
                    break;
                }
            }
            if (System.IO.File.Exists(avatar))
            {
                UtauPic.Image = Image.FromFile(avatar);
            }
            else
            {
                UtauPic.Image = null;
            }
        }
Example #2
0
 /// <summary>
 /// パーツオブジェクトのクリック
 /// </summary>
 private void OnPartsClicked(PartsObject partsObj)
 {
     //選択パーツに設定
     select = partsObj;
     //有効化
     owner.ActivateState(this.name);
 }
        public void UpdateLyrics(ref PartsObject parts, int NoteIndex)
        {
            int curIndex = NoteIndex;

            NoteObject[] NoteMap = new NoteObject[] { null, null, null, null, null };

            NoteMap[0] = curIndex - 2 >= 0 ? parts.NoteList[curIndex - 2] : null;
            NoteMap[1] = curIndex - 1 >= 0 ? parts.NoteList[curIndex - 1] : null;
            NoteMap[2] = parts.NoteList[curIndex];
            NoteMap[3] = curIndex + 1 < parts.NoteList.Count ? parts.NoteList[curIndex + 1] : null;
            NoteMap[4] = curIndex + 2 < parts.NoteList.Count ? parts.NoteList[curIndex + 2] : null;
            // p2 p1 cur
            // p1 cur n1
            // cur n1 n2
            if (NoteMap[1] != null)
            {
                SetupCurrentPhonmem(NoteMap[0], NoteMap[1], NoteMap[2], parts.Tempo, parts.UseLyricDicitonary);
            }
            if (NoteMap[2] != null)
            {
                SetupCurrentPhonmem(NoteMap[1], NoteMap[2], NoteMap[3], parts.Tempo, parts.UseLyricDicitonary);
            }
            if (NoteMap[3] != null)
            {
                SetupCurrentPhonmem(NoteMap[2], NoteMap[3], NoteMap[4], parts.Tempo, parts.UseLyricDicitonary);
            }
        }
Example #4
0
        void FillObject(ProjectObject source)
        {
            if (source == null)
            {
                return;
            }
            ProjectObject dest = ProjectObject;

            FillObject(ref dest, source);
            try
            {
                PartsObject po = dest.TrackerList[0].PartList[0];
                for (int i = 0; i < dest.TrackerList.Count; i++)
                {
                    for (int j = 0; j < dest.TrackerList[i].PartList.Count; j++)
                    {
                        if (dest.TrackerList[i].PartList[j].getGuid() == SelectingGUID)
                        {
                            po = dest.TrackerList[i].PartList[j];
                            break;
                            i = dest.TrackerList.Count;
                        }
                    }
                }
                sw.LoadParts(ref po, true);
                tw.GuiRefresh();
                aw.Refresh();
            }
            catch {; }
        }
        public void UpdateOutboundsLyric(ref PartsObject parts, int StartNoteIndex, int EndNoteIndex)
        {
            if (EndNoteIndex < 0)
            {
                EndNoteIndex = parts.NoteList.Count - 1;
            }
            if (StartNoteIndex < 0)
            {
                StartNoteIndex = 0;
            }
            if (EndNoteIndex > parts.NoteList.Count - 1)
            {
                EndNoteIndex = parts.NoteList.Count - 1;
            }

            NoteObject[] NoteMap = new NoteObject[] { null, null, null, null, null, null };

            NoteMap[0] = StartNoteIndex - 2 >= 0 ? parts.NoteList[StartNoteIndex - 2] : null;
            NoteMap[1] = StartNoteIndex - 1 >= 0 ? parts.NoteList[StartNoteIndex - 1] : null;
            NoteMap[2] = parts.NoteList[StartNoteIndex];


            NoteMap[3] = parts.NoteList[EndNoteIndex];
            NoteMap[4] = EndNoteIndex + 1 < parts.NoteList.Count ? parts.NoteList[EndNoteIndex + 1] : null;
            NoteMap[5] = EndNoteIndex + 2 < parts.NoteList.Count ? parts.NoteList[EndNoteIndex + 2] : null;

            if (NoteMap[1] != null)
            {
                SetupCurrentPhonmem(NoteMap[0], NoteMap[1], NoteMap[2], parts.Tempo, parts.UseLyricDicitonary);
            }
            if (NoteMap[4] != null)
            {
                SetupCurrentPhonmem(NoteMap[3], NoteMap[4], NoteMap[5], parts.Tempo, parts.UseLyricDicitonary);
            }
        }
Example #6
0
        void setupSingerIcon()
        {
            if (ProjectBeeper == null || ProjectBeeper.AllocedObject == null)
            {
                return;
            }
            if (OAC == null || OAC.AllocedObject == null)
            {
                return;
            }
            ProjectObject po     = ProjectBeeper.AllocedSource;
            PartsObject   pt     = OAC.AllocedSource;
            string        avatar = "";

            if (po.SingerList.Count > 0)
            {
                avatar = PathUtils.AbsolutePath(po.SingerList[0].getRealSingerFolder(), po.SingerList[0].Avatar);
            }
            foreach (SingerObject so in po.SingerList)
            {
                if (so.getGuid() == pt.SingerGUID)
                {
                    avatar = PathUtils.AbsolutePath(so.getRealSingerFolder(), so.Avatar);
                    break;
                }
            }
            if (System.IO.File.Exists(avatar))
            {
                UtauPic.Image = Image.FromFile(avatar);
            }
            else
            {
                UtauPic.Image = null;
            }
        }
Example #7
0
 static void FitPartsObject(PartsObject proj)
 {
     if (proj.BasePitchList == null)
     {
         proj.PitchCompiler.InitPitchBase();
     }
 }
Example #8
0
        ProjectObject LoadUST(string FilePath)
        {
            USTOriginalProject USTPO = USTOriginalSerializer.Deserialize(FilePath);
            PartsObject        pro   = USTOriginalSerializer.UST2Parts(USTPO);

            ProjectObject poj = new ProjectObject();

            poj.InitEmpty();
            poj.TrackerList[1].PartList[0] = pro;

            foreach (NoteObject po in pro.NoteList)
            {
                byte[] bt  = System.Text.Encoding.Default.GetBytes(po.Lyric);
                string Str = System.Text.Encoding.GetEncoding("Shift-JIS").GetString(bt);
                po.Lyric = Str;
            }
            int sg = 1;

            for (long i = 1; i <= pro.TickLength; i += 32)//
            {
                sg = sg * -1;
                pro.PitchList.Add(new PitchObject(i, sg * 0.5));
            }

            pro.PitchCompiler.FixedPitch();
            string abc = ProjectObject.Serializer.Serialize(poj);

            return(poj);
        }
        List <PitchObject>[] getPitchObjLists(long MinTick = -1, long MaxTick = -1)
        {
            long nt = MinTick > 0 ? MinTick : PianoWindow.MinShownTick;
            long mt = MaxTick > nt ? MaxTick : PianoWindow.MaxShownTick;


            List <KeyValuePair <long, long> > Partsy = new List <KeyValuePair <long, long> >();
            long st = -1;
            long et = -1;

            for (int i = 0; i < NoteList.Count; i++)
            {
                NoteObject PN = NoteList[i];
                if (PN.Tick >= mt)
                {
                    break;
                }
                if (PN.Tick + PN.Length < nt)
                {
                    continue;
                }
                if (et != -1 && PN.Tick - et > AntiBordTick)//AntiBordTick在这里为音符间最大间隔
                {
                    if (st != -1)
                    {
                        Partsy.Add(new KeyValuePair <long, long>(st, et));
                        st = -1;
                        et = -1;
                    }
                }
                if (st == -1)
                {
                    st = PN.Tick;
                }
                et = PN.Tick + PN.Length;
            }
            if (st != -1 && et != -1)
            {
                Partsy.Add(new KeyValuePair <long, long>(st, et));
                st = -1;
                et = -1;
            }
            List <List <PitchObject> > Ret = new List <List <PitchObject> >();

            foreach (KeyValuePair <long, long> SE in Partsy)
            {
                if (SE.Key < SE.Value)
                {
                    List <PitchObject> PList = new List <PitchObject>();
                    for (long i = TickSortList <PitchObject> .TickFormat(SE.Key); i <= TickSortList <PitchObject> .TickFormat(SE.Value); i = i + TickSortList <PitchObject> .TickStep)
                    {
                        PartsObject po = PartsObject;
                        PList.Add(new PitchObject(i, po.PitchCompiler.getRealPitch(i)));
                    }
                    Ret.Add(PList);
                }
            }
            return(Ret.ToArray());
        }
        ///<summary>パーツラベル描画</summary>
        void DrawPartsLabel()
        {
            List <enPartsType> drawList = BasePosition.GenGetZSortList(sendMotion_.stPassive.isLeft, sendMotion_.stPassive.isBack);

            foreach (var item in drawList)
            {
                DrawParts(item, false);
            }

            const int MAG = 5;

            foreach (var item in drawList)
            {
                PartsObject partsObject = GetPartsObject(item);

                Vector2 pos = partsObject.pos;
                pos.y = -pos.y;                 //上下反転
                //bool mirror = partsObject.partsTransform.mirror;
                Sprite sp = parent_.GetSprite(item, sendMotion_.stPassive.isBack, sendMotion_.stPassive.faceNo);

                if (sp == null)
                {
                    break;
                }

                Vector2 basepos = new Vector2(-sp.pivot.x, +sp.pivot.y - sp.rect.height);
                //Vector2 size = new Vector2(sp.rect.width, sp.rect.height);

                Vector2 labelpos = new Vector2(128, 256) / MAG;
                Vector2 drawPos  = (basepos + labelpos + pos);
                // GUIの見た目を変える。
                GUIStyle      guiStyle   = new GUIStyle();
                GUIStyleState styleState = new GUIStyleState();

                string vecstr = "";
                if (isSabunPos_)
                {
                    // テキストの色を設定
                    styleState.textColor = Color.yellow;
                    vecstr = "(" + ((int)(sendMotion_.stPos.GetPos(item).x)).ToString() + "," + ((int)(sendMotion_.stPos.GetPos(item).y)).ToString() + ")";
                }
                else
                {
                    // テキストの色を設定
                    styleState.textColor = Color.white;
                    vecstr = "(" + ((int)(drawPos.x)).ToString() + "," + ((int)(drawPos.y)).ToString() + ")";
                }

                // スタイルの設定。
                guiStyle.normal    = styleState;
                guiStyle.alignment = TextAnchor.MiddleCenter;

                Vector2 labelPos  = new Vector2(drawPos.x, drawPos.y);
                Rect    labelRect = new Rect(labelPos * MAG, new Vector2(sp.rect.width, sp.rect.height) * MAG);

                GUI.Label(labelRect, vecstr, guiStyle);
            }
        }
Example #11
0
        public SplitDictionary GetPhonemesDictionary(PartsObject parts)
        {
            //VocalUtau.Program.GlobalPackage
            string           singerGUID = parts.SingerGUID;
            string           folder     = SingerFinder.getSingerDir(singerGUID, ProjectBeeper.IntPtr);
            VocalIndexObject vio        = Indexer.getIndex(folder);

            return(vio.SplitDictionary);
        }
Example #12
0
        //サブウインドウのパーツオブジェクト取得
        PartsObject GetPartsObject(enPartsType partsType)
        {
            if (!partsObjects_.ContainsKey(partsType))
            {
                partsObjects_[partsType] = new PartsObject(partsType);
            }

            return(partsObjects_[partsType]);
        }
Example #13
0
        public VocalIndexObject GetVocalIndexObject(PartsObject parts)
        {
            //VocalUtau.Program.GlobalPackage
            string           singerGUID = parts.SingerGUID;
            string           folder     = SingerFinder.getSingerDir(singerGUID, ProjectBeeper.IntPtr);
            VocalIndexObject vio        = Indexer.getIndex(folder);

            return(vio);
        }
 /// <summary>
 /// 作成終了
 /// </summary>
 private void OnMakeEnd(List <Vector2> vertices)
 {
     if (vertices != null)
     {
         //パーツの作成
         PartsObject polyObj = database.InstantiateParts(vertices, colorEditField.GetColor());
         //無効化
         polyObj.Disable();
     }
 }
Example #15
0
 /// <summary>
 /// パーツの削除
 /// </summary>
 public void DeleteParts(PartsObject partsObj)
 {
     if (partsObjs.Remove(partsObj))
     {
         //コールバック
         onDeleteParts.Invoke(partsObj);
         //削除
         Destroy(partsObj.gameObject);
     }
 }
Example #16
0
 /// <summary>
 /// 全てのパーツを有効化する
 /// </summary>
 public void EnableParts(PartsObject ignore = null)
 {
     for (int i = 0; i < partsObjs.Count; ++i)
     {
         if (ignore != partsObjs[i])
         {
             partsObjs[i].Enable();
         }
     }
 }
Example #17
0
 public void LoadParts(ref PartsObject parts)
 {
     OAC.ReAlloc(parts);
     Controller.AllocView(OAC.IntPtr);
     ctl_Scroll_LeftPos.Maximum = (int)parts.TickLength;
     ctl_Scroll_LeftPos.Value   = 0;
     ctl_Scroll_LeftPos_Scroll(null, null);
     this.Text = parts.PartName;
     AttributeWindow.LoadPartsPtr(ref parts);
     setupSingerIcon();
 }
Example #18
0
        /// <summary>
        /// パーツの初期化
        /// </summary>
        private void InitializeParts(PartsObject partsObj)
        {
            //親の設定
            partsObj.transform.SetParent(transform);
            //追加
            partsObjs.Add(partsObj);

            //コールバックの設定
            partsObj.onDown.AddListener(OnPartsDown);
            partsObj.onUp.AddListener(OnPartsUp);
            partsObj.onClick.AddListener(OnPartsClick);
        }
        public void UpdateOutboundsLyric_Aysnc(AsyncWorkCallbackHandler CallBack, ref PartsObject parts, int NoteStartIndex = 0, int NoteEndIndex = -1)
        {
            PartsObject tParts = parts;

            System.Threading.Tasks.Task.Factory.StartNew(() =>
            {
                UpdateLyrics(ref tParts, NoteStartIndex, NoteEndIndex);
                if (CallBack != null)
                {
                    CallBack(tParts, NoteStartIndex, NoteEndIndex);
                }
            });
        }
Example #20
0
        public void LoadPartsPtr(ref PartsObject PartsObj, bool isCurrentEditing = true)
        {
            PartsBinder.ReAlloc(PartsObj);

            PartAttributes pa = new PartAttributes(PartsBinder.IntPtr, ProjectBinder.IntPtr);

            pa.setIsCurrent(isCurrentEditing);

            pa.setSingerDataFinder(SingerDataFinder);

            this.PropertyViewer.Tag = pa;

            this.PropertyViewer.SelectedObject = this.PropertyViewer.Tag;
        }
    private void parser()
    {
        for (int i = 0; i < jsnData.itens.Length; i++)
        {
            partsObject = (PartsObject)ScriptableObject.CreateInstance(typeof(PartsObject));
            var clone = Instantiate(partsObject);

            partsObject.partName     = jsnData.itens[i].partName;
            partsObject.partType     = jsnData.itens[i].settings[0].partType;
            partsObject.typeMovement = jsnData.itens[i].settings[0].typeMovement;

            partsArray.parts.Add(partsObject);
        }
    }
Example #22
0
        public string GetSingerFolder(PartsObject parts)
        {
            //VocalUtau.Program.GlobalPackage
            string singerGUID = parts.SingerGUID;
            string folder     = SingerFinder.getSingerDir(singerGUID, ProjectBeeper.IntPtr);

            if (System.IO.Directory.Exists(folder))
            {
                return(folder);
            }
            else
            {
                return("");
            }
        }
Example #23
0
        /// <summary>
        /// パーツの生成
        /// </summary>
        public PartsObject InstantiateParts(List <Vector2> vertices, Color color)
        {
            //生成と頂点の設定
            PartsObject partsObj = Instantiate <PartsObject>(prefab);

            partsObj.SetVertices(vertices, color);

            //初期化
            InitializeParts(partsObj);

            //コールバック
            onInstantiateParts.Invoke(partsObj);

            return(partsObj);
        }
        public void UpdateLyrics(ref PartsObject parts, int StartNoteIndex, int EndNoteIndex)
        {
            if (EndNoteIndex < 0)
            {
                EndNoteIndex = parts.NoteList.Count - 1;
            }
            if (StartNoteIndex < 0)
            {
                StartNoteIndex = 0;
            }
            if (EndNoteIndex > parts.NoteList.Count - 1)
            {
                EndNoteIndex = parts.NoteList.Count - 1;
            }
            if (StartNoteIndex == EndNoteIndex)
            {
                UpdateLyrics(ref parts, StartNoteIndex);
                return;
            }

            Dictionary <int, NoteObject> NoteMap = new Dictionary <int, NoteObject>();

            NoteMap.Add(StartNoteIndex - 2, StartNoteIndex - 2 >= 0 ? parts.NoteList[StartNoteIndex - 2] : null);
            NoteMap.Add(StartNoteIndex - 1, StartNoteIndex - 1 >= 0 ? parts.NoteList[StartNoteIndex - 1] : null);
            NoteMap.Add(EndNoteIndex + 2, EndNoteIndex + 2 < parts.NoteList.Count ? parts.NoteList[EndNoteIndex + 2] : null);
            NoteMap.Add(EndNoteIndex + 1, EndNoteIndex + 1 < parts.NoteList.Count ? parts.NoteList[EndNoteIndex + 1] : null);
            int cnt = 0;

            for (int i = StartNoteIndex; i <= EndNoteIndex; i++)
            {
                if (!NoteMap.ContainsKey(i))
                {
                    if (i < parts.NoteList.Count)
                    {
                        NoteMap.Add(i, parts.NoteList[i]); cnt++;
                    }
                }
            }
            double Tempo            = parts.Tempo;
            bool   useLyricSplitDic = parts.UseLyricDicitonary;

            Parallel.For(StartNoteIndex, EndNoteIndex, (i) => {
                // (int i = StartNoteIndex; i < EndNoteIndex; i++)
                //{
                SetupCurrentPhonmem(NoteMap[i - 1], NoteMap[i], NoteMap[i + 1], Tempo, useLyricSplitDic);
                //}
            });
        }
Example #25
0
        public void LoadNotesPtr(ref PartsObject PartsObj, ref NoteObject CurrentNote)
        {
            PartsBinder.ReAlloc(PartsObj);

            NoteBinder.ReAlloc(CurrentNote);

            NoteAttributes NA = new NoteAttributes(PartsBinder.IntPtr, NoteBinder.IntPtr, ProjectBinder.IntPtr);

            NA.setSingerDataFinder(SingerDataFinder);

            NA.PhonemesChanged += NA_PhonemesChanged;

            this.PropertyViewer.Tag = NA;

            this.PropertyViewer.SelectedObject = this.PropertyViewer.Tag;
        }
        public static PartsObject UST2Parts(USTOriginalProject ust)
        {
            PartsObject po = new PartsObject(ust.ProjectName);

            po.Tempo = ust.Tempo;
            long TotalTick = 0;

//            po.TickLength = 0;
            po.PartResampler = ust.Tool2;
            po.Flags         = ust.Flags;
            for (int i = 0; i < ust.Notes.Count; i++)
            {
                long stt = TotalTick;
                long len = ust.Notes[i].Length;
                if (ust.Notes[i].Lyric != "R")
                {
                    NoteObject no = new NoteObject(stt, len, ust.Notes[i].NoteNum);
                    no.Lyric = ust.Notes[i].Lyric;
                    no.PhonemeAtoms[0].Flags        = ust.Notes[i].Flags;
                    no.PhonemeAtoms[0].Intensity    = FormatNan(ust.Notes[i].Intensity);
                    no.PhonemeAtoms[0].Modulation   = FormatNan(ust.Notes[i].Modulation);
                    no.PhonemeAtoms[0].Overlap      = FormatNan(ust.Notes[i].Overlap);
                    no.PhonemeAtoms[0].PreUtterance = FormatNan(ust.Notes[i].PreUtterance);
                    no.PhonemeAtoms[0].StartPoint   = FormatNan(ust.Notes[i].StartPoint);
                    no.PhonemeAtoms[0].Velocity     = FormatNan(ust.Notes[i].Velocity);
                    List <KeyValuePair <double, double> > env = ust.Notes[i].EnvelopAnalyse();
                    try
                    {
                        no.PhonemeAtoms[0].FadeInLengthMs   = (long)(env[1].Key);                        //P2
                        no.PhonemeAtoms[0].FadeOutLengthMs  = (long)(env[2].Key);                        //P3
                        no.PhonemeAtoms[0].VolumePercentInt = (long)((env[1].Value + env[2].Value) / 2); //V2+V3/2
                    }
                    catch {; }
                    po.NoteList.Add(no);
                    TotalTick += ust.Notes[i].Length;// -ust.Notes[i].Overlap;
                }
                else
                {
                    TotalTick += len;
                }
            }
            //po.TickLength = TotalTick;
            po.PitchCompiler.InitPitchBase();
            return(po);
        }
        public override void Enter()
        {
            base.Enter();

            //選択ポリゴンの取得
            select = selectParts.Select;
            select.Disable();

            //編集する頂点の設定
            adjuster.SetVertices(select.GetVertices(), true);

            //状態遷移
            polyLine.ActivateState(LINE_COM);

            //コールバック設定
            adjuster.onEndAdjust.AddListener(OnAdjustEnd);
            adjuster.onChangeVertex.AddListener(OnVertexChanged);
        }
        ///<summary>各パーツのギズモ描画</summary>
        void DrawPartsGizmoPoint(enPartsType partsType)
        {
            PartsObject partsObject = GetPartsObject(partsType);

            Vector2 pos = partsObject.pos;

            pos.y = -pos.y;             //上下反転

            Sprite sp = parent_.GetSprite(partsType, sendMotion_.stPassive.isBack, sendMotion_.stPassive.faceNo);

            if (sp != null)
            {
                Vector2 basepos = new Vector2(-sp.pivot.x, +sp.pivot.y - sp.rect.height);
                Vector2 size    = new Vector2(sp.rect.width, sp.rect.height);

                int     MAG      = mag_;
                Vector2 drawPos  = (basepos + camPos_ + pos + tempMovePos_);
                Rect    drawRect = new Rect(drawPos * MAG, size * MAG);
                Handles.color = new Color(1, 1, 1);
                switch (partsType)
                {
                case enPartsType.LeftArm:
                case enPartsType.LeftHand:
                case enPartsType.LeftLeg:
                case enPartsType.LeftFoot:
                    Handles.color = new Color(0, 1, 1);
                    break;

                case enPartsType.RightArm:
                case enPartsType.RightHand:
                case enPartsType.RightLeg:
                case enPartsType.RightFoot:
                    Handles.color = new Color(1, 0, 1);
                    break;
                }

                var rectPos = drawPos;
                rectPos.x += sp.rect.width / 2;
                rectPos.y += sp.rect.height / 2;

                Handles.DrawRectangle((int)partsType, rectPos * MAG, Quaternion.identity, GIZMO_SIZE * MAG);
                // Handles.DrawLine(drawPos * MAG, drawPos * MAG * 2);
            }
        }
Example #29
0
 public void LoadParts(ref PartsObject parts, bool KeepSelecting = false)
 {
     OAC.ReAlloc(parts);
     Controller.AllocView(OAC.IntPtr);
     ctl_Scroll_LeftPos.Maximum = (int)parts.TickLength;
     ctl_Scroll_LeftPos.Value   = 0;
     ctl_Scroll_LeftPos_Scroll(null, null);
     this.Text = parts.PartName;
     AttributeWindow.LoadPartsPtr(ref parts);
     if (KeepSelecting)
     {
         Controller.RealaramNoteSelecting();
     }
     else
     {
         Controller.Track_NoteView.ClearSelect();
     }
     setupSingerIcon();
 }
Example #30
0
 public void NoteDelete()
 {
     if (NoteSelectIndexs.Count > 0)
     {
         if (NoteActionBegin != null)
         {
             NoteActionBegin(NoteDragingType.NoteDelete);
         }
         NoteSelectIndexs.Sort();
         int First = NoteSelectIndexs[0];
         int Last  = NoteSelectIndexs[NoteSelectIndexs.Count - 1];
         for (int i = Last; i >= First; i--)
         {
             NoteList.RemoveAt(i);
         }
         int Sp = First - 1;
         int Se = First;
         if (Sp < 0)
         {
             Sp = 0;
         }
         ClearSelect();
         PartsObject.PitchCompiler.SetupBasePitch_Aysnc(new Formats.Model.VocalObject.ParamTranslater.PitchCompiler.AsyncWorkCallbackHandler((F, L) =>
         {
             this.PianoWindow.Invoke(new Action(() => { this.PianoWindow.RedrawPiano(); }));
         }), Sp, Se);
         if (this.SingerDataFinder != null)
         {
             PartsObject po = PartsObject;
             int         Lp = Se;
             if (Sp > 0)
             {
                 Lp = Sp;
             }
             this.SingerDataFinder.GetPhonemesDictionary(PartsObject).UpdateLyrics_Aysnc(new Formats.Model.Database.VocalDatabase.SplitDictionary.AsyncWorkCallbackHandler((P, F, L) => {
             }), ref po, Lp, Lp);;
         }
         if (NoteActionEnd != null)
         {
             NoteActionEnd(NoteDragingType.NoteDelete);
         }
     }
 }
Example #31
0
 internal static void AddItem(int key, PartsObject data) {
     PartList.Add(key, data);
     ListUpdate(String.Empty, new EventArgs());
 }