|  | @@ -897,6 +897,12 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
 | 
	
		
			
				|  |  |  				return trackName?.trim() === firstTrackName
 | 
	
		
			
				|  |  |  			});
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | +		// 多轨合并显示,或者单轨多声部的情况,需要过滤掉下半边声部的音符
 | 
	
		
			
				|  |  | +		if ( ((!state.isCombineRender && state.isSingleMutliTrack) || state.isCombineRender) && iterator.currentVoiceEntries.length) {
 | 
	
		
			
				|  |  | +			iterator.currentVoiceEntries = iterator.currentVoiceEntries.filter((item: any) => {
 | 
	
		
			
				|  |  | +				return item.ParentVoice.voiceId === 1
 | 
	
		
			
				|  |  | +			});
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  		let minIndex = 0, elRealValue = 0
 | 
	
		
			
				|  |  |  		for (let index = 0; index < iterator.currentVoiceEntries.length; index++) {
 | 
	
		
			
				|  |  |  			const element = iterator.currentVoiceEntries[index];
 | 
	
	
		
			
				|  | @@ -909,6 +915,7 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
 | 
	
		
			
				|  |  |  			if (element.notes[0].length.realValue < elRealValue) {
 | 
	
		
			
				|  |  |  				minIndex = index
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  | +			// console.log(element.notes[0].SourceMeasure.MeasureNumberXML,element.notes[0].playbackInstrumentId,element.ParentVoice.voiceId)
 | 
	
		
			
				|  |  |  			elRealValue = element.notes[0].length.realValue
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		if (minIndex !== 0 && state.isCombineRender && iterator.currentVoiceEntries[minIndex]) {
 | 
	
	
		
			
				|  | @@ -992,6 +999,7 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
 | 
	
		
			
				|  |  |  			const { beatUnit="quarter", dotted=false, tempoInBpm=state.originSpeed } = currentRealTempo
 | 
	
		
			
				|  |  |  			const speedBeatUnit = beatUnitTo(beatUnit, dotted)
 | 
	
		
			
				|  |  |  			_notes.push({
 | 
	
		
			
				|  |  | +				measureNum: note?.sourceMeasure?.MeasureNumberXML,
 | 
	
		
			
				|  |  |  				note,
 | 
	
		
			
				|  |  |  				iterator: { ...iterator },
 | 
	
		
			
				|  |  |  				currentTime,
 | 
	
	
		
			
				|  | @@ -1469,7 +1477,7 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
 | 
	
		
			
				|  |  |  			// console.log('👀看看endtime', nodeDetail.duration, relaEndtime, fixtime, i)
 | 
	
		
			
				|  |  |  			// console.log('音符时间',nodeDetail.i,nodeDetail.time,nodeDetail.endtime)
 | 
	
		
			
				|  |  |  			tickables = tickables.filter((tickable: any) => tickable.attrs?.type !== "GhostNote")
 | 
	
		
			
				|  |  | -			let maxNum = (state.isCombineRender && note.maxNoteNum) || state.isSingleMutliTrack ? note.maxNoteNum : tickables.length;
 | 
	
		
			
				|  |  | +			let maxNum = (state.isCombineRender && note.maxNoteNum)  ? note.maxNoteNum : tickables.length;
 | 
	
		
			
				|  |  |  			// 妙极客的曲子,一个休止小节内可能有多个休止符,此时maxNum是0,需要针对这种情况作处理
 | 
	
		
			
				|  |  |  			if (note.isRestFlag && maxNum === 0) {
 | 
	
		
			
				|  |  |  				maxNum = note.maxNoteNum;
 |