是否可以在 jFugue 中使用整数 variables/integer 数组变量作为注释
Is it possible to use integer variables/integer array variables as notes in 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]);
在你的第一个例子中,
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);
我正在尝试使用 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]);
在你的第一个例子中,
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);