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

Материал из Онлайн справочника
Версия от 11:57, 20 мая 2023; EducationBot (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску


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



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 );
  } 
}

См.также

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