Пример #1
0
 public Scale(NoteEnum rootNote, NoteModifierEnum modifier)
 {
     Root     = rootNote;
     Modifier = modifier;
     Major    = ChromaticScale.GetMajorScale(rootNote, modifier);
     Minor    = ChromaticScale.GetMinorScale(rootNote, modifier);
 }
Пример #2
0
        //private readonly int[] MajorPentatonicSteps = { 2, 2, 3, 2, 3 };
        //private readonly int[] MinorPentatonicSteps = { 3, 2, 2, 3, 2 };

        private static List <Note> GetScale(NoteEnum rootNote, NoteModifierEnum modifier, int[] steps)
        {
            var notes            = new List <Note>();
            int rootNotePosition = (int)rootNote;

            switch (modifier)
            {
            case NoteModifierEnum.FLAT: rootNotePosition -= 1; break;

            case NoteModifierEnum.SHARP: rootNotePosition += 1; break;
            }

            int counter      = 0;
            int notePosition = rootNotePosition;

            notes.Add(Notes[notePosition][0]);
            for (; ;)
            {
                notePosition += steps[counter];

                if (notePosition > Notes.Count - 1)
                {
                    notePosition -= Notes.Count;
                }
                notes.Add(Notes[notePosition][0]);
                counter++;
                if (counter >= steps.Length)
                {
                    break;
                }
            }
            return(notes);
        }
Пример #3
0
        public IActionResult GetMajor([FromQuery] string note, [FromQuery] string modifier)
        {
            NoteEnum         noteEnum         = (NoteEnum)Enum.Parse(typeof(NoteEnum), note.ToUpper());
            NoteModifierEnum noteModifierEnum = (NoteModifierEnum)Enum.Parse(typeof(NoteModifierEnum), modifier.ToUpper());

            //var list = MajorHelp.MajorGenerator.GetMajor(noteEnum, noteModifierEnum);
            return(Ok());
        }
Пример #4
0
 public static Note CreateChromaticNote(NoteEnum name, NoteModifierEnum modifier, int position)
 {
     return(new Note(name, modifier, position));
 }
Пример #5
0
 public Note(NoteEnum name, NoteModifierEnum modifier, int position)
 {
     Name     = name;
     Modifier = modifier;
     Position = position;
 }
Пример #6
0
 public static List <Note> GetMinorScale(NoteEnum rootNote, NoteModifierEnum modifier)
 {
     return(GetScale(rootNote, modifier, MinorSteps));
 }