|
@@ -1123,6 +1123,7 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|
|
|
// 计算音符时值,使用转换成1/4的速度计算
|
|
|
beatSpeed = measuresTempoInBPM;
|
|
|
// let beatSpeed = measureSpeed || baseSpeed
|
|
|
+ beatSpeed = beatSpeed / state.originAudioPlayRate;
|
|
|
// 如果有节拍器,需要将节拍器的时间算出来
|
|
|
if (i === 0) {
|
|
|
if(state.isOpenMetronome){
|
|
@@ -1134,7 +1135,8 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|
|
|
// console.log("fixtime:", fixtime, '速度:', beatSpeed, "state.isSpecialBookCategory:", state.isSpecialBookCategory, 'state.isOpenMetronome:', state.isOpenMetronome);
|
|
|
}
|
|
|
let gradualLength = 0;
|
|
|
- let speed = (state.isSpecialBookCategory ? measureSpeed : baseSpeed) || 1;
|
|
|
+ // let speed = (state.isSpecialBookCategory ? measureSpeed : baseSpeed) || 1;
|
|
|
+ let speed = measureSpeed ? measureSpeed : baseSpeed;
|
|
|
gradualChange = iterator.currentMeasure.speedInfo || gradualChange;
|
|
|
gradualSpeed = osmd.Sheet.SoundTempos?.get(note.sourceMeasure.measureListIndex) || gradualSpeed;
|
|
|
if (!gradualSpeed || gradualSpeed.length < 2) {
|
|
@@ -1218,9 +1220,11 @@ 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) {
|
|
|
// console.log(_firstMeasureRealValue, vRealValue)
|