123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package com.yonge.netty.dto;
- import com.ym.mec.common.enums.BaseEnum;
- public enum HardLevelEnum implements BaseEnum<String, HardLevelEnum> {
- /**
- * 入门级, 振幅阈值, 频率阈值 <br>
- * 节奏有效范围(1分音符), 节奏有效范围(2分音符), 节奏有效范围(4分音符), 节奏有效范围(8分音符), 节奏有效范围(16分音符), 节奏有效范围(32分音符)<br>
- * 完成度范围, 未演奏的范围
- */
- //BEGINNER("入门级", 3, 5, 5, 5, 10, 10, 13, 15, 60, 10),
- BEGINNER("入门级", 3, 5, 10, 10, 15, 15, 22, 22, 75, 25),
- /**
- * 进阶级, 振幅阈值, 频率阈值 <br>
- * 节奏有效范围(1分音符), 节奏有效范围(2分音符), 节奏有效范围(4分音符), 节奏有效范围(8分音符), 节奏有效范围(16分音符), 节奏有效范围(32分音符)<br>
- * 完成度范围, 未演奏的范围
- */
- ADVANCED("进阶级", 3, 5, 8, 8, 12, 12, 20, 20, 85, 15),
- //ADVANCED("进阶级", 3, 5, 50, 50, 50, 50, 50, 5, 80, 10),
- /**
- * 大师级, 振幅阈值, 频率阈值 <br>
- * 节奏有效范围(1分音符), 节奏有效范围(2分音符), 节奏有效范围(4分音符), 节奏有效范围(8分音符), 节奏有效范围(16分音符), 节奏有效范围(32分音符)<br>
- * 完成度范围, 未演奏的范围
- */
- PERFORMER("大师级", 3, 3, 5, 5, 10, 10, 13, 15, 95, 10);
- private String msg;
- private int amplitudeThreshold;
- private int frequencyThreshold;
- private int tempoEffectiveRangeOf1;
- private int tempoEffectiveRangeOf2;
- private int tempoEffectiveRangeOf4;
- private int tempoEffectiveRangeOf8;
- private int tempoEffectiveRangeOf16;
- private int tempoEffectiveRangeOf32;
- private int integrityRange;
- private int notPlayRange;
- /**
- *
- * @param msg
- * @param amplitudeThreshold 振幅阈值
- * @param frequencyThreshold 频率阈值
- * @param tempoEffectiveRangeOf1 节奏偏移量百分比(在当前范围内节奏才算正确)
- * @param tempoEffectiveRangeOf2 节奏偏移量百分比(在当前范围内节奏才算正确)
- * @param tempoEffectiveRangeOf4 节奏偏移量百分比(在当前范围内节奏才算正确)
- * @param tempoEffectiveRangeOf8 节奏偏移量百分比(在当前范围内节奏才算正确)
- * @param tempoEffectiveRangeOf16 节奏偏移量百分比(在当前范围内节奏才算正确)
- * @param tempoEffectiveRangeOf32 节奏偏移量百分比(在当前范围内节奏才算正确)
- * @param integrityRange 完成度范围
- * @param notPlayRange 未演奏的范围
- */
- HardLevelEnum(String msg, int amplitudeThreshold, int frequencyThreshold, int tempoEffectiveRangeOf1, int tempoEffectiveRangeOf2,
- int tempoEffectiveRangeOf4, int tempoEffectiveRangeOf8, int tempoEffectiveRangeOf16, int tempoEffectiveRangeOf32, int integrityRange,
- int notPlayRange) {
- this.msg = msg;
- this.amplitudeThreshold = amplitudeThreshold;
- this.frequencyThreshold = frequencyThreshold;
- this.tempoEffectiveRangeOf1 = tempoEffectiveRangeOf1;
- this.tempoEffectiveRangeOf2 = tempoEffectiveRangeOf2;
- this.tempoEffectiveRangeOf4 = tempoEffectiveRangeOf4;
- this.tempoEffectiveRangeOf8 = tempoEffectiveRangeOf8;
- this.tempoEffectiveRangeOf16 = tempoEffectiveRangeOf16;
- this.tempoEffectiveRangeOf32 = tempoEffectiveRangeOf32;
- this.integrityRange = integrityRange;
- this.notPlayRange = notPlayRange;
- }
- public String getMsg() {
- return msg;
- }
- public int getAmplitudeThreshold() {
- return amplitudeThreshold;
- }
- public int getFrequencyThreshold() {
- return frequencyThreshold;
- }
- public int getTempoEffectiveRange(int denominator) {
-
- int tempoEffectiveRange = 0;
-
- switch (denominator) {
- case 1:
- tempoEffectiveRange = tempoEffectiveRangeOf1;
- break;
- case 2:
- tempoEffectiveRange = tempoEffectiveRangeOf2;
- break;
- case 4:
- tempoEffectiveRange = tempoEffectiveRangeOf4;
- break;
- case 8:
- tempoEffectiveRange = tempoEffectiveRangeOf8;
- break;
- case 16:
- tempoEffectiveRange = tempoEffectiveRangeOf16;
- break;
- case 32:
- tempoEffectiveRange = tempoEffectiveRangeOf32;
- break;
- default:
- break;
- }
- return tempoEffectiveRange;
- }
- public int getIntegrityRange() {
- return integrityRange;
- }
- public int getNotPlayRange() {
- return notPlayRange;
- }
- @Override
- public String getCode() {
- return this.name();
- }
- }
|