Processing:Библиотеки/Sound/Класс FFT

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


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



FFT[1]

Обозначение

FFT

Описание

Это класс для создания анализатора, выполняющего быстрое преобразование Фурье. Он берет в качестве исходных данных звуковую информацию и рассчитывает на ее основе нормализованный диапазон частот в момент, когда эти данные считывает метод analyze().

Методы

  • analyze() – рассчитывает текущий диапазон частот на основе заданных аудиоданных
  • input() – задает входящие аудиоданные для анализатора

Конструктор

FFT(parent)
FFT(parent, bands)

Параметры

parent – как правило, используется «this». Тип данных – PApplet
bands – количество диапазонов частот, рассчитываемых анализатором FFT (по умолчанию – «512»). Необходимо, чтобы это значение можно было поделить на 2 (например, 16, 32, 64, 128, ...). Тип данных – int

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

Пример

import processing.sound.*;

FFT fft;
AudioIn in;
int bands = 512;
float[] spectrum = new float[bands];

void setup() {
  size(512, 360);
  background(255);
    
  // создаем входящий поток аудиоданных, направленный анализатору FFT: 
  fft = new FFT(this, bands);
  in = new AudioIn(this, 0);
  
  // запускаем входящий поток аудиоданных:
  in.start();
  
  // направляем поток анализатору FFT:
  fft.input(in);
}      

void draw() { 
  background(255);
  fft.analyze(spectrum);

  for(int i = 0; i < bands; i++){
  // результат анализатора FFT будет нормализованным;
  // рисуем линию для диапазона частот i и масштабируем ее,
  // умножая на «5» и увеличивая ее амплитуду:
  line(i, height, i, height - spectrum[i]*height*5 );
  } 
}

См.также

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