Ver Fonte

Merge branch 'feature-tianyong-newVersion' into ktyq-online-new

TIANYONG há 4 meses atrás
pai
commit
19db177d41
3 ficheiros alterados com 11 adições e 4 exclusões
  1. 3 0
      .gitmodules
  2. 1 1
      osmd-extended
  3. 7 3
      src/helpers/formateMusic.ts

+ 3 - 0
.gitmodules

@@ -0,0 +1,3 @@
+[submodule "osmd-extended"]
+	path = osmd-extended
+	url = http://git.dayaedu.com/yonge/osdm.git

+ 1 - 1
osmd-extended

@@ -1 +1 @@
-Subproject commit c6d160d0fa9a3fb9f855730ae774df1044f2bc58
+Subproject commit 0eb177f216cead288330588bc281a2d60aa0bcfc

+ 7 - 3
src/helpers/formateMusic.ts

@@ -619,9 +619,11 @@ export const xmlAddPartName = (xml: string) => {
 	if (!xml) return "";
 	const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
 	const scoreParts = Array.from(xmlParse.getElementsByTagName("score-part"));
+	// 曲子:1795013313499971585,有两条声轨,声轨1有name,声轨2没有name,需要判断是否都没有name,才把evxmlAddPartName赋值为true
+	state.evxmlAddPartName = scoreParts.every(item => item.getElementsByTagName("part-name").length === 0);
 	for (const scorePart of scoreParts) {
 		if (scorePart.getElementsByTagName("part-name").length === 0) {
-			state.evxmlAddPartName = true;
+			// state.evxmlAddPartName = true;
 			const name = scorePart.getAttribute("id") || "";
 			const newPartName = `<part-name>${name}</part-name>`
 			// scorePart.prepend(newPartName);
@@ -1223,8 +1225,10 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
 				const staffEntries = note.sourceMeasure.verticalMeasureList?.[0]?.staffEntries || [];
 				//计算第一个小节里面的音符时值是否等于整个小节的时值
 				staffEntries.forEach((_a: any) => {
-					if (_a?.sourceStaffEntry?.voiceEntries?.[0]?.notes?.[0]?.length?.realValue) {
-						_firstMeasureRealValue += _a.sourceStaffEntry.voiceEntries[0].notes[0].length.realValue;
+					// 需要过滤掉倚音音符
+					const matchNote = _a?.sourceStaffEntry?.voiceEntries?.length > 1 ? _a?.sourceStaffEntry?.voiceEntries.find((item: any) => !item.isGrace) : _a?.sourceStaffEntry?.voiceEntries?.[0]
+					if (matchNote?.notes?.[0]?.length?.realValue) {
+						_firstMeasureRealValue += matchNote.notes[0].length.realValue;
 					}
 				});
 				if (_firstMeasureRealValue < vRealValue) {