private clsChord EvToTxt(clsCFPC.clsEv ev)
        {
            //* get chord txt from ev ("null", "***", chord)
            clsChord chord;

            if (ev.Notes.Length == 0)
            {
                chord = new clsChord("null", 0);                  //null chord
            }
            else if (!ev.Root)
            {
                chord = new clsChord("***", 0); //non-recognisable chord
            }
            else
            {
                clsKeyTicks keyticks = P.F.Keys[ev.OnTime];
                //int midikey = P.F.Keys[ev.OnTime].MidiKey;  //current key
                if (Frm.TransposeChordNamesVal != 0)
                {
                    keyticks = keyticks.GetTransposeNames(Frm.TransposeChordNamesVal);
                    //midikey = keyticks.MidiKey;
                }
                int    rootpitch = Frm.ChordTranspose(ev.Notes[0].PC[eKBTrans.None]);
                string root      = NoteName.ToSharpFlat(NoteName.GetNoteName(keyticks, rootpitch));
                root  = root.Trim();
                chord = new clsChord(root + ev.ChordQualifier, root.Length);
            }
            return(chord);
        }
 private static string GetNoteName(int note, clsKey mkey)
 {
     return(NoteName.ToSharpFlat(NoteName.GetNoteName(mkey, note.Mod12())));
 }