Processing:Библиотеки/Sound/Класс FFT: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
Строка 4: Строка 4:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


{{Черновик}}
 


=FFT<ref>[https://processing.org/reference/libraries/sound/FFT.html processing.org - FFT]</ref>=
=FFT<ref>[https://processing.org/reference/libraries/sound/FFT.html processing.org - FFT]</ref>=
Строка 102: Строка 102:
|Высота логотипа издателя для schemaNewsArticle=45
|Высота логотипа издателя для schemaNewsArticle=45
}}
}}
{{Навигационная таблица/Справочник языка Processing}}
{{Навигационная таблица/Портал/Processing}}

Текущая версия от 11:57, 20 мая 2023


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



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

См.также

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