在处理中点击BPM代码 [英] Tap BPM code in Processing

查看:17
本文介绍了在处理中点击BPM代码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试开发一个程序,该程序可以帮助我通过单击或点击按钮来查找歌曲的每分钟节拍。

  • 我已经计算出,我需要一个动态数组来节省每次点击的时间(以毫秒为单位),每次都要在Arraylist的末尾添加一个新元素。

  • 添加一定数量的元素后,求出所有元素的总和,除以列表中的元素数量,即可得出BPM。

我不太熟悉Arraylist,不知道是否有人可以帮助我实现这些步骤。

我将对此程序使用处理。

推荐答案

类似的内容?

ArrayList <Integer> diffs = new ArrayList<Integer>();
int last, now, diff;

void setup() {
  last = millis();
}

void draw() {
}

void mouseClicked() {
  now = millis();
  diff =  now - last;
  last = now;
  diffs.add(diff);

  int sum = 0;
  for (Integer i : diffs) {
  sum = sum + i;
  }

  int average = diffs.size() > 0 ? sum/diffs.size() : 0;

  println ("average = " + average);
}

实际上,如果您不需要访问每个条目,您甚至不需要数组列表.

int last, now, diff, entries, sum;

void setup() {
  last = millis();
}

void draw() {
}

void mouseClicked() {
  now = millis();
  diff =  now - last;
  last = now;
  sum = sum + diff;
  entries++;

  int average = sum/entries ;

  println ("average = " + average);

}

这篇关于在处理中点击BPM代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆