【问题标题】:Processing - Building Visual Metronome - Drummer craving some code处理 - 构建视觉节拍器 - 渴望一些代码的鼓手
【发布时间】:2021-12-27 17:36:33
【问题描述】:

我是 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

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

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

如果有任何帮助,我将不胜感激,

最好, SHB

【问题讨论】:

    标签: audio random time processing metronome


    【解决方案1】:

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

    【讨论】:

    • 非常感谢@apodidae!这非常有效。现在只需要添加一个音频:)漂亮!
    • 如果您觉得它有帮助并回答了您的问题,请您将其作为答案进行检查。谢谢,祝你的项目好运。
    • 完成!!!非常感谢!
    • 我不知道现在问你这个是否为时不晚,但你知道如何让右边的角色灰色fill(150),而左边的那个黑色fill(0)?
    • 遍历一个字符串并使用 charAt() 为每个字符着色。请发布另一个问题,因为这不是原始问题的一部分。
    猜你喜欢
    • 2018-12-26
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    相关资源
    最近更新 更多