public void CreateMusicPiece(string filename)
        {
            _score = MusicXmlParser.GetScore(filename);

            Guide = new GuidesController(MidiController)
            {
                Score = _score, Piano = Piano, Sheet = SheetController
            };

            Sheet = SheetController.SheetModel;

            //stop program from crashing when reloading musicpiece.
            Sheet.Reset();

            AddGreatStaffsToSheet();

            AddMeasuresToGreatStaffs();

            AddNotesToMeasures();

            Guide.staffEndReached += staffEndReached;
            Guide.GoToFirstStaff  += GoToFirstStaff;
            Guide.HoldPosition    += this.HoldPosition;
            MidiController.Guide   = Guide;

            KeyboardController.Guide = Guide;
        }
        public void Measure_with_decimal_width_attribute()
        {
            var scoreWithoutMeasureWidthAttribute = MusicXmlParser.GetScore(@"TestData\MusicXmlWithChords.xml");

            var part = scoreWithoutMeasureWidthAttribute.Parts[0];

            var measure = part.Measures[0];

            Assert.That(measure.Width, Is.EqualTo(199.25));
        }
        public void Is_chord_tone_false_for_note_without_chord_tag()
        {
            var score = MusicXmlParser.GetScore("TestData/MusicXmlWithChords.xml");

            var part    = score.Parts[0];
            var measure = part.Measures[0];
            var note    = measure.MeasureElements[0].Element as Note;

            Assert.That(note.IsChordTone, Is.False);
        }
        public void Measure_without_width_attribute_returns_negative_one()
        {
            var scoreWithoutMeasureWidthAttribute = MusicXmlParser.GetScore(@"TestData\MusicXmlWithoutMeasureWidthAttribute.xml");

            var part = scoreWithoutMeasureWidthAttribute.Parts[0];

            var measure = part.Measures[0];

            Assert.That(measure.Width, Is.EqualTo(-1));
        }
 void LoadTracks()
 {
     mxml = MusicXmlParser.GetScore(file_txt.Text);
     track_cbx.Items.Clear();
     foreach (var part in mxml.Parts)
     {
         track_cbx.Items.Add(part.Name);
     }
     track_cbx.SelectedIndex = 0;
     track_cbx.IsEnabled     = true;
 }
        public void Is_chord_tone_true_for_note_with_chord_tag()
        {
            const int knownChordToneIndex = 1;
            const int knownPartWithChord  = 1;

            var score = MusicXmlParser.GetScore("TestData/MusicXmlWithChords.xml");

            var part    = score.Parts[knownPartWithChord];
            var measure = part.Measures[0];
            var note    = measure.MeasureElements[knownChordToneIndex].Element as Note;

            Assert.That(note.IsChordTone, Is.True);
        }
 /// <summary>
 /// 读取XML文件
 /// </summary>
 /// <param name="file"></param>
 private void LoadXMLFile(string file)
 {
     score = MusicXmlParser.GetScore(Resources.Load <TextAsset>(file));
     PartDevideIndex.Clear();
     PartDevideIndex.Add(0);
     foreach (var measure in score.Parts[0].Measures)
     {
         if (measure.Attributes?.BarLine == "light-light")
         {
             PartDevideIndex.Add(measure.Number);
         }
     }
 }
 public void SetUp()
 {
     _scoreWithStaffValues = MusicXmlParser.GetScore("TestData/MusicXmlWithStaffValues.xml");
 }
Exemple #9
0
        public void insertNewPartitureXml(string path, string login, int originalVersionId)
        {
            MusicXmlParser parser    = new MusicXmlParser();
            Score          newScore  = parser.GetScore(path);
            partiture      partiture = new partiture
            {
                pk_partiture_id = partituresTable.Count() + 1,
                work_number     = newScore.MovementNumber.ToString(),
                title           = newScore.MovementTitle,
                tempo           = newScore.Parts.FirstOrDefault <Part>().Measures.FirstOrDefault <Measure>().Attributes.Divisions.ToString(),
                meter           = newScore.Parts.FirstOrDefault <Part>().Measures.FirstOrDefault <Measure>().Attributes.Time.Beats.ToString() + "/" + newScore.Parts.FirstOrDefault <Part>().Measures.FirstOrDefault <Measure>().Attributes.Time.Mode,
                note_length     = "1/4",
                part_key        = keyFromFifths(newScore.Parts.FirstOrDefault <Part>().Measures.FirstOrDefault().Attributes.Key.Fifths),
                filepath        = path
            };

            if (originalVersionId == 0)
            {
                partiture.version_of = partituresTable.Count() + 1;
            }
            else
            {
                partiture.version_of = originalVersionId;
            }

            creators creators = new creators();

            creators.pk_creators_id = creatorsTable.Count() + 1;
            creators.composer       = newScore.Identification.Composer;
            creators.poet           = (newScore.Identification.Poet != string.Empty) ? newScore.Identification.Poet : newScore.Identification.Lyricist;
            System.Diagnostics.Debug.Print(creators.composer + creators.poet);
            creators.authors_of = (partituresTable.Count() > 0) ? partituresTable.Count() + 1 : 1;

            if (newScore.Instrument != null)
            {
                if (newScore.Instrument.Name != string.Empty)
                {
                    instruments instrument = new instruments
                    {
                        pk_instrument_id = instrumentsTable.Count() + 1,
                        instrument_name  = newScore.Instrument.Name,
                        fk_part_in       = (partituresTable.Count() > 0) ? partituresTable.Count() + 1 : 1
                    };
                    instrumentsTable.InsertOnSubmit(instrument);
                }
            }
            else
            {
                instruments instrument = new instruments
                {
                    pk_instrument_id = instrumentsTable.Count() + 1,
                    instrument_name  = string.Empty,
                    fk_part_in       = (partituresTable.Count() > 0) ? partituresTable.Count() + 1 : 1
                };
                instrumentsTable.InsertOnSubmit(instrument);
            }

            software soft = new software
            {
                pk_software_id       = softwareTable.Count() + 1,
                software_name        = newScore.Identification.Encoding.Software,
                encoding_date        = newScore.Identification.Encoding.EncodingDate,
                fk_used_for_encoding = (partituresTable.Count() > 0) ? partituresTable.Count() + 1 : 1
            };

            addedby added = new addedby
            {
                id              = addedTable.Count() + 1,
                fk_user_id      = GetUserIdByLogin(login),
                fk_partiture_id = (partituresTable.Count() > 0) ? partituresTable.Count() + 1 : 1,
                added_on        = DateTime.Now
            };

            partituresTable.InsertOnSubmit(partiture);
            creatorsTable.InsertOnSubmit(creators);
            softwareTable.InsertOnSubmit(soft);
            addedTable.InsertOnSubmit(added);

            db.SubmitChanges();
        }