private void UpdateOutputHandler(object sender, EventArgs e) { Note[] notes = null; var CP = new ConversionParams(); CP.DefaultDuration = (int)numberBoxDuration.Value; CP.DefaultCommaPause = (int)numberBoxComma.Value; CP.DefaultPause = (int)numberBoxPause.Value; CP.DefaultSemiColonPause = (int)numberBoxSemicolonPause.Value; if (radioCode.Checked) { notes = SequenceConversion.CSharpCodeToNoteArray(textBoxSource.Text, CP); } else if (radioMusicSheet.Checked) { notes = SequenceConversion.MusicSheetToNoteArray(textBoxSource.Text, CP); } else if (radioPowerShell.Checked) { notes = SequenceConversion.PowerShellToNoteArray(textBoxSource.Text, CP); } else if (radioBash.Checked) { notes = SequenceConversion.BashToNoteArray(textBoxSource.Text, CP); } textBoxOutput.Text = SequenceConversion.NoteArrayToSequence(notes); }
public void ConvertBrevePositionChord() { Sequence metricSequence = SequenceHandler.CreateNewSequence("kind of test", "Breve position Chord", "noPage", "Tenor", 3); Panel metricPanel = MeiImport.ImportDocument("..\\..\\files\\tests\\MetricSequenceChord.xml").Root.Descendants <Panel>().FirstOrDefault(); SequenceHandler.FlattenMeiToSequence(metricPanel, metricSequence); Controller.BuildSequence(metricSequence); SequenceConversion.ConvertBrevePosition(metricSequence); foreach (ObjectInSequence obj in metricSequence.ObjectsInSequence) { IAttCommon corresp = (IAttCommon)metricPanel.Descendants().FirstOrDefault(element => element.GetId() == obj.ID); if (corresp.HasN()) { Fraction exp = new Fraction(corresp.GetNValue()); if (obj is Model.Rest rest) { //Check if expected value is not null and then compare Assert.IsNotNull(exp); Assert.AreEqual(exp, rest.BrevePosition); } } } metricPanel = null; metricSequence = null; }
public void ConvertAbsolutePitchTest() { Sequence aPitchSeq = SequenceHandler.CreateNewSequence("Test", "Absolute Pitch", "noPage", "AbsolutePitch", 1); Panel aPitchPanel = MeiImport.ImportDocument("..\\..\\files\\tests\\AbsolutePitch.xml").Root.Descendants <Panel>().FirstOrDefault(); SequenceHandler.FlattenMeiToSequence(aPitchPanel, aPitchSeq); Controller.BuildSequence(aPitchSeq); SequenceConversion.ConvertAbsolutePitch(aPitchSeq); foreach (Model.Note note in aPitchSeq.ObjectsInSequence.Where(item => item is Model.Note)) { Assert.IsNotNull(note.WrittenPitch); mei.Note corresp = (mei.Note)aPitchPanel.Descendants().FirstOrDefault(element => element.GetId() == note.ID); if (corresp.HasPnum()) { if (Int32.TryParse(corresp.GetPnumValue(), out int pnum)) { Assert.AreEqual(pnum, note.PitchWithAccid); } else { throw new ArgumentNullException("Pnum could not be parsed!"); } } } }
/// <summary> /// Builds each sequence in list and calculates logical parameters /// </summary> /// <param name="_sequences">List of unconverted sequences</param> private void ConvertSequences(List <Sequence> _sequences) { foreach (Sequence seq in _sequences) { Controller.BuildSequence(seq); SequenceConversion.ConvertBrevePosition(seq); SequenceConversion.ConvertAbsolutePitch(seq); } }
public void ConvertBrevePositionGap() { Sequence metricSequence = SequenceHandler.CreateNewSequence("kind of test", "Breve position with gaps", "noPage", "Tenor", 3); Panel metricPanel = MeiImport.ImportDocument("..\\..\\files\\tests\\MetricSequenceDamage.xml").Root.Descendants <Panel>().FirstOrDefault(); SequenceHandler.FlattenMeiToSequence(metricPanel, metricSequence); Controller.BuildSequence(metricSequence); SequenceConversion.ConvertBrevePosition(metricSequence); foreach (ObjectInSequence obj in metricSequence.ObjectsInSequence) { if (obj is Model.Rest rest) { IAttCommon corresp = (IAttCommon)metricPanel.Descendants().FirstOrDefault(element => element.GetId() == obj.ID); Fraction expBP = 0; Fraction expPaG = 0; if (corresp.HasN()) { expBP = new Fraction(corresp.GetNValue()); } else if (corresp.HasLabel()) { expPaG = new Fraction(corresp.GetLabelValue()); } //Check if expected value is not null and then compare if (expBP != 0) { Assert.AreEqual(expBP, rest.BrevePosition); } else if (expPaG != 0) { Assert.AreEqual(expPaG, rest.AfterGapPosition); } else { Assert.Fail(); } } } metricPanel = null; metricSequence = null; }