private List <VoiceDef> WriteLowerStaff(int staffNumber, List <VoiceDef> topStaffBars) { List <VoiceDef> consecutiveBars = new List <VoiceDef>(); Krystal krystal = _krystals[staffNumber - 1]; Palette palette = _palettes[staffNumber - 1]; List <List <int> > strandValuesList = krystal.GetValues(krystal.Level); Debug.Assert(topStaffBars.Count == strandValuesList.Count); for (int barIndex = 0; barIndex < strandValuesList.Count; barIndex++) { VoiceDef topStaffVoice = topStaffBars[barIndex]; VoiceDef newVoice = new TrkDef((byte)(staffNumber - 1), new List <IUniqueDef>()); int currentMsPosition = topStaffVoice.UniqueDefs[0].MsPosition; List <int> lowerStaffValueSequence = strandValuesList[barIndex]; List <int> lowerStaffMsDurations = LowerStaffMsDurations(topStaffVoice, lowerStaffValueSequence.Count); for (int valueIndex = 0; valueIndex < lowerStaffValueSequence.Count; valueIndex++) { int value = lowerStaffValueSequence[valueIndex]; IUniqueDef noteDef = palette.UniqueDurationDef(value - 1); noteDef.MsDuration = lowerStaffMsDurations[valueIndex]; noteDef.MsPosition = currentMsPosition; currentMsPosition += noteDef.MsDuration; newVoice.UniqueDefs.Add(noteDef); } consecutiveBars.Add(newVoice); } return(consecutiveBars); }
public StrandsBrowser(Krystal krystal, Point location) { InitializeComponent(); this.Text = krystal.Name; _krystal = krystal; StrandsTreeView.Nodes.Clear(); if (krystal is LineKrystal) { SetForLineKrystal((LineKrystal)krystal); } else if (krystal is ModulationKrystal) { SetForModulationKrystal((ModulationKrystal)krystal); } else if (krystal is PermutationKrystal) { SetForPermutationKrystal((PermutationKrystal)krystal); } else if (krystal is ExpansionKrystal || krystal is ShapedExpansionKrystal) { SetForExpansionKrystal((ExpansionKrystalBase)krystal); } this.Location = location; }
private TrkDef GetWind3(byte midiChannel, Palette palette, Krystal krystal) { TrkDef wind3 = palette.NewTrkDef(midiChannel, krystal); wind3.Transpose(0, wind3.Count, -13); wind3.StepwiseGliss(74, wind3.Count, 19); return wind3; }
private TrkDef GetF1FinalePart2(Palette f1FinalePalette2, Krystal krystal, List <int> strandIndices, Dictionary <string, int> msPositions) { TrkDef f1FinalePart2 = f1FinalePalette2.NewTrkDef(this.MidiChannel, krystal); List <int> f1eStrandDurations = GetStrandDurations(f1FinalePart2, strandIndices); int extraTime = 500; int diff = extraTime / f1FinalePart2.Count; for (int i = f1FinalePart2.Count - 1; i > 0; --i) { if (strandIndices.Contains(i)) { RestDef umrd = new RestDef(f1FinalePart2[i].MsPosition, f1eStrandDurations[strandIndices.IndexOf(i)] + extraTime); extraTime -= diff; f1FinalePart2.Insert(i, umrd); } } f1FinalePart2.StartMsPosition = msPositions["verse4EsCaped"]; f1FinalePart2.RemoveBetweenMsPositions(msPositions["verse5Calls"], int.MaxValue); if (f1FinalePart2[f1FinalePart2.Count - 1] is RestDef) { f1FinalePart2[f1FinalePart2.Count - 1].MsDuration = msPositions["postlude"] - f1FinalePart2[f1FinalePart2.Count - 1].MsPosition; } return(f1FinalePart2); }
private TrkDef GetF1FinalePart1(Palette palette, Krystal krystal, List <int> strandIndices, Dictionary <string, int> msPositions) { TrkDef f1FinalePart1 = palette.NewTrkDef(0, krystal); List <int> f1eStrandDurations = GetStrandDurations(f1FinalePart1, strandIndices); int extraTime = 1000; int diff = extraTime / f1FinalePart1.Count; for (int i = f1FinalePart1.Count - 1; i > 0; --i) { if (strandIndices.Contains(i)) { RestDef umrd = new RestDef(f1FinalePart1[i].MsPosition, f1eStrandDurations[strandIndices.IndexOf(i)] + extraTime); extraTime -= diff; f1FinalePart1.Insert(i, umrd); } } f1FinalePart1.StartMsPosition = msPositions["interlude3Bar2"]; f1FinalePart1.RemoveBetweenMsPositions(msPositions["verse4EsCaped"], int.MaxValue); if (f1FinalePart1[f1FinalePart1.Count - 1] is RestDef) { f1FinalePart1[f1FinalePart1.Count - 1].MsDuration = msPositions["verse4EsCaped"] - f1FinalePart1[f1FinalePart1.Count - 1].MsPosition; } return(f1FinalePart1); }
/// <summary> /// The krystalNameDelegate is called with the current krystal name when this krystalBrowser is closed. /// The krystalBrowser opens with the given krystal selected. /// </summary> public KrystalBrowser(Krystal krystal, string krystalsFolder, KrystalDelegate krystalNameDelegate) { InitializeComponent(); _krystal = krystal; _krystalsFolder = krystalsFolder; _sendKrystal = krystalNameDelegate; InitializeKrystalBrowser(); }
/// <summary> /// Returns a dictionary containing the current transposition per msPosition /// ( Dictionary[msPositon, transposition] ) /// </summary> /// <returns></returns> public Dictionary <int, int> SetFinalMelody(Krystal mod7krys, Krystal mod12krys) { int f4Interlude4Index = 42; int f4PostludeIndex = 59; int f4finalPhaseIndex = 73; List <int> mod7Values = mod7krys.GetValues(1)[0]; List <int> mod12Values = mod12krys.GetValues(1)[0]; // circle of fifths hierarchy (mod 12): 0 7 4 2 10 9 3 4 8 11 1 6 // rearranged for mod7krys hierarchy (4536271) int[] transpositionArray1 = { 3, -2, 4, 0, 4, 2, -3 }; // 7 changed to 4 (was too high!) // circle of fifths hierarchy centred on 0: int[] transpositionArray2 = { 0, 4, 4, 2, -2, -3, 3, 4, -4, -1, 1, 6 }; // 7 changed to 4 (was too high!) // widened int[] transpositionArray3 = { 0, 9, 4, 4, -2, -5, 6, 8, -7, -2, 2, 11 }; Dictionary <int, int> msPosTranspositionDict = new Dictionary <int, int>(); int transposition; int valueIndex = 0; for (int i = f4Interlude4Index; i < f4PostludeIndex; ++i) { MidiChordDef umcd = this[i] as MidiChordDef; if (umcd != null) { transposition = transpositionArray1[mod7Values[valueIndex++] - 1]; umcd.Transpose(transposition); msPosTranspositionDict.Add(umcd.MsPosition, transposition); } } valueIndex = 0; for (int i = f4PostludeIndex; i < f4finalPhaseIndex; ++i) { MidiChordDef umcd = this[i] as MidiChordDef; if (umcd != null) { transposition = transpositionArray2[mod12Values[valueIndex++] - 1]; umcd.Transpose(transposition); msPosTranspositionDict.Add(umcd.MsPosition, transposition); } } valueIndex = 0; for (int i = f4finalPhaseIndex; i < this.Count; ++i) { MidiChordDef umcd = this[i] as MidiChordDef; if (umcd != null) { transposition = transpositionArray3[mod12Values[valueIndex++] - 1]; umcd.Transpose(transposition); msPosTranspositionDict.Add(umcd.MsPosition, transposition); } } return(msPosTranspositionDict); }
/// <summary> /// Returns a dictionary containing the current transposition per msPosition /// ( Dictionary[msPositon, transposition] ) /// </summary> /// <returns></returns> public Dictionary<int, int> SetFinalMelody(Krystal mod7krys, Krystal mod12krys) { int f4Interlude4Index = 42; int f4PostludeIndex = 59; int f4finalPhaseIndex = 73; List<int> mod7Values = mod7krys.GetValues(1)[0]; List<int> mod12Values = mod12krys.GetValues(1)[0]; // circle of fifths hierarchy (mod 12): 0 7 4 2 10 9 3 4 8 11 1 6 // rearranged for mod7krys hierarchy (4536271) int[] transpositionArray1 = { 3, -2, 4, 0, 4, 2, -3 }; // 7 changed to 4 (was too high!) // circle of fifths hierarchy centred on 0: int[] transpositionArray2 = { 0, 4, 4, 2, -2, -3, 3, 4, -4, -1, 1, 6 }; // 7 changed to 4 (was too high!) // widened int[] transpositionArray3 = { 0, 9, 4, 4, -2, -5, 6, 8, -7, -2, 2, 11 }; Dictionary<int, int> msPosTranspositionDict = new Dictionary<int, int>(); int transposition; int valueIndex = 0; for(int i = f4Interlude4Index; i < f4PostludeIndex; ++i) { MidiChordDef umcd = this[i] as MidiChordDef; if(umcd != null) { transposition = transpositionArray1[mod7Values[valueIndex++] - 1]; umcd.Transpose(transposition); msPosTranspositionDict.Add(umcd.MsPositionReTrk, transposition); } } valueIndex = 0; for(int i = f4PostludeIndex; i < f4finalPhaseIndex; ++i) { MidiChordDef umcd = this[i] as MidiChordDef; if(umcd != null) { transposition = transpositionArray2[mod12Values[valueIndex++] - 1]; umcd.Transpose(transposition); msPosTranspositionDict.Add(umcd.MsPositionReTrk, transposition); } } valueIndex = 0; for(int i = f4finalPhaseIndex; i < this.Count; ++i) { MidiChordDef umcd = this[i] as MidiChordDef; if(umcd != null) { transposition = transpositionArray3[mod12Values[valueIndex++] - 1]; umcd.Transpose(transposition); msPosTranspositionDict.Add(umcd.MsPositionReTrk, transposition); } } return msPosTranspositionDict; }
/// <summary> /// Could be a protected function in a furies class /// </summary> private List <int> GetStrandIndices(Krystal krystal) { 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; } return(strandIndices); }
private Krystal GetKrystal(string krystalFileName) { Krystal krystal = null; try { string krystalPath = M.Preferences.LocalMoritzKrystalsFolder + @"\" + krystalFileName; krystal = K.LoadKrystal(krystalPath); } catch (Exception ex) { MessageBox.Show("Error loading krystal.\n\n" + ex.Message); krystal = null; } return(krystal); }
public StrandsBrowser(Krystal krystal, Point location) { InitializeComponent(); this.Text = krystal.Name; _krystal = krystal; StrandsTreeView.Nodes.Clear(); if(krystal is LineKrystal) SetForLineKrystal((LineKrystal) krystal); else if(krystal is ModulationKrystal) SetForModulationKrystal((ModulationKrystal)krystal); else if(krystal is PermutationKrystal) SetForPermutationKrystal((PermutationKrystal)krystal); else if(krystal is ExpansionKrystal || krystal is ShapedExpansionKrystal) SetForExpansionKrystal((ExpansionKrystalBase) krystal); this.Location = location; }
private TrkDef GetF2Finale(List <Palette> palettes, Krystal krystal, Dictionary <string, int> msPositions) { Palette f2FinalePalette1 = palettes[11]; Palette f2FinalePalette2 = palettes[15]; Palette f2PostludePalette = palettes[19]; List <int> strandIndices = GetStrandIndices(krystal); TrkDef finalePart1 = f2FinalePalette1.NewTrkDef(this.MidiChannel, krystal); Transform(finalePart1, msPositions, strandIndices); TrkDef finalePart2 = f2FinalePalette2.NewTrkDef(this.MidiChannel, krystal); Transform(finalePart2, msPositions, strandIndices); TrkDef postlude = f2PostludePalette.NewTrkDef(this.MidiChannel, krystal); Transform(postlude, msPositions, strandIndices); TrkDef finale = GetFinaleSections(finalePart1, finalePart2, postlude, 71, 175); return(finale); #region old //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; //} //VoiceDef f2IFinalePart1 = GetF2FinalePart1(f2FinalePalette1, krystal, strandIndices, msPositions); //VoiceDef f2FinalePart2 = GetF2FinalePart2(f2FinalePalette2, krystal, strandIndices, msPositions); //VoiceDef f2Postlude = GetF2Postlude(f2PostludePalette, krystal, strandIndices, msPositions); //VoiceDef furies2Finale = f2IFinalePart1; //furies2Finale.AddRange(f2FinalePart2); //furies2Finale.AddRange(f2Postlude); //furies2Finale.AgglomerateRests(); #endregion }
private TrkDef GetF1Postlude(Palette f1PostludePalette, Krystal krystal, List <int> strandIndices, Dictionary <string, int> msPositions) { TrkDef f1p = f1PostludePalette.NewTrkDef(this.MidiChannel, krystal); List <int> f1eStrandDurations = GetStrandDurations(f1p, strandIndices); for (int i = f1p.Count - 1; i > 0; --i) { if (strandIndices.Contains(i)) { RestDef umrd = new RestDef(f1p[i].MsPosition, f1eStrandDurations[strandIndices.IndexOf(i)] / 4); f1p.Insert(i, umrd); } } f1p.StartMsPosition = msPositions["postlude"]; f1p.RemoveBetweenMsPositions(msPositions["endOfPiece"], int.MaxValue); return(f1p); }
private TrkDef GetF4Finale(List <Palette> palettes, Krystal krystal, Dictionary <string, int> msPositions) { Palette f4FinalePalette1 = palettes[9]; Palette f4FinalePalette2 = palettes[13]; Palette f4PostludePalette = palettes[17]; TrkDef interlude4Start = f4FinalePalette1.NewTrkDef(this.MidiChannel, krystal); Transform(interlude4Start, msPositions); TrkDef interlude4EndVerse5 = f4FinalePalette2.NewTrkDef(this.MidiChannel, krystal); Transform(interlude4EndVerse5, msPositions); TrkDef postlude = f4PostludePalette.NewTrkDef(this.MidiChannel, krystal); Transform(postlude, msPositions); TrkDef finale = GetFinaleSections(interlude4Start, interlude4EndVerse5, postlude, 7, 17); return(finale); }
public KrystalAncestorsTreeView(Krystal krystal, List <Dependency> dependencyList) { this.Dock = System.Windows.Forms.DockStyle.Fill; this.Location = new System.Drawing.Point(0, 0); this.BeginUpdate(); this.Nodes.Clear(); AncestorsNode rootNode = null; if (krystal == null) { rootNode = new AncestorsNode("", dependencyList); } else { rootNode = new AncestorsNode(krystal.Name, dependencyList); // recursively creates a tree of LineageNodes } this.Nodes.Add(rootNode); this.EndUpdate(); this.ExpandAll(); }
private TrkDef GetF3Finale(List <Palette> palettes, Krystal krystal, Dictionary <string, int> msPositions) { Palette f3FinalePalette1 = palettes[10]; // correct 1.1.2014 Palette f3FinalePalette2 = palettes[14]; Palette f3PostludePalette = palettes[18]; List <int> strandIndices = GetStrandIndices(krystal); TrkDef finalePart1 = f3FinalePalette1.NewTrkDef(2, krystal); Transform(finalePart1, msPositions, strandIndices); TrkDef finalePart2 = f3FinalePalette2.NewTrkDef(2, krystal); Transform(finalePart2, msPositions, strandIndices); TrkDef postlude = f3PostludePalette.NewTrkDef(2, krystal); Transform(postlude, msPositions, strandIndices); TrkDef finale = GetFinaleSections(finalePart1, finalePart2, postlude, 77, 206); Cleanup(finale, msPositions["endOfPiece"]); return(finale); }
private Trk GetWind3(int midiChannel, Palette palette, Krystal krystal) { Trk wind3 = palette.NewTrk(midiChannel, krystal); wind3.Transpose(0, wind3.Count, -13); wind3.StepwiseGliss(74, wind3.Count, 19); return wind3; }
public TrkDef NewTrkDef(byte midiChannel, Krystal krystal) { List<int> sequence = krystal.GetValues((uint)1)[0]; return NewTrkDef(midiChannel, sequence); }
private List<int> GetStrandIndices(Krystal krystal) { 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; } return strandIndices; }
internal void GetFinale(List<Palette> palettes, Dictionary<string, int> msPositions, Krystal krystal) { Trk furies2Finale = GetF2Finale(palettes, krystal, msPositions); if(furies2Finale[furies2Finale.Count - 1] is RestDef) { furies2Finale.RemoveAt(furies2Finale.Count - 1); } if(furies2Finale[furies2Finale.Count - 1].MsPositionReTrk + furies2Finale[furies2Finale.Count - 1].MsDuration > msPositions["endOfPiece"]) { furies2Finale.RemoveAt(furies2Finale.Count - 1); } InsertInRest(furies2Finale); AdjustPitchWheelDeviations(msPositions["interlude3"], msPositions["endOfPiece"], 5, 28); }
private Trk GetF4Finale(List<Palette> palettes , Krystal krystal, Dictionary<string, int> msPositions) { Palette f4FinalePalette1 = palettes[9]; Palette f4FinalePalette2 = palettes[13]; Palette f4PostludePalette = palettes[17]; Trk interlude4Start = f4FinalePalette1.NewTrk(this.MidiChannel, krystal); Transform(interlude4Start, msPositions); Trk interlude4EndVerse5 = f4FinalePalette2.NewTrk(this.MidiChannel, krystal); Transform(interlude4EndVerse5, msPositions); Trk postlude = f4PostludePalette.NewTrk(this.MidiChannel, krystal); Transform(postlude, msPositions); Trk finale = GetFinaleSections(interlude4Start, interlude4EndVerse5, postlude, 7, 17); return finale; }
public Trk NewTrk(int midiChannel, int msPositionReContainer, Krystal krystal) { List<int> sequence = krystal.GetValues((uint)1)[0]; return NewTrk(midiChannel, msPositionReContainer, sequence); }
private void SetDensityInputKrystal(Krystal krystal) { DensityInputFilenameLabel.Text = krystal.Name; _densityInputFilepath = _krystalsFolder + @"\" + krystal.Name; }
private Trk GetF3Finale(List<Palette> palettes, Krystal krystal, Dictionary<string, int> msPositions) { Palette f3FinalePalette1 = palettes[10]; // correct 1.1.2014 Palette f3FinalePalette2 = palettes[14]; Palette f3PostludePalette = palettes[18]; List<int> strandIndices = GetStrandIndices(krystal); Trk finalePart1 = f3FinalePalette1.NewTrk(2, krystal); Transform(finalePart1, msPositions, strandIndices); Trk finalePart2 = f3FinalePalette2.NewTrk(2, krystal); Transform(finalePart2, msPositions, strandIndices); Trk postlude = f3PostludePalette.NewTrk(2, krystal); Transform(postlude, msPositions, strandIndices); Trk finale = GetFinaleSections(finalePart1, finalePart2, postlude, 77, 206); Cleanup(finale, msPositions["endOfPiece"]); return finale; }
internal void GetFinale(List<Palette> palettes, Dictionary<string, int> msPositions, Krystal krystal) { Trk furies3Finale = GetF3Finale(palettes, krystal, msPositions); InsertInRest(furies3Finale); AdjustPitchWheelDeviations(msPositions["interlude4"], msPositions["endOfPiece"], 5, 28); }
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); }
public void SetForKrystal(string filename) { this.SuspendLayout(); if(filename != null && K.IsKrystalFilename(filename)) { string pathname = _krystalsFolder + "\\" + filename; _krystal = K.LoadKrystal(pathname); } if(_ancestorsTreeView != null) { KrystalAncestorsTreeView tv = this.splitContainer2.Panel1.Controls[0] as KrystalAncestorsTreeView; this.splitContainer2.Panel1.Controls.Clear(); tv.Dispose(); } // if filename is null, _krystal is null here _ancestorsTreeView = new KrystalAncestorsTreeView(_krystal, _krystalFamily.DependencyList); _ancestorsTreeView.AfterSelect += new TreeViewEventHandler(this.AncestorsTreeView_AfterSelect); this.splitContainer2.Panel1.Controls.Add(_ancestorsTreeView); ConstantKrystal ck = _krystal as ConstantKrystal; LineKrystal lk = _krystal as LineKrystal; ExpansionKrystal xk = _krystal as ExpansionKrystal; ShapedExpansionKrystal sk = _krystal as ShapedExpansionKrystal; ModulationKrystal mk = _krystal as ModulationKrystal; PermutationKrystal pk = _krystal as PermutationKrystal; if(ck != null) { this.BasicData.Text = string.Format("Constant Krystal: {0} Level: {1} Value: {2}", _krystal.Name, _krystal.Level.ToString(), _krystal.MaxValue.ToString()); SetForConstantKrystal(); } else if(lk != null) { this.BasicData.Text = string.Format("Line Krystal: {0} Level: {1} Range of Values: {2}..{3}", _krystal.Name, _krystal.Level.ToString(), _krystal.MinValue.ToString(), _krystal.MaxValue.ToString()); SetForLineKrystal(); } else if(xk != null) { this.BasicData.Text = string.Format("Expansion Krystal: {0} Expander: {1} Level: {2} Range of Values: {3}..{4}", _krystal.Name, xk.Expander.Name, _krystal.Level.ToString(), _krystal.MinValue.ToString(), _krystal.MaxValue.ToString()); SetForExpansionKrystal(xk); } else if(sk != null) { this.BasicData.Text = string.Format("Shaped Expansion Krystal: {0} Expander: {1} Level: {2} Range of Values: {3}..{4}", _krystal.Name, sk.Expander.Name, _krystal.Level.ToString(), _krystal.MinValue.ToString(), _krystal.MaxValue.ToString()); SetForShapedExpansionKrystal(sk); } else if(mk != null) { this.BasicData.Text = string.Format("Modulation Krystal: {0} Modulator: {1} Level: {2} Range of Values: {3}..{4}", _krystal.Name, mk.Modulator.Name, _krystal.Level.ToString(), _krystal.MinValue.ToString(), _krystal.MaxValue.ToString()); SetForModulationKrystal(mk); } else if(pk != null) { string sortFirstString; if(pk.SortFirst) sortFirstString = "true"; else sortFirstString = "false"; this.BasicData.Text = string.Format("Permutation Krystal: {0} Level: {1} pLevel: {2} sortFirst: {3} Range of Values: {4}..{5}", _krystal.Name, _krystal.Level.ToString(), pk.PermutationLevel.ToString(), sortFirstString, _krystal.MinValue.ToString(), _krystal.MaxValue.ToString()); SetForPermutationKrystal(pk); } else // _krystal == null { this.BasicData.Text = ""; SetForNoKrystal(); } if(_krystal != null) { if(_selectedTreeView == null || _selectedTreeView.Equals(this._krystalFamilyTreeView) == false) SelectNodeInFamilyTree(_krystal.Name); SetFirstAncestorAppearance(); } this.ResumeLayout(); }
internal void GetFinale(List <Palette> palettes, Dictionary <string, int> msPositions, Krystal krystal) { TrkDef furies2Finale = GetF2Finale(palettes, krystal, msPositions); if (furies2Finale[furies2Finale.Count - 1] is RestDef) { furies2Finale.RemoveAt(furies2Finale.Count - 1); } if (furies2Finale[furies2Finale.Count - 1].MsPosition + furies2Finale[furies2Finale.Count - 1].MsDuration > msPositions["endOfPiece"]) { furies2Finale.RemoveAt(furies2Finale.Count - 1); } InsertInRest(furies2Finale); AdjustPitchWheelDeviations(msPositions["interlude3"], msPositions["endOfPiece"], 5, 28); }
internal void GetFinale(List<Palette> palettes, Dictionary<string, int> msPositions, Krystal krystal) { Trk furies4Finale = GetF4Finale(palettes, krystal, msPositions); if(furies4Finale[furies4Finale.Count - 1] is RestDef) { furies4Finale.RemoveAt(furies4Finale.Count - 1); } if(furies4Finale[furies4Finale.Count - 1].MsPositionReTrk + furies4Finale[furies4Finale.Count - 1].MsDuration > msPositions["endOfPiece"]) { furies4Finale.RemoveAt(furies4Finale.Count - 1); } InsertInRest(furies4Finale); RemoveScorePitchWheelCommandsFromControlledChords(); // interlude4 (to immediately before verse5) AdjustPitchWheelDeviations(msPositions["verse5"], msPositions["postlude"], 5, 1); RemoveScorePitchWheelCommands(59, this.Count); // postlude }
private TrkDef GetF1FinalePart1(Palette palette, Krystal krystal, List<int> strandIndices, Dictionary<string, int> msPositions) { TrkDef f1FinalePart1 = palette.NewTrkDef(0, krystal); List<int> f1eStrandDurations = GetStrandDurations(f1FinalePart1, strandIndices); int extraTime = 1000; int diff = extraTime / f1FinalePart1.Count; for(int i = f1FinalePart1.Count - 1; i > 0; --i) { if(strandIndices.Contains(i)) { RestDef umrd = new RestDef(f1FinalePart1[i].MsPosition, f1eStrandDurations[strandIndices.IndexOf(i)] + extraTime); extraTime -= diff; f1FinalePart1.Insert(i, umrd); } } f1FinalePart1.StartMsPosition = msPositions["interlude3Bar2"]; f1FinalePart1.RemoveBetweenMsPositions(msPositions["verse4EsCaped"], int.MaxValue); if(f1FinalePart1[f1FinalePart1.Count - 1] is RestDef) { f1FinalePart1[f1FinalePart1.Count - 1].MsDuration = msPositions["verse4EsCaped"] - f1FinalePart1[f1FinalePart1.Count - 1].MsPosition; } return f1FinalePart1; }
private void SetPointsInputKrystal(Krystal krystal) { PointsInputFilenameLabel.Text = krystal.Name; _pointsInputFilepath = _krystalsFolder + @"\" + krystal.Name; }
private TrkDef GetF1FinalePart2(Palette f1FinalePalette2, Krystal krystal, List<int> strandIndices, Dictionary<string, int> msPositions) { TrkDef f1FinalePart2 = f1FinalePalette2.NewTrkDef(this.MidiChannel, krystal); List<int> f1eStrandDurations = GetStrandDurations(f1FinalePart2, strandIndices); int extraTime = 500; int diff = extraTime / f1FinalePart2.Count; for(int i = f1FinalePart2.Count - 1; i > 0; --i) { if(strandIndices.Contains(i)) { RestDef umrd = new RestDef(f1FinalePart2[i].MsPosition, f1eStrandDurations[strandIndices.IndexOf(i)] + extraTime); extraTime -= diff; f1FinalePart2.Insert(i, umrd); } } f1FinalePart2.StartMsPosition = msPositions["verse4EsCaped"]; f1FinalePart2.RemoveBetweenMsPositions(msPositions["verse5Calls"], int.MaxValue); if(f1FinalePart2[f1FinalePart2.Count - 1] is RestDef) { f1FinalePart2[f1FinalePart2.Count - 1].MsDuration = msPositions["postlude"] - f1FinalePart2[f1FinalePart2.Count - 1].MsPosition; } return f1FinalePart2; }
private Trk GetF2Finale(List<Palette> palettes, Krystal krystal, Dictionary<string, int> msPositions) { Palette f2FinalePalette1 = palettes[11]; Palette f2FinalePalette2 = palettes[15]; Palette f2PostludePalette = palettes[19]; List<int> strandIndices = GetStrandIndices(krystal); Trk finalePart1 = f2FinalePalette1.NewTrk(this.MidiChannel, krystal); Transform(finalePart1, msPositions, strandIndices); Trk finalePart2 = f2FinalePalette2.NewTrk(this.MidiChannel, krystal); Transform(finalePart2, msPositions, strandIndices); Trk postlude = f2PostludePalette.NewTrk(this.MidiChannel, krystal); Transform(postlude, msPositions, strandIndices); Trk finale = GetFinaleSections(finalePart1, finalePart2, postlude, 71, 175); return finale; #region old //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; //} //VoiceDef f2IFinalePart1 = GetF2FinalePart1(f2FinalePalette1, krystal, strandIndices, msPositions); //VoiceDef f2FinalePart2 = GetF2FinalePart2(f2FinalePalette2, krystal, strandIndices, msPositions); //VoiceDef f2Postlude = GetF2Postlude(f2PostludePalette, krystal, strandIndices, msPositions); //VoiceDef furies2Finale = f2IFinalePart1; //furies2Finale.AddRange(f2FinalePart2); //furies2Finale.AddRange(f2Postlude); //furies2Finale.AgglomerateRests(); #endregion }
private TrkDef GetF1Postlude(Palette f1PostludePalette, Krystal krystal, List<int> strandIndices, Dictionary<string, int> msPositions) { TrkDef f1p = f1PostludePalette.NewTrkDef(this.MidiChannel, krystal); List<int> f1eStrandDurations = GetStrandDurations(f1p, strandIndices); for(int i = f1p.Count - 1; i > 0; --i) { if(strandIndices.Contains(i)) { RestDef umrd = new RestDef(f1p[i].MsPosition, f1eStrandDurations[strandIndices.IndexOf(i)] / 4); f1p.Insert(i, umrd); } } f1p.StartMsPosition = msPositions["postlude"]; f1p.RemoveBetweenMsPositions(msPositions["endOfPiece"], int.MaxValue); return f1p; }
internal void GetFinale(List <Palette> palettes, Dictionary <string, int> msPositions, Krystal krystal) { TrkDef furies3Finale = GetF3Finale(palettes, krystal, msPositions); InsertInRest(furies3Finale); AdjustPitchWheelDeviations(msPositions["interlude4"], msPositions["endOfPiece"], 5, 28); }
internal void GetFinale(List <Palette> palettes, Dictionary <string, int> msPositions, Krystal krystal) { TrkDef furies4Finale = GetF4Finale(palettes, krystal, msPositions); if (furies4Finale[furies4Finale.Count - 1] is RestDef) { furies4Finale.RemoveAt(furies4Finale.Count - 1); } if (furies4Finale[furies4Finale.Count - 1].MsPosition + furies4Finale[furies4Finale.Count - 1].MsDuration > msPositions["endOfPiece"]) { furies4Finale.RemoveAt(furies4Finale.Count - 1); } InsertInRest(furies4Finale); RemoveScorePitchWheelCommandsFromControlledChords(); // interlude4 (to immediately before verse5) AdjustPitchWheelDeviations(msPositions["verse5"], msPositions["postlude"], 5, 1); RemoveScorePitchWheelCommands(59, this.Count); // postlude }
public TrkDef NewTrkDef(byte midiChannel, Krystal krystal) { List <int> sequence = krystal.GetValues((uint)1)[0]; return(NewTrkDef(midiChannel, sequence)); }
/// <summary> /// Called as a delegate by a krystalBrowser just before it closes. /// The current krystal name in the browser is passed to this function. /// </summary> /// <param name="krystalname"></param> private void SetKrystal(Krystal newKrystal) { List<Krystal> allKrystals = AllKrystals; bool krystalAlreadyPresent = false; foreach(Krystal krystal in allKrystals) { if(krystal.Name == newKrystal.Name) { krystalAlreadyPresent = true; break; } } if(krystalAlreadyPresent) { MessageBox.Show(newKrystal.Name + "is already in the score.", "krystal already present", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { string staffKrystalPath = M.Preferences.LocalMoritzKrystalsFolder + @"\" + newKrystal.Name; Krystal krystal = K.LoadKrystal(staffKrystalPath); this.KrystalsListBox.SuspendLayout(); this.KrystalsListBox.Items.Add(krystal); this.KrystalsListBox.ResumeLayout(); KrystalsListBox.SetSelected(KrystalsListBox.Items.Count - 1, true); // triggers KrystalsListBox_SelectedIndexChanged() SetGroupBoxIsUnconfirmed(KrystalsGroupBox, ConfirmKrystalsListButton, RevertKrystalsListButton); } this.BringToFront(); }
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 ); }