public void Simplification4works() { var paton = new Pattern { AsString = "1,1,1,1,1", PatternTypeId = PatternType.Pitch }; var simplito = PatternUtilities.Simpl4(paton); Assert.AreEqual(simplito.Length, 1); var patin = new Pattern { AsString = "2,1,2,1,2,1", PatternTypeId = PatternType.Pitch }; var simplote = PatternUtilities.Simpl4(patin); Assert.AreEqual(simplote.Length, 2); var pate = new Pattern { AsString = "2,1,5,4,3,7,3,1,2,6,7,8,9", PatternTypeId = PatternType.Pitch }; var simplin = PatternUtilities.Simpl4(pate); Assert.AreEqual(simplin.Length, 13); }
public void FindPatternsInListOfIntegers_FindsLongestPatternsOnly() { var listita = new List <int> { 3, 3, 4, 5, 7, 8, 3, 5, 4, 3, 3, 5, 3, 3, 4, 5, 2, 1, 3, 4 }; var patterns = PatternUtilities.FindPatternsInListOfIntegers(listita, 3, 10).ToList(); Assert.AreEqual(patterns.Count, 1); }
public void FindSongPatterns() { Versions[0].Occurrences = new List <Occurrence>(); var pitchPatterns = PatternUtilities.FindPatternsOfTypeInSong(this, 0, PatternType.Pitch); foreach (var p in pitchPatterns.Keys) { Versions[0].Occurrences = Versions[0].Occurrences.Concat(pitchPatterns[p]).ToList(); } var rythmPatterns = PatternUtilities.FindPatternsOfTypeInSong(this, 0, PatternType.Rythm); foreach (var p in rythmPatterns.Keys) { Versions[0].Occurrences = Versions[0].Occurrences.Concat(rythmPatterns[p]).ToList(); } var melodyPatterns = PatternUtilities.FindPatternsOfTypeInSong(this, 0, PatternType.Melody); foreach (var p in melodyPatterns.Keys) { Versions[0].Occurrences = Versions[0].Occurrences.Concat(melodyPatterns[p]).ToList(); } }
private async Task ProcesameLosPatterns(Song song) { var allOccurrences = PatternUtilities.FindPatternsOfTypeInSong(song, 0, PatternType.Pitch).Values .Concat(PatternUtilities.FindPatternsOfTypeInSong(song, 0, PatternType.Rythm).Values) .Concat(PatternUtilities.FindPatternsOfTypeInSong(song, 0, PatternType.Melody).Values) .ToList().SelectMany(x => x).ToList(); foreach (var oc in allOccurrences) { var pattern = oc.Pattern; var patito = Repository.GetPatternByStringAndType(pattern.AsString, pattern.PatternTypeId); if (patito == null) { patito = Repository.AddPattern(pattern); } oc.Pattern = patito; oc.PatternId = patito.Id; oc.SongSimplificationId = song.SongSimplifications[0].Id; } song.SongSimplifications[0].Occurrences = allOccurrences; await Repository.UpdateSongAsync(song); }
private List <Occurrence> ProcesameLosPatterns(Song song) { if (!Repository.AreOccurrencesForSongSimplificationAlreadyProcessed(song.SongSimplifications[0].Id)) { var allOccurrences = PatternUtilities.FindPatternsOfTypeInSong(song, 0, PatternType.Pitch).Values .Concat(PatternUtilities.FindPatternsOfTypeInSong(song, 0, PatternType.Rythm).Values) .Concat(PatternUtilities.FindPatternsOfTypeInSong(song, 0, PatternType.Melody).Values) .ToList().SelectMany(x => x).ToList(); var patitos = allOccurrences.Select(x => x.Pattern).Distinct().ToList(); foreach (var pat in patitos) { try { var patito = Repository.GetPatternByStringAndType(pat.AsString, pat.PatternTypeId); if (patito == null) { patito = Repository.AddPattern(pat); } foreach (var oc in allOccurrences.Where(x => x.Pattern.AsString == patito.AsString)) { oc.Pattern = patito; oc.PatternId = patito.Id; oc.SongSimplificationId = song.SongSimplifications[0].Id; Repository.AddOccurrence(oc); } } catch (Exception sacamela) { } } } return(song.SongSimplifications[0].Occurrences); }