0

我是 Processing 新手,正在尝试构建特定类型的节拍器(我是鼓手),这将使我能够创建一个随机字母生成器(从 A 到 X 的字符串 [或者它是一个数组?])从字符串中随机选择一个字符,然后继续随机生成这些字符,但也会显示先前选择的字符是什么。

我为每个字母分配了特定的鼓模式,所以我不想从 A 到 X,然后从 X 到 A 演奏它们,而是想进一步推动我的练习并随机演奏那个特定的字母。我显然可以尝试将它们全部写在纸上,或者找到其他更简单的方法来创建所有这些随机变化,但我为什么要让我的生活更轻松?:D

“节拍器”会从一个字符开始,比如“D”,然后例如 2 秒后,它会随机选择另一个字符,比如“X”等等。所以第一次运行会显示 D,然后是下一个 DX,下一个 XL 等。我已经弄清楚如何从该字符串生成一个字符,我知道这是非常基本的:

// Get a random element from an array<br>
String[] words = {"A","B","C","D","E","F","G","H","I","J","L","M","N","O","P","Q","R","S","T","U","V","W","X"};<br>
int index = int(random(words.length));  
println(words[index]);  // Prints one of the 24 letters words

所以,我的目标是能够改变特定“节拍”持续的时间。

最后,我想为每个新的变化分配一个声音,所以它听起来就像一个真正的节拍器。

我将不胜感激任何帮助P{处理}人,

最好的,SHB

4

1 回答 1

0

下面的演示展示了如何将两个随机字符串数组元素连接成两个字母文本,始终将新元素添加到右侧。编辑器“println()”的输出应该会告诉你正在做什么。通过增加 frameRate(); 可以更快地运行演示。

String[] words = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X"};
int newIndex = 0;
int oldIndex = -1;

void setup() {
  size(200, 200);
  background(219);
}

void draw() {
  frameRate(1);
  background(219);
  // Get a random element from array
  newIndex = int(random(words.length));
  fill(0);
  if (oldIndex > -1) {
    text(words[oldIndex] + words[newIndex], 60, 100);
    println("old =", words[oldIndex] + " : " +  "new =", words[newIndex] );
  } else {
    text(words[newIndex], 60, 100);
    println("new =", words[newIndex]);
  }
  oldIndex = newIndex;
}
于 2021-12-27T20:36:16.540 回答