1

jFugue を使用して netBeans でアルゴリズム音楽を作成しようとしており、C メジャー スケールの 1 オクターブの音符を含む整数配列があります。

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]);
4

1 に答える 1

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);
于 2015-01-03T14:33:44.193 に答える