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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
 
Нет описания правки
Строка 10: Строка 10:
==Обозначение==
==Обозначение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
FFT
FFT
</syntaxhighlight>
</syntaxhighlight>
Строка 25: Строка 25:
==Конструктор==
==Конструктор==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
FFT(parent)
FFT(parent)
FFT(parent, bands)
FFT(parent, bands)
Строка 32: Строка 32:
==Параметры==
==Параметры==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
parent – как правило, используется «this». Тип данных – PApplet
parent – как правило, используется «this». Тип данных – PApplet
bands – количество диапазонов частот, рассчитываемых анализатором FFT (по умолчанию – «512»). Необходимо, чтобы это значение можно было поделить на 2 (например, 16, 32, 64, 128, ...). Тип данных – int  
bands – количество диапазонов частот, рассчитываемых анализатором FFT (по умолчанию – «512»). Необходимо, чтобы это значение можно было поделить на 2 (например, 16, 32, 64, 128, ...). Тип данных – int  
Строка 39: Строка 39:
==Возвращаемое значение==
==Возвращаемое значение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">


</syntaxhighlight>
</syntaxhighlight>
Строка 45: Строка 45:
==Пример==
==Пример==


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
import processing.sound.*;
import processing.sound.*;



Версия от 18:12, 14 мая 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 );
  } 
}

См.также

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