public void PlayAllNotes() { const int totalIterations = 1000; const int delayInSecondsBetweenAudioSnippets = 5; var notes = new MusicalNotes(); var setOfTones = new NoteUtility(_toneProvider); var frequencies = notes.GetAllFrequencies(); for (var i = 0; i < totalIterations; i++) { var intervalBoundaries = NumberUtilities.GetRandomInterval(0, 24, 12, _random); var frequency0 = frequencies[intervalBoundaries[0]]; var frequency1 = frequencies[intervalBoundaries[1]]; setOfTones.PlayNote(notes.GetNoteFromIndex(intervalBoundaries[0])); setOfTones.PlayNote(notes.GetNoteFromIndex(intervalBoundaries[1])); Console.WriteLine(frequency0); Console.WriteLine(frequency1); Console.WriteLine(frequency1 - frequency0); Thread.Sleep(delayInSecondsBetweenAudioSnippets * 1000); setOfTones.PlayNote(notes.GetNoteFromIndex(intervalBoundaries[0])); setOfTones.PlayNote(notes.GetNoteFromIndex(intervalBoundaries[1])); Thread.Sleep(delayInSecondsBetweenAudioSnippets * 1000); var semitoneCount = intervalBoundaries[1] - intervalBoundaries[0]; var spokenInterval = Intervals.GetInterval(semitoneCount); _synth.Speak(spokenInterval); Thread.Sleep(delayInSecondsBetweenAudioSnippets * 1000); } }
public void EachFrequencyInTheCollectionsNaturalOrderIsHigherThanThePrevious() { var notes = new MusicalNotes(); var previousFrequency = 0; foreach (var frequency in notes.GetAllFrequencies()) { Console.WriteLine(frequency); Assert.IsTrue(frequency > previousFrequency, $"The current frequency {frequency} is not higher than the previous frequency {previousFrequency}"); previousFrequency = frequency; } }