|
@@ -839,9 +839,16 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|
|
|
let differFrom = 0;
|
|
|
// let testIdx = 0;
|
|
|
let repeatIdx = 0; // 循环的次数
|
|
|
+ const firstTrackName = state.canSelectTracks[0] || "";
|
|
|
while (!iterator.EndReached) {
|
|
|
// console.log({ ...iterator });
|
|
|
/** 多声轨合并显示,当前音符的时值取所有声轨中的最小值 */
|
|
|
+ if (state.isCombineRender) {
|
|
|
+ iterator.currentVoiceEntries = iterator.currentVoiceEntries.filter((item: any) => {
|
|
|
+ const trackName = state.isEvxml && state.evxmlAddPartName ? item.parentVoice.parent.IdString || '' : item.parentVoice.parent.Name || '';
|
|
|
+ return item.parentVoice.parent.IdString === firstTrackName
|
|
|
+ });
|
|
|
+ }
|
|
|
let minIndex = 0, elRealValue = 0
|
|
|
for (let index = 0; index < iterator.currentVoiceEntries.length; index++) {
|
|
|
const element = iterator.currentVoiceEntries[index];
|
|
@@ -856,8 +863,10 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|
|
|
}
|
|
|
elRealValue = element.notes[0].length.realValue
|
|
|
}
|
|
|
+ if (minIndex !== 0 && state.isCombineRender && iterator.currentVoiceEntries[minIndex]) {
|
|
|
+ iterator.currentVoiceEntries[minIndex].Notes[0].NoteToGraphicalNoteObjectId = iterator.currentVoiceEntries?.[0].Notes[0].NoteToGraphicalNoteObjectId;
|
|
|
+ }
|
|
|
const voiceEntries = iterator.currentVoiceEntries?.[minIndex] ? [iterator.currentVoiceEntries?.[minIndex]] : [];
|
|
|
-
|
|
|
let currentVoiceEntries: any[] = [];
|
|
|
// 多分轨,当前小节最大音符数量
|
|
|
let maxNoteNum = 0;
|
|
@@ -929,7 +938,8 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|
|
|
if (state.multitrack > 0 && currentTime > note.length.realValue) {
|
|
|
currentTime = note.length.realValue;
|
|
|
}
|
|
|
- note.maxNoteNum = maxNoteNum
|
|
|
+ note.maxNoteNum = maxNoteNum;
|
|
|
+ note.trackIndex = minIndex;
|
|
|
_notes.push({
|
|
|
note,
|
|
|
iterator: { ...iterator },
|
|
@@ -1268,6 +1278,7 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|
|
|
}
|
|
|
const filterRepeatIdx = allNotes.filter((item: any) => item.noteId === note.NoteToGraphicalNoteObjectId).length
|
|
|
const nodeDetail = {
|
|
|
+ trackIndex: note.trackIndex, // 当前的音符属于第几条分轨
|
|
|
isStaccato: note.voiceEntry.isStaccato(),
|
|
|
isRestFlag: note.isRestFlag,
|
|
|
noteId: note.NoteToGraphicalNoteObjectId,
|