是否可以使用整数变量/整数数组变量作为jFugue中的注释

时间:2015-01-02 10:46:55

标签: java arrays jfugue

我尝试使用jFugue在netBeans中创建算法音乐,并且有一个整数数组,其中包含来自c大调的一个八度音阶的音符:

String scaleNotesC[] = {"[60]", "[62]", "[64]", "[65]", "[67]", "[69]", "[71]", "[72]"};  

当我运行下面的代码试图让它发挥时,C没有任何反应。

Player playerOne = new Player();  
playerOne.play("scaleNotesC[0]");  

我尝试过使用整数数组,但这也没有用。
有没有办法让jFugue从数组中的一个集合中播放随机音符? 编辑:
我将上面的播放器代码更改为此尝试从阵列中播放多个音符,但它无法正常工作

playerOne.play(scaleNotesC[2] scaleNotesC[3] scaleNotesC[2]);

1 个答案:

答案 0 :(得分:1)

在你的第一个例子中,

playerOne.play("scaleNotesC[0]");

您正在尝试将Java表达式作为字符串传递。但是,字符串本身不会被评估为Java表达式。相反,JFugue试图将“scaleNotesC [0]”本身解析为音乐字符串,但它不是,所以你听不到音乐。如果删除引号,Java会将scaleNotesC [0]评估为“[60]”,JFugue将成功解析“[60]”作为Middle-C并播放它。

您当前使用的JFugue版本没有play()方法,该方法将字符串列表作为参数(即将发布的版本将具有此功能)。我可以建议:

Pattern pattern = new Pattern();
pattern.add(scaleNotesC[2], scaleNotesC[3], scaleNotesC[2]);
Player playerOne = new Player();
playerOne.play(pattern);