Как я могу рассчитывать на 1 каждый раз том> 6

Я пытаюсь сосчитать на 1 каждый раз, когда микрофон слышит щелчок пальца.

var mic;
var vol;
var count = 0;


function setup() {
  createCanvas(windowWidth, windowHeight);

  mic = new p5.AudioIn();
  mic.start();
}

function draw() {
  background('pink');

  vol = mic.getLevel(); // level is between 0 and 1
  vol = vol * 100;

  if (vol > 6) {
    count += 1;
    text(count, 60, 300);

    //if (count += 1) {
    //  vol = 0;
    //}

  } else {
    text(count, 60, 300);
  }
}  

Проблема: в моем текущем коде он продолжает отсчитывать длительность звука щелчка пальцем. Как я могу написать это, чтобы добавить 1 к счетчику вар только один раз за щелчок пальца

Всего 1 ответ


Если вы рассчитываете, когда громкость превышает 6, вам нужен флаг, чтобы узнать, когда он опустился ниже этого порога.

Так что установите переменную вроде:

var waitingForVolumeIncrease = true;

Затем в вашем коде при увеличении счетчика также установите флаг в значение false.

Добавьте еще одно условие, которое проверяет, является ли объем меньше 6, и сбрасывает флаг в true.

Наконец, вы хотите увеличивать счетчик, только когда флаг установлен в true, поэтому вам нужно обновить чек, чтобы убедиться, что флаг установлен в true.


Есть идеи?

10000