public Scale(NoteEnum rootNote, NoteModifierEnum modifier) { Root = rootNote; Modifier = modifier; Major = ChromaticScale.GetMajorScale(rootNote, modifier); Minor = ChromaticScale.GetMinorScale(rootNote, modifier); }
//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); }
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()); }
public static Note CreateChromaticNote(NoteEnum name, NoteModifierEnum modifier, int position) { return(new Note(name, modifier, position)); }
public Note(NoteEnum name, NoteModifierEnum modifier, int position) { Name = name; Modifier = modifier; Position = position; }
public static List <Note> GetMinorScale(NoteEnum rootNote, NoteModifierEnum modifier) { return(GetScale(rootNote, modifier, MinorSteps)); }