处理 - 构建视觉节拍器 - 渴望一些代码的鼓手

Processing - Building Visual Metronome - Drummer craving some code

我是 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{processing} 人,

最好的, SHB

以下演示展示了如何将两个随机字符串数组元素连接成两个字母文本,始终将新元素添加到右侧。编辑器 '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;
}