skyblued 2 lat temu
rodzic
commit
26017472e6

+ 16 - 11
src/pages/detail/helpers.ts

@@ -449,19 +449,24 @@ export const getAllNodes = (osmd: any) => {
           // console.log(iterator.currentMeasure)
           // 如果是弱起就补齐缺省的时长
           if (i === 0) {
-            const diff = getMeasureDurationDiff(iterator.currentMeasure)
-            // console.log('diff', diff)
-            // 酷乐秀 不处理弱起
-            if (diff > 0) {
-              difftime = diff * vDenominator * (60 / beatSpeed)
-              /** 如果是酷乐秀MIDI类型文件就不处理弱起 */
-              if (state.activeDetail?.audioType === 'MIDI') {
-                difftime = 0
+            let _firstMeasureRealValue = 0
+            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
               }
-              // console.log('difftime', difftime, state.activeDetail?.audioType)
-              fixtime += difftime
-              // console.log('diff', speed, diff * vDenominator * (60 / speed), getFixTime(speed))
+            })
+            if (_firstMeasureRealValue < vRealValue){
+              // console.log(_firstMeasureRealValue, vRealValue)
+              // 如果是弱起,将整个小节的时值减去音符的时值,就是缺省的时值
+              difftime = measureLength - noteLength
+            }
+            /** 如果是酷乐秀MIDI类型文件就不处理弱起 */
+            if (state.activeDetail?.audioType === 'MIDI') {
+              difftime = 0
             }
+            fixtime += difftime
           }
           const nodeDetail = {
             fixtime,

+ 1 - 2
src/pages/detail/runtime.ts

@@ -61,11 +61,10 @@ export const getFixTime = (speed: number) => {
     // 音频制作问题仅2拍不重复
     numerator = numerator === 2 ? 4 : numerator
   }
-  // 音频制作问题仅2拍不重复
-  // numerator = numerator === 2 ? 4 : numerator
   //酷乐秀计算方法
   // const time = !detailState.needTick && !detailState.skipTick ? ((denominator * 60) / speed / denominator) * numerator : 0
   // 管乐迷计算方法
+  // console.log('diff', speed, duration, formatBeatUnit(beatUnit), denominator, numerator, (numerator / denominator))
   const time = !detailState.needTick && !detailState.skipTick ? (60 / speed * formatBeatUnit(beatUnit)) * (numerator / denominator) : 0
   // console.log({duration, t:(60 / speed * formatBeatUnit(beatUnit)) * (numerator / denominator), time, numerator,denominator, "duration.numerator": duration.numerator})
   return time

+ 1 - 1
src/pages/detail/state.ts

@@ -41,7 +41,7 @@ const state = reactive({
   /** 跳过节拍器 */
   skipTick: false,
   /** 重复节拍 */
-  repeatedBeats: true,
+  repeatedBeats: false,
   sectionFlash: false,
   befireSection: null as any,
   /* 是否是打击乐 */

+ 1 - 1
src/subpages/colexiu/uses/use-app.ts

@@ -78,7 +78,7 @@ export const useMp3s = async (detail: MusicSheelDetail) => {
 
   let defaultExtConfigJson = {
     skipTick: false,
-    repeatedBeats: true,
+    repeatedBeats: false,
     scoreSize: 'middle',
   }
   let extConfigJson = {}