فهرست منبع

feat: 带有rit的xml,小节数从0开始时,异常处理

TIANYONG 2 ماه پیش
والد
کامیت
5975602d5c
4فایلهای تغییر یافته به همراه5 افزوده شده و 2 حذف شده
  1. 1 1
      osmd-extended
  2. 1 0
      src/helpers/formateMusic.ts
  3. 1 1
      src/helpers/metronome.ts
  4. 2 0
      src/state.ts

+ 1 - 1
osmd-extended

@@ -1 +1 @@
-Subproject commit d38f84a71bd007582ff14d17c5cb247c3978dc9a
+Subproject commit a1f9b727a2113640a053b1faf8b30cc72fb38d33

+ 1 - 0
src/helpers/formateMusic.ts

@@ -661,6 +661,7 @@ export const formatXML = (xml: string, xmlUrl?: string): string => {
 	}
 
 	const measures = Array.from(xmlParse.getElementsByTagName("measure"));
+	state.firstMeasureNumber = measures[0] ? Number(measures[0].getAttribute('number') || 1) : 1;
 	const minutes: any = xmlParse.getElementsByTagName("per-minute");
 	let speeds: any = []
 	for (const minute of minutes) {

+ 1 - 1
src/helpers/metronome.ts

@@ -281,7 +281,7 @@ class Metronome {
 			// console.log("🚀 ~ note?.noteElement?.sourceMeasure", note?.noteElement?.sourceMeasure)
 			// console.log("🚀 ~ measureNumberXML", measureNumberXML, note)
 			// console.log("🚀 ~ measureNumberXML", note)
-			const measureListIndex = measureNumberXML - 1;
+			const measureListIndex = state.firstMeasureNumber == 0 ? measureNumberXML : measureNumberXML - 1;
 			// 当渐快渐慢的时候  不播节拍器
 			if(isWithinRange(state.gradual, measureListIndex)){
 				xmlNumber = measureNumberXML;

+ 2 - 0
src/state.ts

@@ -584,6 +584,8 @@ const state = reactive({
   instrumentId: null,
   /** 作业是否达标 */
   isWorkDone: false,
+  /** xml的第一个measure标签的number */
+  firstMeasureNumber: 1,
 });
 const browserInfo = browser();
 let offset_duration = 0;