private static void PlayNoteAsRequired(string note, int a4Reference, PlayableSequence playableSequence) { if (note != null) { var musicNote = MusicNote.Create(note, a4Reference); if (musicNote?.IsValid ?? false) { ShowNote(musicNote); var musicNotes = musicNote.MajorScale.ToArray(); WriteMessage($"Playing Major Scale: {string.Join(',', musicNotes)}"); playableSequence.LoadSequenceFromString(musicNote.MajorScale); playableSequence.Prepare(); playableSequence.Play(); Thread.Sleep(1000); musicNotes = musicNote.MinorScale.ToArray(); WriteMessage($"Playing Minor Scale: {string.Join(',', musicNotes)}"); playableSequence.LoadSequenceFromString(musicNote.MinorScale); playableSequence.Prepare(); playableSequence.Play(); Thread.Sleep(1000); WriteMessage($"Playing Relative Minor Scale {musicNote.RelativeMinor}m: {string.Join(',', musicNote.RelativeMinorScale)}"); playableSequence.LoadSequenceFromString(musicNote.RelativeMinorScale); playableSequence.Prepare(); playableSequence.Play(); } else { WriteMessage($"{note} is NOT a valid note!", ConsoleColor.Red); } } }
private static void PlayTabAsRequired(string tabName, PlayableSequence playableSequence) { if (!string.IsNullOrEmpty(tabName)) { var result = playableSequence.LoadFromFile(tabName, "Tabs", out string errorString, out Tablature tabs); if (!result) { WriteMessage(errorString, ConsoleColor.Red); } else { tabs.FixUp(); IStringInstrument guitar = new Guitar(tabs.Tuning, 21); playableSequence.ConvertTabsToNoteSequence(guitar, tabs); playableSequence.Repeat = tabs.Repeat; playableSequence.Prepare(); playableSequence.Play(); } } }
private static void PlaySongAsRequired(string key, string fileName, PlayableSequence playableSequence) { if (!string.IsNullOrEmpty(fileName)) { var result = playableSequence.LoadFromFile(fileName, "Songs", out string errorString, out Song song); if (!result) { WriteMessage(errorString, ConsoleColor.Red); } else { var currentSong = GetTheSongByKeyAsRequired(key, song); playableSequence.ConvertSongNotesToNoteSequence(currentSong); playableSequence.Prepare(); playableSequence.Play(); if (song.Reverse) { playableSequence.ReverseSequence(); playableSequence.Play(); } } } }