Exemple #1
0
        public static string GetToneSolfageNameFromMidiIndex(int aMidiIdx, KeySignatureEnum aKeySignature = KeySignatureEnum.CMaj_AMin, char separator = '/')
        {
            aMidiIdx += (int)aKeySignature * 7;

            while (aMidiIdx > 11)
            {
                aMidiIdx -= 12;
            }

            string result = "";


            switch (aMidiIdx)
            {
            case 0:
                result = "Do";
                break;

            case 1:
                result = "Di" + separator + "Ra";
                break;

            case 2:
                result = "Re";
                break;

            case 3:
                result = "Ri" + separator + "Me";
                break;

            case 4:
                result = "Mi";
                break;

            case 5:
                result = "Fa";
                break;

            case 6:
                result = "Fi" + separator + "Se";
                break;

            case 7:
                result = "Sol";
                break;

            case 8:
                result = "Si" + separator + "Le";
                break;

            case 9:
                result = "La";
                break;

            case 10:
                result = "Li" + separator + "Te";
                break;

            case 11:
                result = "Ti";
                break;
            }

            return(result);
        }
Exemple #2
0
        public static string GetToneNameFromMidiIndex(int aMidiIdx, char separator = '/', TheorySystemEnum aTheorySystem = TheorySystemEnum.EnglishNames, KeySignatureEnum aKeySignature = KeySignatureEnum.CMaj_AMin)
        {
            string result = "";

            switch (aTheorySystem)
            {
            case TheorySystemEnum.EnglishNames:
                result = GetToneEnglishNameFromMidiIndex(aMidiIdx, separator);
                break;

            case TheorySystemEnum.FixedSolfege:
                result = GetToneSolfageNameFromMidiIndex(aMidiIdx, KeySignatureEnum.CMaj_AMin, separator);
                break;

            case TheorySystemEnum.MovableSolfege:
                result = GetToneSolfageNameFromMidiIndex(aMidiIdx, aKeySignature, separator);
                break;
            }
            return(result);
        }