|
@@ -850,6 +850,8 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|
|
|
|
|
|
let preNoteEndTime = 0; // 上一个音符的结束时间
|
|
|
|
|
|
+ let preNoteMeasureNumber = 0; // 上一个小节的number值
|
|
|
+
|
|
|
const _notes = [] as any[];
|
|
|
if (state.gradualTimes) {
|
|
|
console.log("后台设置的渐慢小节时间", state.gradual, state.gradualTimes);
|
|
@@ -1264,10 +1266,18 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|
|
|
multipleRestMeasures = 0;
|
|
|
}
|
|
|
if (multipleRestMeasures < totalMultipleRestMeasures) {
|
|
|
- multipleRestMeasures++;
|
|
|
+ if (note?.sourceMeasure?.MeasureNumberXML !== preNoteMeasureNumber) {
|
|
|
+ multipleRestMeasures++;
|
|
|
+ } else {
|
|
|
+ multipleRestMeasures = allNotes.length ? allNotes.last().multipleRestMeasures : 0;
|
|
|
+ }
|
|
|
} else {
|
|
|
- multipleRestMeasures = 0;
|
|
|
- totalMultipleRestMeasures = 0;
|
|
|
+ if (note?.sourceMeasure?.MeasureNumberXML !== preNoteMeasureNumber) {
|
|
|
+ multipleRestMeasures = 0;
|
|
|
+ totalMultipleRestMeasures = 0;
|
|
|
+ } else {
|
|
|
+ multipleRestMeasures = allNotes.length ? allNotes.last().multipleRestMeasures : 0;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// console.log(note.tie)
|
|
@@ -1394,7 +1404,7 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|
|
|
notBeatTime: state.isEvxml && evNoteStartTime ? retain(evNoteStartTime) : retain(relativeTime + (state.isOpenMetronome ? fixtime - xmlMp3BeatFixTime : fixtime)), // 不含节拍器的 音符开始时间
|
|
|
notBeatEndTime: state.isEvxml && evNoteEndTime ? retain(evNoteEndTime) : retain(relaEndtime + (state.isOpenMetronome ? fixtime - xmlMp3BeatFixTime : fixtime)) // 不含节拍器的 音符结束时间
|
|
|
};
|
|
|
- // console.log('当前的小节',nodeDetail.MeasureNumberXML,totalMultipleRestMeasures,multipleRestMeasures)
|
|
|
+ // console.log(i,'当前的小节',nodeDetail.MeasureNumberXML,totalMultipleRestMeasures,multipleRestMeasures)
|
|
|
// 如果是妙极客的曲子,并且第二遍循环播放需要等待时间,并且是第二遍循环的第一个小节的第一个音符
|
|
|
// if (state.isEvxml && state.secondEvXmlBeginTime && nodeDetail.i > 0 && nodeDetail.MeasureNumberXML === 1 && nodeDetail.noteId === 0) {
|
|
|
// nodeDetail.time = nodeDetail.time + state.secondEvXmlBeginTime;
|
|
@@ -1450,6 +1460,7 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|
|
|
}
|
|
|
preNoteEndTime = nodeDetail.endtime;
|
|
|
}
|
|
|
+ preNoteMeasureNumber = note?.sourceMeasure?.MeasureNumberXML;
|
|
|
i++;
|
|
|
}
|
|
|
// 按照时间轴排序
|