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 PlayableSequence CreatePlayableSequence(NoteScalerOptions o, int a4Reference) { var playableSequence = new PlayableSequence() { MeasureTime = o.Speed.GetValueOrDefault(), Octave = o.Octave.GetValueOrDefault(), A4Reference = a4Reference, InstrumentType = o.Instrument }; playableSequence.PlayableSequenceEvent += PlayableSequence_PlayableSequenceEvent; return(playableSequence); }
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(); } } } }
private void Awake() { m_Instance = Instantiate(m_Sequence); }