JFugue中是否存在可获取音乐字符串时长的对象?
问题解答
存在对应的工具类,你示例中用到的DurationMapper就是JFugue官方提供的时长计算工具,完全满足你的需求:
- JFugue 5.x 及以上版本内置的
DurationMapper类原生支持解析标准JFugue音乐字符串,直接返回对应总时长 - 要获取double类型的时长结果,可调用
getDoubleMSDuration()方法,返回值单位为节拍 - 要获取字符串格式的时长表述,可调用同类下的
getDurationString()方法
你给出的示例代码可直接运行,对应输入Aq Aq Bi Bi Ci Ci的计算逻辑也符合预期:
double musicStringDuration = new DurationMapper().getDoubleMSDuration("Aq Aq Bi Bi Ci Ci"); System.out.println(musicStringDuration); // 输出1.0
时长计算逻辑说明:后缀q代表四分音符,单音符时长0.25拍,2个合计0.5拍;后缀i代表八分音符,单音符时长0.125拍,4个合计0.5拍,总时长刚好为1.0拍。
内容的提问来源于stack exchange,提问作者BabaNew
相关产品推荐
相关产品推荐

