JavaScript:Библиотеки/p5.sound/Класс p5.FFT/getCentroid()

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



getCentroid() [1]

Описание

Возвращает спектральный центроид входного сигнала.

Примечание: до getCentroid() нужно вызвать функцию analyze(). Она говорит объекту p5.FFT проанализировать частотные данные, а getCentroid() использует результаты, чтобы определить спектральный центроид.

Чтобы использовать эту функцию, нужно подключить библиотеку p5.sound. Для этого в заголовок своего файла «index.html» впишите следующее:

<script language="javascript" type="text/javascript" src="path/to/p5.sound.js"></script>

Синтаксис

getCentroid()

Параметры

void

Возвращаемое значение

Частоту спектрального центроида (в Гц). Тип данных  number.

Пример

№1

function setup(){
cnv = createCanvas(800,400);
sound = new p5.AudioIn();
sound.start();
fft = new p5.FFT();
sound.connect(fft);
}


function draw(){

var centroidplot = 0.0;
var spectralCentroid = 0;


background(0);
stroke(0,255,0);
var spectrum = fft.analyze();
fill(0,255,0); // частоты будут зеленого цвета

// рисуем частоты:

for (var i = 0; i< spectrum.length; i++){
  var x = map(log(i), 0, log(spectrum.length), 0, width);
  var h = map(spectrum[i], 0, 255, 0, height);
  var rectangle_width = (log(i+1)-log(i))*(width/log(spectrum.length));
  rect(x, height, rectangle_width, -h )
}

var nyquist = 22050;

// вычисляем центроид:
spectralCentroid = fft.getCentroid();

// переменная «mean_freq_index» используется для отрисовки на экране:
var mean_freq_index = spectralCentroid/(nyquist/spectrum.length);

centroidplot = map(log(mean_freq_index), 0, log(spectrum.length), 0, width);


stroke(255,0,0); // линия, показывающая расположение центроида,
                 // будет красного цвета

rect(centroidplot, 0, width / spectrum.length, height)
noStroke();
fill(255,255,255);  // текст – белого цвета
textSize(40);
text("centroid: "+round(spectralCentroid)+" Hz", 10, 40);
}

№2

№3

См.также

Внешние ссылки