0
我正在嘗試開發一個程序,可以通過單擊或點擊按鈕來幫助我找到歌曲的每分鐘節拍。在處理中點按BPM代碼
我曾指出,我需要一個動態陣列,其保存每個抽頭的時間(毫秒),在到ArrayList的每次末尾添加一個新元素。
添加了一定數量的元素後,通過查找所有元素的總和並將其除以列表中元素的數量來計算出BPM。
我對Arraylists不是很熟悉,想知道是否有人可以幫我實施這些步驟。
我將使用此程序的處理。
我正在嘗試開發一個程序,可以通過單擊或點擊按鈕來幫助我找到歌曲的每分鐘節拍。在處理中點按BPM代碼
我曾指出,我需要一個動態陣列,其保存每個抽頭的時間(毫秒),在到ArrayList的每次末尾添加一個新元素。
添加了一定數量的元素後,通過查找所有元素的總和並將其除以列表中元素的數量來計算出BPM。
我對Arraylists不是很熟悉,想知道是否有人可以幫我實施這些步驟。
我將使用此程序的處理。
這樣的事情?
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);
}
其實,如果你不需要訪問每個entrie,你甚至不需要一個ArrayList ...
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);
}
輝煌! 非常感謝,這是一個很好的開始。 我一定能夠完成這一點 – JackG
歡迎的StackOverflow!請參閱[問]頁面以提出更好的問題。試着說出你的實際問題 – Llopis
不要忘記標記答案是正確的,如果它解決了你的問題 –