static void Main(string[] args) { string answer; bool exit = false; Progression progression = new Progression(); string inputError = "\nI'm sorry that was not a valid coice." + "\nPlease try again."; System.Console.WriteLine("------------Chordnomicon-----------" + "\nThis is an application that helps" + "\ncomposers write chord progresssions "); while (exit == false) { System.Console.WriteLine("\nThe current key is: " + progression.getKey().getName() + "\n The current mode is: " + progression.getMode().getName() + "\n The current tuning is: " + progression.getTuning()); if (progression.getSize() == 0) { System.Console.WriteLine("There are no chords in your progression"); } else { System.Console.WriteLine("The current chords in your progression are: \n" + progression.getChordNames()); } System.Console.WriteLine("\nWhat would you like to do?" + "\n1) Change the key, mode or tuning" + "\n2) Add or modify a chord" + "\n3) View tablature of current chords" + "\n4) Quit the program"); answer = System.Console.ReadLine(); if (answer == "1") { progression = menuOne(progression); } else if (answer == "2") { progression = menuTwo(progression); } else if (answer == "3") { progression = menuThree(progression); } else if (answer == "4") { exit = true; System.Console.WriteLine("Goodbye"); } else { System.Console.WriteLine(inputError); } } }
public static Progression moreRecomendations(Progression progression) { string inputError = "\nI'm sorry that was not a valid coice." + "\nPlease try again."; List <Chord> recomendations = new List <Chord>(); Note tonic = NoteFactory.getNoteByValue(progression.getKey().getValue(), progression.getKey()); bool validChoice = false; string choice; int i; while (validChoice == false) { i = 1; System.Console.WriteLine("1) I (" + progression.getMode().getNote(0, progression.getKey()).getName() + ")"); if (progression.getMode().containsInterval(1)) { System.Console.WriteLine((i + 1) + ") bII (" + progression.getMode().getNote(i, progression.getKey()).getName() + ")"); i++; } if (progression.getMode().containsInterval(2)) { System.Console.WriteLine((i + 1) + ") II (" + progression.getMode().getNote(i, progression.getKey()).getName() + ")"); i++; } if (progression.getMode().containsInterval(3)) { System.Console.WriteLine(((i + 1) + 1) + ") bIII (" + progression.getMode().getNote(i, progression.getKey()).getName() + ")"); i++; } if (progression.getMode().containsInterval(4)) { System.Console.WriteLine((i + 1) + ") III (" + progression.getMode().getNote(i, progression.getKey()).getName() + ")"); i++; } if (progression.getMode().containsInterval(5)) { System.Console.WriteLine((i + 1) + ") IV (" + progression.getMode().getNote(i, progression.getKey()).getName() + ")"); i++; } if (progression.getMode().containsInterval(6)) { System.Console.WriteLine((i + 1) + ") bV (" + progression.getMode().getNote(i, progression.getKey()).getName() + ")"); i++; } if (progression.getMode().containsInterval(7)) { System.Console.WriteLine((i + 1) + ") V (" + progression.getMode().getNote(i, progression.getKey()).getName() + ")"); i++; } if (progression.getMode().containsInterval(8)) { System.Console.WriteLine((i + 1) + ") bVI (" + progression.getMode().getNote(i, progression.getKey()).getName() + ")"); i++; } if (progression.getMode().containsInterval(9)) { System.Console.WriteLine((i + 1) + ") VI (" + progression.getMode().getNote(i, progression.getKey()).getName() + ")"); i++; } if (progression.getMode().containsInterval(10)) { System.Console.WriteLine((i + 1) + ") bVII (" + progression.getMode().getNote(i, progression.getKey()).getName() + ")"); i++; } if (progression.getMode().containsInterval(11)) { System.Console.WriteLine((i + 1) + ") VII (" + progression.getMode().getNote(i, progression.getKey()).getName() + ")"); i++; } choice = System.Console.ReadLine(); for (i = 1; i <= progression.getMode().getSize(); i++) { if (i.ToString() == choice) { validChoice = true; tonic = progression.getMode().getNote(i - 1, progression.getKey()); } } if (validChoice == false) { System.Console.WriteLine(inputError); } } validChoice = false; recomendations = ChordFactory.getChordRecomendationsByTonic(progression.getKey(), tonic, progression.getMode()); while (validChoice == false) { for (i = 0; i < recomendations.Count(); i++) { System.Console.WriteLine((i + 1).ToString() + ") " + recomendations.ElementAt(i).getName()); if (i + 1 == recomendations.Count()) { System.Console.WriteLine((i + 2).ToString() + ") Back to chord menu"); } } choice = System.Console.ReadLine(); for (i = 1; i <= recomendations.Count(); i++) { if (i.ToString() == choice) { validChoice = true; progression.addChord(recomendations.ElementAt(i - 1)); System.Console.WriteLine("\n" + progression.getChord(progression.getSize() - 1).getName() + " has been added to the progression."); } else if ((i + 1).ToString() == choice) { validChoice = true; } } if (validChoice == false) { System.Console.WriteLine(inputError); } } return(progression); }
public static Progression addRecomendedChord(Progression progression) { string inputError = "\nI'm sorry that was not a valid coice." + "\nPlease try again."; int i; string choice; bool validChoice = false; Note degree = NoteFactory.getNoteByValue(progression.getKey().getValue(), progression.getKey()); List <Chord> recomendations = new List <Chord>(); if (progression.getSize() == 0) { recomendations = ChordFactory.getChordRecomendationsTriads(progression.getKey(), progression.getMode()); while (validChoice == false) { for (i = 0; i < recomendations.Count(); i++) { System.Console.WriteLine((i + 1).ToString() + ") " + recomendations.ElementAt(i).getName()); if (i + 1 == recomendations.Count()) { System.Console.WriteLine((i + 2).ToString() + ") See more recomendations"); } } System.Console.WriteLine((i + 2).ToString() + ") Back to chord menu"); choice = System.Console.ReadLine(); for (i = 1; i <= recomendations.Count(); i++) { if (i.ToString() == choice) { validChoice = true; progression.addChord(recomendations.ElementAt(i - 1)); System.Console.WriteLine("\n" + progression.getChord(progression.getSize() - 1).getName() + " has been added to the progression."); } } if ((i).ToString() == choice) { validChoice = true; progression = moreRecomendations(progression); } else if ((i + 1).ToString() == choice) { validChoice = true; } if (validChoice == false) { System.Console.WriteLine(inputError); } } } else { recomendations = ChordFactory.getChordRecomendationsByLast(progression.getKey(), progression.getChord(progression.getSize() - 1), progression.getMode()); while (validChoice == false) { for (i = 0; i < recomendations.Count(); i++) { System.Console.WriteLine((i + 1).ToString() + ") " + recomendations.ElementAt(i).getName()); if (i + 1 == recomendations.Count()) { System.Console.WriteLine((i + 2).ToString() + ") See more recomendations"); } } System.Console.WriteLine((i + 2).ToString() + ") Back to chord menu"); choice = System.Console.ReadLine(); for (i = 1; i <= recomendations.Count(); i++) { if (i.ToString() == choice) { validChoice = true; progression.addChord(recomendations.ElementAt(i - 1)); System.Console.WriteLine("\n" + progression.getChord(progression.getSize() - 1).getName() + " has been added to the progression."); } } if ((i).ToString() == choice) { validChoice = true; progression = moreRecomendations(progression); } else if ((i + 1).ToString() == choice) { validChoice = true; } if (validChoice == false) { System.Console.WriteLine(inputError); } } } return(progression); }