internal void GetFinale(List <Palette> palettes, Dictionary <string, int> msPositions, Krystal krystal) { Palette f1FinalePalette1 = palettes[12]; Palette f1FinalePalette2 = palettes[16]; Palette f1PostludePalette = palettes[20]; List <int> strandIndices = new List <int>(); int index = 0; for (int i = 0; i < krystal.Strands.Count; ++i) { strandIndices.Add(index); index += krystal.Strands[i].Values.Count; } TrkDef f1Interlude3Verse4e = GetF1FinalePart1(f1FinalePalette1, krystal, strandIndices, msPositions); TrkDef f1Verse4eVerse5 = GetF1FinalePart2(f1FinalePalette2, krystal, strandIndices, msPositions); TrkDef f1Postlude = GetF1Postlude(f1PostludePalette, krystal, strandIndices, msPositions); TrkDef furies1Finale = f1Interlude3Verse4e; furies1Finale.AddRange(f1Verse4eVerse5); furies1Finale.AddRange(f1Postlude); //furies1Finale.TransposeNotation(-12); if (furies1Finale[furies1Finale.Count - 1] is RestDef) { furies1Finale.RemoveAt(furies1Finale.Count - 1); } if (furies1Finale[furies1Finale.Count - 1].MsPosition + furies1Finale[furies1Finale.Count - 1].MsDuration > msPositions["endOfPiece"]) { furies1Finale.RemoveAt(furies1Finale.Count - 1); } InsertInRest(furies1Finale); Erase(this[282].MsPosition, msPositions["endOfPiece"]); AdjustPitchWheelDeviations(msPositions["interlude3"], msPositions["endOfPiece"], 5, 28); }