首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JFugue 5.0中获取仪器字典

如何在JFugue 5.0中获取仪器字典
EN

Stack Overflow用户
提问于 2016-06-07 15:49:19
回答 1查看 708关注 0票数 2

我正在用JFugue 5.0做一个项目,我试过了4.0,但是5.0似乎比他以前的兄弟更流畅。无论如何,我有关于JFugue v4的完整指南,这些是用于引用不同打击乐器的字符串

现在,当我试图运行我的代码时,我会得到以下错误:

代码语言:javascript
复制
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: JFugue NoteSubparser: Could not find 'HIGH_TOM' in dictionary.

这是我使用的自定义节奏图:

代码语言:javascript
复制
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");

在官方网站的例子中,我看到这些名字被“简化”了,比如“吉他”,“钢琴”等等。

有什么方法可以用有效的工具字串得到字典吗?

编辑:我已经尝试过了,但是它打印了一个空地图

代码语言:javascript
复制
    Player player = new Player();
    StaccatoParser sp = player.getStaccatoParser();
    StaccatoParserContext spc = new StaccatoParserContext(sp);
    System.out.println(spc.getDictionary());
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-08 12:53:48

打击乐器的名称保存在静态String[] Note.PERCUSSION_NAMES中。

HI_TOM是你要找的东西。在JFugue 5中,所有以前命名为HIGH_XLOW_X的打击乐器都被简化为HI_XLO_X

(您也可能对乐器名称感兴趣,这与打击乐名称不同。打击乐名称只是用于在第10声道(V9)中演奏的音符值的替代名称,MIDI为打击乐器保留了这些音符(这就是为什么MIDI钢琴在几个音符上有打击乐器符号的原因);乐器名称是用于实际乐器补丁的。你可以在MidiDictionary.INSTRUMENT_BYTE_TO_STRINGMidiDictionary.INSTRUMENT_STRING_TO_BYTE中找到这些。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37683934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档