首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jfugue转换密钥--关于Jfugue的几个问题

使用jfugue转换密钥--关于Jfugue的几个问题
EN

Stack Overflow用户
提问于 2015-03-17 09:43:15
回答 1查看 362关注 0票数 1

我有几个关于JFugue (5,测试版)的问题。

  • 从完整的指南到JFugue,我们会提到,根据模式中的密钥签名,JFugue解释注释值。例如,在F-主键的情况下,B将自动转换为B-平面,除非我们用"Bn“代替。问题是,如果我们处理一个F主键并写出"Bb“,JFugue将如何解释它?是"Bbb“还是"Bb”?
  • 我的第二个问题是关于在JFugue中转换密钥。 最快的方法是什么?

谢谢你的帮助,

诚挚的问候,

侯赛因·哈穆德。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-28 00:52:48

回答你问题的第一部分:在F-大调的键中,Bb和Bb一样,在F-大调中与B本身一样。下面是一个测试这个的程序:

代码语言:javascript
复制
StaccatoParser parser = new StaccatoParser();
DiagnosticParserListener dpl = new DiagnosticParserListener();
parser.addParserListener(dpl);
Pattern pattern = new Pattern("KEY:Cmaj B Bn Bb   KEY:FMaj B Bn Bb");
parser.parse(pattern);

及其输出(注意,MIDI Note 70为Bb,MIDI Note 71为B):

代码语言:javascript
复制
Before parsing starts
Key signature parsed: key = 0  scale = 1
Note parsed: value = 71  duration = 0.25  onVelocity = 64  offVelocity = 64
Note parsed: value = 71  duration = 0.25  onVelocity = 64  offVelocity = 64
Note parsed: value = 70  duration = 0.25  onVelocity = 64  offVelocity = 64
Key signature parsed: key = 5  scale = 1
Note parsed: value = 70  duration = 0.25  onVelocity = 64  offVelocity = 64
Note parsed: value = 71  duration = 0.25  onVelocity = 64  offVelocity = 64
Note parsed: value = 70  duration = 0.25  onVelocity = 64  offVelocity = 64
After parsing finished

回答你问题的第二部分:我不确定现在是否有一个像样的答案。但是,您激励我在transpose()类上编写了一个Pattern方法。谢谢!

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

https://stackoverflow.com/questions/29095780

复制
相关文章

相似问题

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