public ScorePartwisePartMeasureBuilder AddBaseAttributes(AttributesMusicXML attributes) { measure.AppendNewItem(attributes); return(this); }
private void AttributesChanged(AttributesMusicXML attributes, int cursorPosition, string measureNumber, bool firstMeasure = false) { ClefChanges clefs = new ClefChanges(); KeyChanges keys = new KeyChanges(); TimeChanges times = new TimeChanges(); //! search for clefs if (attributes.Clef.Count == 0 && firstMeasure) { for (var i = 1; i <= _numberOfStaves; i++) { clefs.Add(i.ToString(), cursorPosition, new ClefMusicXML() { Sign = ClefSignMusicXML.G, Line = 2.ToString() }); } } else { for (var i = 0; i < attributes.Clef.Count; i++) { clefs.Add(attributes.Clef[i].Number, cursorPosition, attributes.Clef[i]); } } //! search for key signatures if (attributes.Key.Count == 0 && firstMeasure) { for (int i = 1; i <= _numberOfStaves; i++) { keys.Add(i.ToString(), cursorPosition, new KeyMusicXML { Items = new object[] { 0.ToString() }, ItemsElementName = new[] { KeyChoiceTypes.fifths } }); } } else { for (int i = 0; i < attributes.Key.Count; i++) { keys.Add(attributes.Key[i].Number, cursorPosition, attributes.Key[i]); } } //! search for time signatures if (attributes.Time.Count == 0 && firstMeasure) { for (int i = 1; i <= _numberOfStaves; i++) { times.Add(i.ToString(), cursorPosition, new TimeMusicXML { Items = new object[] { "4", "4" }, ItemsElementName = new[] { TimeChoiceTypeMusicXML.beats, TimeChoiceTypeMusicXML.beattype } }); } } else { for (int i = 0; i < attributes.Time.Count; i++) { times.Add(attributes.Time[i].Number, cursorPosition, attributes.Time[i]); } } if (clefs.AttributeChanges.Count != 0) { _clefChanges.Add(measureNumber, clefs); } if (keys.AttributeChanges.Count != 0) { _keyChanges.Add(measureNumber, keys); } if (times.AttributeChanges.Count != 0) { _timeChanges.Add(measureNumber, times); } }