liushengqiang 1 年之前
父节点
当前提交
4a2bcbb753

+ 6 - 1
osmd-extended/src/MusicalScore/Graphical/JustifiedMusicSystemBuilder.ts

@@ -195,8 +195,13 @@ export class JustifiedMusicSystemBuilder extends MusicSystemBuilder {
             systemsMeasureCount.push(currentSystemMeasureCount);
             totalNum.push(row)
             totalNum = totalNum.filter(Boolean)
-            console.log(totalNum, systemsMeasureCount)
         }
+        // 如果最后一行小节数小于1,重新计算最后一样
+        if (totalNum.length > 1 && totalNum[totalNum.length - 1] === 1) {
+            totalNum[totalNum.length - 2] = totalNum[totalNum.length - 2] - 1
+            totalNum[totalNum.length - 1] = totalNum[totalNum.length - 1] + 1
+        }
+        console.log(totalNum, systemsMeasureCount)
         return this.buildPreparedMusicSystems(totalNum);
         // if ((window as any).appName && (window as any).appName.toLocaleUpperCase() === 'GYM') {
         // } else {

+ 10 - 5
osmd-extended/src/MusicalScore/Graphical/MusicSheetDrawer.ts

@@ -272,11 +272,16 @@ export abstract class MusicSheetDrawer {
             calcResults.ScreenPosition.y = (graphicalLabel.PositionAndShape.Parent.AbsolutePosition.y - 1 + graphicalLabel.PositionAndShape.Parent.BorderBottom ) * 10
         }
         // 修改 部分文字需要识别为表情符号
-        const expressionList = ['ffp', 'p-f', 'sfzp', 'szf']
-        if (expressionList.includes(label.text)){
-            label.fontStyle = 3
-            if (label.text === 'sfzp'){
-                label.fontHeight = 2.3
+        const expressionList = ['ffp', 'p-f', 'sfzp', 'szf', 'sffzp']
+        for(let expressionIndex = 0; expressionIndex < expressionList.length; expressionIndex++){
+            const expression = expressionList[expressionIndex].replace(/ /g, '')
+            const _labelText = label.text.replace(/ /g, '')
+            if (_labelText.toLocaleLowerCase() === expression.toLocaleLowerCase() || _labelText.includes(expression)){
+                label.fontStyle = 3
+                if (label.text === 'sfzp'){
+                    label.fontHeight = 2.3
+                }
+                break;
             }
         }
 

+ 3 - 4
osmd-extended/src/MusicalScore/Graphical/VexFlow/VexFlowConverter.ts

@@ -536,11 +536,10 @@ export class VexFlowConverter {
         }
 
         // 修改 打击乐多声部,双声部休止符重叠
-        const measureNumberXML = gve.notes[0].sourceNote.SourceMeasure.MeasureNumberXML
-        const drumSetMeasures = (window as any).GYM?.drumSetMeasures || []
-        if (drumSetMeasures.includes(measureNumberXML)) {
+        const isDrumset = (window as any).GYM?.isDrumset
+        if (isDrumset) {
             if (gve.notes[0].sourceNote.isRest()) {
-                if(gve.notes[0].sourceNote.ParentVoiceEntry.ParentVoice.VoiceId == 1){
+                if(gve.notes[0].sourceNote.ParentStaffEntry?.VoiceEntries?.length > 1 && gve.notes[0].sourceNote.ParentVoiceEntry.ParentVoice.VoiceId == 1){
                     vfnote.getKeyProps()[0].line = 4.5;
                 }
             }