public void ProgressionTest_getChord() { _progression = new Progression(); _progression.addChord(ChordFactory.getChordByName("C")); _progression.addChord(ChordFactory.getChordByName("Am7")); _progression.addChord(ChordFactory.getChordByName("G#(add9)")); Assert.AreEqual("A, C, E, G", _progression.getChord(1).getNotes()); }
public void ProgressionTest_removeChord() { _progression = new Progression(); _progression.addChord(ChordFactory.getChordByName("C")); _progression.addChord(ChordFactory.getChordByName("Am7")); _progression.addChord(ChordFactory.getChordByName("G#(add9)")); _progression.removeChord(2); Assert.AreEqual("C, Am7", _progression.getChordNames()); }
public void ProgressionTest_swapChords() { _progression = new Progression(); _progression.addChord(ChordFactory.getChordByName("C")); _progression.addChord(ChordFactory.getChordByName("Am7")); _progression.addChord(ChordFactory.getChordByName("G#(add9)")); _progression.swapChords(0, 1); Assert.AreEqual("Am7, C, G#(add9)", _progression.getChordNames()); }
public void ProgressionTest_replaceChord() { _progression = new Progression(); _progression.addChord(ChordFactory.getChordByName("C")); _progression.addChord(ChordFactory.getChordByName("Am7")); _progression.addChord(ChordFactory.getChordByName("G#(add9)")); _progression.replaceChord(0, ChordFactory.getChordByName("Db9")); Assert.AreEqual("Db9, Am7, G#(add9)", _progression.getChordNames()); }
public void ProgressionTest_getTabNumber() { _progression = new Progression(); _progression.addChord(ChordFactory.getChordByName("C")); Assert.AreEqual("X", _progression.getTabNumber(1, 6)); Assert.AreEqual("3", _progression.getTabNumber(1, 5)); Assert.AreEqual("2", _progression.getTabNumber(1, 4)); Assert.AreEqual("0", _progression.getTabNumber(1, 3)); Assert.AreEqual("1", _progression.getTabNumber(1, 2)); Assert.AreEqual("0", _progression.getTabNumber(1, 1)); }
public void ProgressionTest_changeTuning() { _progression = new Progression(); _progression.addChord(ChordFactory.getChordByName("E")); Assert.AreEqual("0", _progression.getTabNumber(1, 6)); Assert.AreEqual("2", _progression.getTabNumber(1, 5)); Assert.AreEqual("2", _progression.getTabNumber(1, 4)); Assert.AreEqual("1", _progression.getTabNumber(1, 3)); Assert.AreEqual("0", _progression.getTabNumber(1, 2)); Assert.AreEqual("0", _progression.getTabNumber(1, 1)); _progression.changeTuning(NoteFactory.getNoteByName("E"), NoteFactory.getNoteByName("A"), NoteFactory.getNoteByName("D"), NoteFactory.getNoteByName("G#"), NoteFactory.getNoteByName("B"), NoteFactory.getNoteByName("E")); Assert.AreEqual("E, A, D, Ab, B, E", _progression.getTuning()); Assert.AreEqual("0", _progression.getTabNumber(1, 6)); Assert.AreEqual("2", _progression.getTabNumber(1, 5)); Assert.AreEqual("2", _progression.getTabNumber(1, 4)); Assert.AreEqual("0", _progression.getTabNumber(1, 3)); Assert.AreEqual("0", _progression.getTabNumber(1, 2)); Assert.AreEqual("0", _progression.getTabNumber(1, 1)); }
public static Progression addChord(Progression progression) { string inputError = "\nI'm sorry that was not a valid coice." + "\nPlease try again."; string newChordName; bool result = false; while (result == false) { System.Console.WriteLine("\nWhat chord would you like to add?"); newChordName = System.Console.ReadLine(); if (ChordController.checkChordName(newChordName)) { result = true; progression.addChord(ChordFactory.getChordByName(newChordName)); System.Console.WriteLine("\n" + progression.getChord(progression.getSize() - 1).getName() + " has been added to the progression."); } else { System.Console.WriteLine(inputError); } } return(progression); }
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); }