瀏覽代碼

颤音判断

liujunchi 2 年之前
父節點
當前提交
b1e8065593

+ 5 - 4
audio-analysis/src/main/java/com/yonge/netty/dto/UserChannelContext.java

@@ -679,12 +679,13 @@ public class UserChannelContext {
 		double correctedEndTime = correctedStartTime + musicXmlNote.getDuration();
 
 		// 颤音频率只要有一个符合 就符合
-		for (ChunkAnalysis chunkAnalysis : chunkAnalysisList) {
-			if (Double.valueOf(chunkAnalysis.getFrequency()).intValue() == Float.valueOf(musicXmlNote.getFrequency()).intValue()) {
-				return Float.valueOf(musicXmlNote.getFrequency()).intValue();
+		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;

+ 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;