Ejemplo n.º 1
0
        private void ShowChords()
        {
            //* show thischord and next chord
            //* newchord showed in MouseDown event
            if (P.F.CF?.Evs == null || P.F.CF.Evs.Count == 0)
            {
                lblThisChord.Text = "null";
                lblNextChord.Text = "null";
                return;
            }

            int index = P.F.CF.FindCFEv(P.F.CurrentBBT); //this or prev

            clsCF.clsEv ev = P.F.CF.Evs[index];
            lblThisChord.Text = (P.frmSC.chkShowChordsRel.Checked) ?
                                ev.ChordNameRoman(Key, eKBTrans.None) : ev.ChordName(eKBTrans.Add, kbtranskey: true);

            index--;
            if (index >= 0)
            {
                ev = P.F.CF.Evs[index];
                lblNextChord.Text = (P.frmSC.chkShowChordsRel.Checked) ?
                                    ev.ChordNameRoman(Key, eKBTrans.None) : ev.ChordName(eKBTrans.Add, kbtranskey: true);
            }

            lblKey.Text = Key.ToString();
        }
Ejemplo n.º 2
0
        private void frmChangeSongLength_Load(object sender, EventArgs e)
        {
            //* get current length
            lblCurrentLen.Text  = P.F.MaxBBT.MidiWholeNotes.ToString();
            lblCurrentBars.Text = (P.F.MaxBBT.Bar + 1).ToString();

            //* get last ev ticks/wholenotes
            int minlen = 10;

            clsCF.clsEv ev = null;
            for (int i = P.F.CF.Evs.Count - 1; i >= 0; i--)
            {
                ev = P.F.CF.Evs[i];
                if (ev != null)
                {
                    break;
                }
            }
            if (ev == null)
            {
                return;
            }
            int rem;
            int wholenotes = Math.DivRem(ev.OffTime, P.F.MTime.TicksPerQNote * 4, out rem);

            if (rem > 0)
            {
                wholenotes++;
            }

            ////* find lowest wholenotes that fits
            //clsMaxBBT maxbbt = null;
            //while (maxbbt == null || maxbbt.Ticks > ev.OffTime) {
            //  maxbbt = new clsMaxBBT(wholenotes * P.F.MTime.TicksPerQNote * 4);
            //  wholenotes--;
            //}

            wholenotes = Math.Max(minlen, ++wholenotes);
            clsMaxBBT maxbbt = new clsMaxBBT(wholenotes * P.F.MTime.TicksPerQNote * 4);

            //* update controls
            lblMinLen.Text    = wholenotes.ToString();
            lblMinBars.Text   = (maxbbt.Bar + 1).ToString();
            nudNewLen.Minimum = wholenotes;
            nudNewLen.Value   = Math.Max(wholenotes, P.F.MaxBBT.MidiWholeNotes);
        }