我正在用JFugue 5.0做一个项目,我试过了4.0,但是5.0似乎比他以前的兄弟更流畅。无论如何,我有关于JFugue v4的完整指南,这些是用于引用不同打击乐器的字符串
现在,当我试图运行我的代码时,我会得到以下错误:
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: JFugue NoteSubparser: Could not find 'HIGH_TOM' in dictionary.这是我使用的自定义节奏图:
kitPercusion = new HashMap<>();
kitPercusion.put('O', "[ACOUSTIC_BASS_DRUM]i");
kitPercusion.put('S', "[ACOUSTIC_SNARE]i");
kitPercusion.put('`', "[CLOSED_HI_HAT]s Rs");
kitPercusion.put('^', "[OPEN_HI_HAT]i");
kitPercusion.put('R', "[RIDE_CYMBAL_1]s Rs");
kitPercusion.put('C', "[CRASH_CYMBAL_1]s Rs");
kitPercusion.put('T', "[HIGH_TOM]s Rs");
kitPercusion.put('-', "[HI_MID_TOM]s Rs");
kitPercusion.put('_', "[LOW_FLOOR_TOM]s Rs");
kitPercusion.put('~', "[COWBELL]i");
kitPercusion.put('.', "Ri");在官方网站的例子中,我看到这些名字被“简化”了,比如“吉他”,“钢琴”等等。
有什么方法可以用有效的工具字串得到字典吗?
编辑:我已经尝试过了,但是它打印了一个空地图
Player player = new Player();
StaccatoParser sp = player.getStaccatoParser();
StaccatoParserContext spc = new StaccatoParserContext(sp);
System.out.println(spc.getDictionary());发布于 2016-06-08 12:53:48
打击乐器的名称保存在静态String[] Note.PERCUSSION_NAMES中。
HI_TOM是你要找的东西。在JFugue 5中,所有以前命名为HIGH_X或LOW_X的打击乐器都被简化为HI_X或LO_X。
(您也可能对乐器名称感兴趣,这与打击乐名称不同。打击乐名称只是用于在第10声道(V9)中演奏的音符值的替代名称,MIDI为打击乐器保留了这些音符(这就是为什么MIDI钢琴在几个音符上有打击乐器符号的原因);乐器名称是用于实际乐器补丁的。你可以在MidiDictionary.INSTRUMENT_BYTE_TO_STRING和MidiDictionary.INSTRUMENT_STRING_TO_BYTE中找到这些。)
https://stackoverflow.com/questions/37683934
复制相似问题