소스 검색

feat: 87拍指针位置修改

TIANYONG 6 달 전
부모
커밋
dd79874670
2개의 변경된 파일7개의 추가작업 그리고 36개의 파일을 삭제
  1. 1 1
      osmd-extended
  2. 6 35
      src/helpers/metronome.ts

+ 1 - 1
osmd-extended

@@ -1 +1 @@
-Subproject commit 03fa7c2e5b7ad0445360e69636a441ec4f8ea97a
+Subproject commit 31363bdaf7a29647b1561e1ac1d01d8be64d4b69

+ 6 - 35
src/helpers/metronome.ts

@@ -434,13 +434,13 @@ class Metronome {
 					if (j == 0) {
 						currentIdx = 0
 					} else {
-						beatNum += CompoundTempoArr[j];
+						beatNum += CompoundTempoArr[j-1];
 						currentIdx = beatNum
 					}
 					// 如果是87拍,并且是3+2+2的组合,第二拍的节拍指针需要定位到第四个音符的位置
-					if (measure.numerator === 7 && measure.denominator === 8 && measure.CompoundTempo === '3+2+2' && j === 1) {
-						currentIdx += 1;
-					}
+					// if (measure.numerator === 7 && measure.denominator === 8 && measure.CompoundTempo === '3+2+2' && j === 1) {
+					// 	currentIdx += 1;
+					// }
 					if (measure.stepList[currentIdx]) {
 						left = measure.stepList[currentIdx] + "px";
 					} else {
@@ -459,35 +459,6 @@ class Metronome {
 					});
 				}
 			}
-			// for (let i = 0; i < measures.length; i++) {
-			// 	const measure = measures[i];
-			// 	const noteStep = measure.time / measure.numerator;
-			// 	// console.log("🚀 ~ measure.measureNumberXML",measure.measureNumberXML, noteStep)
-			// 	const WIDTH = 100;
-			// 	const widthStep = WIDTH / (measure.numerator + 1);
-			// 	metroMeasure[i] = [] as number[];
-			// 	// console.log('stepList', [...measure.stepList], measure.measureNumberXML)
-			// 	for (let j = 0; j < measure.numerator; j++) {
-			// 		const time = noteStep * j + measure.start;
-			// 		metroList.push(time);
-			// 		let left = "";
-			// 		if (measure.stepList[j]) {
-			// 			left = measure.stepList[j] + "px";
-			// 		} else {
-			// 			const preLeft = measure.stepList[j - 1];
-			// 			left = !preLeft ? `${widthStep}%` : preLeft.toString().indexOf("%") > -1 ? `${preLeft} + ${widthStep}%` : `${preLeft}px + ${widthStep}%`;
-			// 			measure.stepList[j] = left;
-			// 		}
-			// 		metroMeasure[i].push({
-			// 			index: j,
-			// 			time,
-			// 			// left: (measure.stepList[j] ? measure.stepList[j] + 'px' : (j + 1) * widthStep + '%'),
-			// 			left: left?.indexOf("%") > -1 ? `calc(${left})` : left,
-			// 			measureNumberXML: measure.measureNumberXML,
-			// 			isRestFlag: measure.isRestFlag,
-			// 		});
-			// 	}
-			// }
 		} catch (error) {
 			console.log(error);
 		}
@@ -537,10 +508,10 @@ export function getBeatTypeArr(numerator?:number, denominator?:number, CompoundT
 			//7/8拍根据谱面的CompoundTempo来特殊处理
 			if(CompoundTempo==="2+2+3"){
 				loopArr = [-2/7, 2/7, 3/7]
-			}if(CompoundTempo==="2+3+2"){
+			}else if(CompoundTempo==="2+3+2"){
 				loopArr = [-2/7, 3/7, 2/7]
 			}else{
-				loopArr = [-3/7, 2/7, 3/7]
+				loopArr = [-3/7, 2/7, 2/7]
 			}
 			break;	
 		case "9/8":