private void GetMeasureData() { if (m_Experiment == null) { return; } if (m_MeasureScalarData == null || m_MeasureScalarData.Label() != txtMeasureName.Text) { MeasureElement[] measureArray = m_Experiment.GetAllMeasureElements(); MeasureElement measureElement = measureArray.First(x => x.GetName() == txtMeasureName.Text); if (measureElement != null && measureElement.IsScalar()) { m_MeasureScalarData = measureElement.GetValue() as MeasureScalarData; } } }
static TimeLogger() { Enabled = false; _measureElements = new MeasureElement[_maxQueryFrames]; for (int i = 0; i < _maxQueryFrames; ++i) { _measureElements[i] = new MeasureElement { FrameID = 0, QueryOcclusion = new GPUQuery(D3DDevice.Device, new QueryDescription() { Type = QueryType.Occlusion }), QueryPipelineStats = new GPUQuery(D3DDevice.Device, new QueryDescription() { Type = QueryType.PipelineStatistics }), QueryTimeStampDisjoint = new GPUQuery(D3DDevice.Device, new QueryDescription() { Type = QueryType.TimestampDisjoint }), QueryTimeStampFrameBegin = new GPUQuery(D3DDevice.Device, new QueryDescription() { Type = QueryType.Timestamp }), QueryTimeStampFrameEnd = new GPUQuery(D3DDevice.Device, new QueryDescription() { Type = QueryType.Timestamp }) }; } _timer = new System.Timers.Timer(1000); _timer.Elapsed += HandleTimedEvent; _timer.AutoReset = true; Clear(); _timer.Start(); }
public static Score GetScore(TextAsset text) { var document = GetXmlDocument(text.text); var score = new Score(); var movementTitleNode = document.SelectSingleNode("score-partwise/movement-title"); if (movementTitleNode != null) { score.MovementTitle = movementTitleNode.InnerText; } score.Identification = GetIdentification(document); var partNodes = document.SelectNodes("score-partwise/part-list/score-part"); if (partNodes != null) { foreach (XmlNode partNode in partNodes) { var part = new Part(); score.Parts.Add(part); if (partNode.Attributes != null) { part.Id = partNode.Attributes["id"].InnerText; } var partNameNode = partNode.SelectSingleNode("part-name"); if (partNameNode != null) { part.Name = partNameNode.InnerText; } var measuresXpath = string.Format("//part[@id='{0}']/measure", part.Id); var measureNodes = partNode.SelectNodes(measuresXpath); if (measureNodes != null) { foreach (XmlNode measureNode in measureNodes) { var measure = new Measure(); if (measureNode.Attributes != null) { var measureWidthAttribute = measureNode.Attributes["width"]; decimal w; if (measureWidthAttribute != null && decimal.TryParse(measureWidthAttribute.InnerText, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out w)) { measure.Width = w; } //后面加上用于读取小节序号 var measureNumberAttribute = measureNode.Attributes["number"]; int i; if (measureNumberAttribute != null && int.TryParse(measureNumberAttribute.InnerText, NumberStyles.Integer, CultureInfo.InvariantCulture, out i)) { measure.Number = i; } } var attributesNode = measureNode.SelectSingleNode("attributes"); if (attributesNode != null) { measure.Attributes = new MeasureAttributes(); var divisionsNode = attributesNode.SelectSingleNode("divisions"); if (divisionsNode != null) { measure.Attributes.Divisions = Convert.ToInt32(divisionsNode.InnerText); } var keyNode = attributesNode.SelectSingleNode("key"); if (keyNode != null) { measure.Attributes.Key = new Key(); var fifthsNode = keyNode.SelectSingleNode("fifths"); if (fifthsNode != null) { measure.Attributes.Key.Fifths = Convert.ToInt32(fifthsNode.InnerText); } var modeNode = keyNode.SelectSingleNode("mode"); if (modeNode != null) { measure.Attributes.Key.Mode = modeNode.InnerText; } } measure.Attributes.Time = GetTime(attributesNode); measure.Attributes.Clef = GetClef(attributesNode); } var dictionNode = measureNode.SelectSingleNode("direction"); if (dictionNode != null) { measure.Attributes.Speed = GetSpeed(dictionNode); } var childNodes = measureNode.ChildNodes; foreach (XmlNode node in childNodes) { MeasureElement measureElement = null; if (node.Name == "note") { var newNote = GetNote(node); measureElement = new MeasureElement { Type = MeasureElementType.Note, Element = newNote }; } else if (node.Name == "backup") { measureElement = new MeasureElement { Type = MeasureElementType.Backup, Element = GetBackupElement(node) }; } else if (node.Name == "forward") { measureElement = new MeasureElement { Type = MeasureElementType.Forward, Element = GetForwardElement(node) }; } else if (node.Name == "barline") { var barlineNode = node.ChildNodes[0]; measure.Attributes.BarLine = barlineNode.InnerText; } if (measureElement != null) { measure.MeasureElements.Add(measureElement); } } part.Measures.Add(measure); } } } } return(score); }
public static Score GetScore(string filename) { var document = GetXmlDocument(filename); var score = new Score(); score.Systems = 0; var movementTitleNode = document.SelectSingleNode("score-partwise/movement-title"); if (movementTitleNode != null) { score.MovementTitle = movementTitleNode.InnerText; } score.Identification = GetIdentification(document); var partNodes = document.SelectNodes("score-partwise/part-list/score-part"); var layoutNode = document.SelectSingleNode("score-partwise/defaults/page-layout"); var marginNode = layoutNode.SelectSingleNode("page-margins"); double width = Convert.ToDouble(layoutNode.SelectSingleNode("page-width").InnerText); Console.WriteLine(width); var marginlistLeft = marginNode.SelectNodes("left-margin"); var marginlistRight = marginNode.SelectNodes("right-margin"); double marginLeft = Convert.ToDouble(marginlistLeft.Item(0).InnerText); Console.WriteLine(marginLeft); double marginRight = Convert.ToDouble(marginlistLeft.Item(0).InnerText); Console.WriteLine(marginRight); score.Scale = (width - marginLeft - marginRight) / 1055; Console.WriteLine("Scale is: " + score.Scale); if (partNodes != null) { foreach (XmlNode partNode in partNodes) { var part = new Part(); score.Parts.Add(part); if (partNode.Attributes != null) { part.Id = partNode.Attributes["id"].InnerText; } var partNameNode = partNode.SelectSingleNode("part-name"); if (partNameNode != null) { part.Name = partNameNode.InnerText; } var measuresXpath = string.Format("//part[@id='{0}']/measure", part.Id); var measureNodes = partNode.SelectNodes(measuresXpath); if (measureNodes != null) { foreach (XmlNode measureNode in measureNodes) { var measure = new Measure(); if (measureNode.Attributes != null) { var measureWidthAttribute = measureNode.Attributes["width"]; decimal w; if (measureWidthAttribute != null && decimal.TryParse(measureWidthAttribute.InnerText, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out w)) { measure.Width = w / (decimal)score.Scale; } } if (measureNode.Attributes != null) { var measureWidthAttribute = measureNode.Attributes["width"]; decimal w; if (measureWidthAttribute != null && decimal.TryParse(measureWidthAttribute.InnerText, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out w)) { measure.Width = w; } var measureNumberAttribute = measureNode.Attributes["number"]; int n; if (measureNumberAttribute != null && int.TryParse(measureNumberAttribute.InnerText, out n)) { measure.Number = n; } } if (measureNode.SelectSingleNode("print") != null) { score.Systems++; measure.NewSystem = true; Console.WriteLine("NEW SYSTEM: MEASURE " + measure.Number); } var attributesNode = measureNode.SelectSingleNode("attributes"); if (attributesNode != null) { measure.Attributes = new MeasureAttributes(); var divisionsNode = attributesNode.SelectSingleNode("divisions"); if (divisionsNode != null) { measure.Attributes.Divisions = Convert.ToInt32(divisionsNode.InnerText); } var keyNode = attributesNode.SelectSingleNode("key"); if (keyNode != null) { measure.Attributes.Key = new Key(); var fifthsNode = keyNode.SelectSingleNode("fifths"); if (fifthsNode != null) { measure.Attributes.Key.Fifths = Convert.ToInt32(fifthsNode.InnerText); } var modeNode = keyNode.SelectSingleNode("mode"); if (modeNode != null) { measure.Attributes.Key.Mode = modeNode.InnerText; } } measure.Attributes.Time = GetTime(attributesNode); measure.Attributes.Clef = GetClef(attributesNode); } var childNodes = measureNode.ChildNodes; foreach (XmlNode node in childNodes) { MeasureElement measureElement = null; if (node.Name == "note") { var newNote = GetNote(node); measureElement = new MeasureElement { Type = MeasureElementType.Note, Element = newNote }; var note = (Note)measureElement.Element; note.MeasureNumber = measure.Number; } else if (node.Name == "backup") { measureElement = new MeasureElement { Type = MeasureElementType.Backup, Element = GetBackupElement(node) }; } else if (node.Name == "forward") { measureElement = new MeasureElement { Type = MeasureElementType.Forward, Element = GetForwardElement(node) }; } if (measureElement != null) { measure.MeasureElements.Add(measureElement); } } part.Measures.Add(measure); } } } } return(score); }
public static Score GetScore(string filename) { var document = GetXmlDocument(filename); var score = new Score(); var movementTitleNode = document.SelectSingleNode("score-partwise/movement-title"); if (movementTitleNode != null) { score.MovementTitle = movementTitleNode.InnerText; } score.Identification = GetIdentification(document); var partNodes = document.SelectNodes("score-partwise/part-list/score-part"); if (partNodes != null) { foreach (XmlNode partNode in partNodes) { var part = new Part(); score.Parts.Add(part); if (partNode.Attributes != null) { part.Id = partNode.Attributes["id"].InnerText; } var partNameNode = partNode.SelectSingleNode("part-name"); if (partNameNode != null) { part.Name = partNameNode.InnerText; } var measuresXpath = string.Format("//part[@id='{0}']/measure", part.Id); var measureNodes = partNode.SelectNodes(measuresXpath); if (measureNodes != null) { foreach (XmlNode measureNode in measureNodes) { var measure = new Measure(); if (measureNode.Attributes != null) { var measureWidthAttribute = measureNode.Attributes["width"]; if (measureWidthAttribute != null) { measure.Width = Convert.ToInt32(measureWidthAttribute.InnerText); } } var attributesNode = measureNode.SelectSingleNode("attributes"); if (attributesNode != null) { measure.Attributes = new MeasureAttributes(); var divisionsNode = attributesNode.SelectSingleNode("divisions"); if (divisionsNode != null) { measure.Attributes.Divisions = Convert.ToInt32(divisionsNode.InnerText); } var keyNode = attributesNode.SelectSingleNode("key"); if (keyNode != null) { measure.Attributes.Key = new Key(); var fifthsNode = keyNode.SelectSingleNode("fifths"); if (fifthsNode != null) { measure.Attributes.Key.Fifths = Convert.ToInt32(fifthsNode.InnerText); } var modeNode = keyNode.SelectSingleNode("mode"); if (modeNode != null) { measure.Attributes.Key.Mode = modeNode.InnerText; } } measure.Attributes.Time = GetTime(attributesNode); measure.Attributes.Clef = GetClef(attributesNode); } var childNodes = measureNode.ChildNodes; foreach (XmlNode node in childNodes) { MeasureElement measureElement = null; if (node.Name == "note") { var newNote = GetNote(node); measureElement = new MeasureElement { Type = MeasureElementType.Note, Element = newNote }; } else if (node.Name == "backup") { measureElement = new MeasureElement { Type = MeasureElementType.Backup, Element = GetBackupElement(node) }; } else if (node.Name == "forward") { measureElement = new MeasureElement { Type = MeasureElementType.Forward, Element = GetForwardElement(node) }; } if (measureElement != null) { measure.MeasureElements.Add(measureElement); } } part.Measures.Add(measure); } } } } return(score); }
public static Score GetScore(string filename) { pmn = 100; dictNoteTiedStart = new Dictionary <int, Note>(); Measure measureLast = new Measure(); measureLast.Attributes = new MeasureAttributes(); measureLast.Attributes.Time = new Time(); //Debug.LogWarning("GetScore " + filename); //var document = GetXmlDocument(filename); var document = GetXmlDocumentContent(filename); var score = new Score(); var movementTitleNode = document.SelectSingleNode("score-partwise/movement-title"); if (movementTitleNode != null) { score.MovementTitle = movementTitleNode.InnerText; } score.Identification = GetIdentification(document); var partNodes = document.SelectNodes("score-partwise/part-list/score-part"); if (partNodes != null) { foreach (XmlNode partNode in partNodes) { var part = new Part(); score.Parts.Add(part); if (partNode.Attributes != null) { part.Id = partNode.Attributes["id"].InnerText; } var partNameNode = partNode.SelectSingleNode("part-name"); if (partNameNode != null) { part.Name = partNameNode.InnerText; } var measuresXpath = string.Format("//part[@id='{0}']/measure", part.Id); var measureNodes = partNode.SelectNodes(measuresXpath); if (measureNodes != null) { measureStartPost = 0; foreach (XmlNode measureNode in measureNodes) { var measure = new Measure(); if (measureNode.Attributes != null) { var measureWidthAttribute = measureNode.Attributes["number"]; int n; if (measureWidthAttribute != null && int.TryParse(measureWidthAttribute.InnerText, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out n)) { measure.Number = n; } } var attributesNode = measureNode.SelectSingleNode("attributes"); if (attributesNode != null) { measure.Attributes = new MeasureAttributes(); var divisionsNode = attributesNode.SelectSingleNode("divisions"); if (divisionsNode != null) { measure.Attributes.Divisions = Convert.ToInt32(divisionsNode.InnerText); measureLast.Attributes.Divisions = measure.Attributes.Divisions; } else { measure.Attributes.Divisions = measureLast.Attributes.Divisions; } var keyNode = attributesNode.SelectSingleNode("key"); if (keyNode != null) { measure.Attributes.Key = new Key(); var fifthsNode = keyNode.SelectSingleNode("fifths"); if (fifthsNode != null) { measure.Attributes.Key.Fifths = Convert.ToInt32(fifthsNode.InnerText); } var modeNode = keyNode.SelectSingleNode("mode"); if (modeNode != null) { measure.Attributes.Key.Mode = modeNode.InnerText; } } measure.Attributes.Time = GetTime(attributesNode); if (measure.Attributes.Time.Beats != 0) { measureLast.Attributes.Time.Beats = measure.Attributes.Time.Beats; } else { measure.Attributes.Time.Beats = measureLast.Attributes.Time.Beats; } if (measure.Attributes.Time.Mode != string.Empty) { measureLast.Attributes.Time.Mode = measure.Attributes.Time.Mode; } else { measure.Attributes.Time.Mode = measureLast.Attributes.Time.Mode; } measure.Attributes.Clef = GetClef(attributesNode); } else { measure.Attributes = measureLast.Attributes; } measure.StartPos = (int)measureStartPost; var childNodes = measureNode.ChildNodes; nonChordPos = 0; chordtPos = 0; float lastPostEnd = 0; foreach (XmlNode node in childNodes) { MeasureElement measureElement = null; if (node.Name == "note") { var newNote = GetNote(node); if (newNote == null) { continue; } measureElement = new MeasureElement { Type = MeasureElementType.Note, Element = newNote }; if (!newNote.IsChordTone) { newNote.StartPos = nonChordPos; chordtPos = nonChordPos; nonChordPos = nonChordPos + newNote.Duration; } else { newNote.StartPos = chordtPos; } newNote.Pmn = pmn; if (lastPostEnd < newNote.StartPos + newNote.Duration) { lastPostEnd = newNote.StartPos + newNote.Duration; } } else if (node.Name == "backup") { measureElement = new MeasureElement { Type = MeasureElementType.Backup, Element = GetBackupElement(node) }; } else if (node.Name == "forward") { measureElement = new MeasureElement { Type = MeasureElementType.Forward, Element = GetForwardElement(node) }; } else if (node.Name == "direction") { var directiontype = node.SelectSingleNode("direction-type"); if (directiontype != null) { var metronome = directiontype.SelectSingleNode("metronome"); if (metronome != null) { var perminute = metronome.SelectSingleNode("per-minute"); int perminuteResult; if (perminute != null && int.TryParse(perminute.InnerText, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out perminuteResult)) { pmn = perminuteResult; Debug.Log("pmn " + pmn); } else { Debug.Log("per-minute == null"); } } else { //Debug.Log("metronome == null"); } } else { //Debug.Log("directiontype == null"); } } if (measureElement != null) { //Debug.Log("measure.MeasureElements.Add(measureElement)"); measure.MeasureElements.Add(measureElement); } } measureStartPost = measureStartPost + lastPostEnd; measure.Duration = measureStartPost - measure.StartPos; part.Measures.Add(measure); } } } } return(score); }
static void Main(string[] args) { try { //Program.TestPath(); string projectPath = Directory.GetCurrentDirectory() + "\\..\\..\\"; string resourcePath = projectPath + "Resources\\"; //string musicXmlName = "Dichterliebe01.mxl"; //string musicXmlName = "89280-Twinkle_Twinkle_Little_Star.mxl"; string musicXmlName = "3375816-Twinkle_Twinkle_little_star.mxl"; Score score = MusicXml.MusicXmlParser.GetScore(musicXmlName); for (int index = 0; index < score.Parts.Count; ++index) { Console.WriteLine("Name {0}", score.Parts[index].Name); } Part mainPart = score.Parts[0]; for (int index = 0; index < mainPart.Measures.Count; ++index) { List <MeasureElement> measureElementList = mainPart.Measures[index].MeasureElements; for (int noteIndex = 0; noteIndex < measureElementList.Count; ++noteIndex) { MeasureElement measureElement = measureElementList[noteIndex]; /// <chord/> 화음 /// <staff/> 메인 반주 /// <rest/> 쉼 /// ? 잇단음표 /// ? 이음줄 try { switch (measureElement.Type) { case MeasureElementType.Note: Note note = measureElement.Element as Note; Console.WriteLine("Note Octave {0}", note.Pitch.Octave); Console.WriteLine("Note Step {0}", note.Pitch.Step); break; case MeasureElementType.Backup: Backup backup = measureElement.Element as Backup; Console.WriteLine("Backup Duration {0}", backup.Duration); break; case MeasureElementType.Forward: Forward forward = measureElement.Element as Forward; Console.WriteLine("Forward Duration {0}", forward.Duration); break; } } catch (Exception _e) { Console.WriteLine("exception {0}", _e); Console.WriteLine("index {0}", index); Console.WriteLine("noteIndex {0}", noteIndex); } } } //Program.ReadMusicXml( resourcePath + musicXmlName ); string txtName = "Test_do.txt"; //string decompressName = "new.gz"; string decompressName = "Dichterliebe01.mxl"; //string zipName = "testZipFile.zip"; //string zipName = "Dichterliebe01.mxl"; string zipName = "89280-Twinkle_Twinkle_Little_Star.mxl"; //string fullPath = "F:\\workspace_suny\\TestProject\\Test_MXL\\Test_MXL\\Resources\\Test_do.txt"; //string path = Path.Combine(Environment.CurrentDirectory, @"Resources\", "Test_do.txt"); // 1. // Starting file is 26,747 bytes. //string anyString = File.ReadAllText(txtPath + txtName); //Console.WriteLine("anyString: {0}", anyString); // 2. // Output file is 7,388 bytes. //CompressStringToFile(decompressPath + decompressName, anyString); //string decompressName = "89280-Twinkle_Twinkle_Little_Star.mxl"; //DecompressStringFromFile( decompressPath + decompressName ); //string noteData = DecompressToPath( decompressPath + "zipFolder", decompressPath + zipName, decompressPath + "extractFolder" ); //loadXML(decompressPath + decompressName); } catch (Exception _exception) { Console.WriteLine("Exception: {0}", _exception); // Could not compress. } Console.ReadLine(); }