Преглед изворни кода

Merge branch 'dev_audio_20221013'

liujunchi пре 2 година
родитељ
комит
f0bf321433

+ 9 - 1
audio-analysis/src/main/java/com/yonge/netty/dto/UserChannelContext.java

@@ -677,7 +677,15 @@ public class UserChannelContext {
 		
 		double correctedStartTime = queryFirstNoteStartTime(chunkAnalysisList, musicXmlNote, floatingRange);
 		double correctedEndTime = correctedStartTime + musicXmlNote.getDuration();
-		
+
+		// 颤音频率只要有一个符合 就符合
+		if (musicXmlNote.isOrnament()) {
+			for (ChunkAnalysis chunkAnalysis : chunkAnalysisList) {
+				if (Double.valueOf(chunkAnalysis.getFrequency()).intValue() == Float.valueOf(musicXmlNote.getFrequency()).intValue()) {
+					return Float.valueOf(musicXmlNote.getFrequency()).intValue();
+				}
+			}
+		}
 		//重新计算延迟
 		dynamicOffset = correctedStartTime - musicXmlNote.getTimeStamp();
 		dynamicOffset = dynamicOffset < 0 ? 0 : dynamicOffset;

+ 11 - 0
audio-analysis/src/main/java/com/yonge/netty/entity/MusicXmlBasicInfo.java

@@ -42,10 +42,21 @@ public class MusicXmlBasicInfo {
 	
 	private Integer reactionTimeMs;//用户设置的反应时间(毫秒)
 
+	// 是否颤音
+	private boolean isOrnament;
+
 	private List<MusicXmlNote> musicXmlInfos = new ArrayList<MusicXmlNote>();
 
 	private Map<Integer, MusicXmlSection> musicXmlSectionMap = new HashMap<Integer, MusicXmlSection>();
 
+	public boolean isOrnament() {
+		return isOrnament;
+	}
+
+	public void setOrnament(boolean ornament) {
+		isOrnament = ornament;
+	}
+
 	public String getCustomConfiguration() {
 		return customConfiguration;
 	}

+ 10 - 0
audio-analysis/src/main/java/com/yonge/netty/entity/MusicXmlNote.java

@@ -33,6 +33,16 @@ public class MusicXmlNote {
 	private int denominator;
 	
 	private int measureRenderIndex;
+	// 是否颤音
+	private boolean isOrnament;
+
+	public boolean isOrnament() {
+		return isOrnament;
+	}
+
+	public void setOrnament(boolean ornament) {
+		isOrnament = ornament;
+	}
 
 	public double getTimeStamp() {
 		return timeStamp;