예제 #1
0
        internal bool?TransposeNamesSharp = null; //#/b/null for transposed names keys (not these keys!)

        //internal List<string> Desc = new List<string>;
        //private clsMTime MTime;

        internal clsKeyTicks(int keynote, string scale, int ticks, bool indkeynote)
        {
            if (!indkeynote)
            {
                LogicError.Throw(eLogicError.X014);
            }
            Init(scale, ticks);
            KeyNote    = keynote;
            MidiKey    = NoteName.PitchToMidiKey(KeyNote, scale, null);
            KeyNoteStr = NoteName.MidiKeyToKeyStr(MidiKey, Scale);
        }
예제 #2
0
        internal clsKeyTicks GetTransposeNames(int t)
        {
            //* indsharp: true{#), false{b}, null(middle)
            if (t == 0)
            {
                return(this);
            }
            int keynote = (KeyNote + t).Mod12();
            int midikey = NoteName.PitchToMidiKey(keynote, Scale, TransposeNamesSharp);

            return(new clsKeyTicks(midikey, Scale, Ticks));
        }
예제 #3
0
        private clsKeyTicks GetKey(int s, int keynote)
        {
            string scale = "major";

            if (keynote > 11)
            {
                scale    = "minor";
                keynote -= 12;
            }
            int midikey = NoteName.PitchToMidiKey(keynote, scale, null);
            int ticks   = new clsMTime.clsBBT(s, 0, 0).Ticks;
            //int ticks = mtime.TicksPerBeat * mtime.TSigNN * s;
            clsKeyTicks key = new clsKeyTicks(midikey, scale, ticks);

            //if (frmCalcKeys.optKeysText.Checked) return key.Transpose(-frmCalcKeys.CF.Transpose_File);
            return(key);
        }
예제 #4
0
 private void TransKB(clsKeyTicks key, bool kbtrans)
 {
     TransposeNamesSharp = key.TransposeNamesSharp;
     Scale = key.Scale;
     Ticks = key.Ticks;
     if (kbtrans)
     {
         int trans = GetTransposeKB();
         KeyNote = (trans == 0) ? key.KeyNote : (key.KeyNote + trans).Mod12();
         MidiKey = (trans == 0) ? key.MidiKey : NoteName.PitchToMidiKey(KeyNote, Scale, null);
         //KeyNoteStr = (trans == 0) ? key.KeyNoteStr : NoteName._Names[MidiKey + 7][KeyNote];
         KeyNoteStr = (trans == 0) ? key.KeyNoteStr : NoteName.GetName(this, KeyNote);
     }
     else
     {
         KeyNoteStr = key.KeyNoteStr;
         KeyNote    = key.KeyNote;
         MidiKey    = key.MidiKey;
     }
 }