Browse Source

fix: 转简谱基准时值逻辑修改

TIANYONG 1 week ago
parent
commit
71705518f8
1 changed files with 3 additions and 1 deletions
  1. 3 1
      src/helpers/formateMusic.ts

+ 3 - 1
src/helpers/formateMusic.ts

@@ -756,6 +756,7 @@ export const formatXML = (xml: string, xmlUrl?: string, resourceType?: string):
 	// 前面小节的拍子
 	let preBeats: number = 4;
 	let preBeatType: number = 4;
+	let baseDivisions: number = 256;
 	// 小节中如果没有节点默认为休止符
 	for (const measure of measures) {
 		if (beats === -1 && measure.getElementsByTagName("beats").length) {
@@ -772,7 +773,8 @@ export const formatXML = (xml: string, xmlUrl?: string, resourceType?: string):
 		const currentBeatType = measure.getElementsByTagName("beat-type").length ? measure.getElementsByTagName("beat-type")[0]?.textContent : preBeatType;
 		preBeats = Number(currentBeats);
 		preBeatType = Number(currentBeatType);
-		const divisions = parseInt(measure.getElementsByTagName("divisions")[0]?.textContent || "256");
+		const divisions = parseInt(measure.getElementsByTagName("divisions")[0]?.textContent || String(baseDivisions));
+		baseDivisions = divisions
 		// 如果note节点里面有space节点,并且没有duration节点,代表这是一个空白节点,需要删除
 		if (measure.getElementsByTagName("note").length && state.isEvxml) {
 			const noteList = Array.from(measure.getElementsByTagName("note")) || [];