オーディオビジュアライザーってかっこいいので作りたくなることがあります。自分も今回初めて正式名称を知りましたが、オーディオビジュアライザーとは音の大きさによってぴょこぴょこする棒のことです。
今回はProcessingで作成するのでminimライブラリの中にあるFFTという機能を使います。そもそもオーディオビジュアライザーとはFFT(高速フーリエ変換)の結果をかっこよく表示したものなので、FFTをすれば後は表示するだけです。
↓のような画面ぐらいならすぐに作ることができます。
↓に今回のコードを載せておきます。
今回はProcessingで作成するのでminimライブラリの中にあるFFTという機能を使います。そもそもオーディオビジュアライザーとはFFT(高速フーリエ変換)の結果をかっこよく表示したものなので、FFTをすれば後は表示するだけです。
↓のような画面ぐらいならすぐに作ることができます。
この時に前回(http://blog.livedoor.jp/chisato_tofu/archives/25956603.html)のソフトを使用するとデスクトップ音声のオーディオビジュアライザが使用できます。ちさと@chisao_62
Processingで作るオーディオビジュアライザー https://t.co/5ZgGUzUxRi
2021/01/10 12:51:11
↓に今回のコードを載せておきます。
- import java.util.Random;
- import ddf.minim.*;
- import ddf.minim.analysis.*;
- import ddf.minim.effects.*;
- import ddf.minim.signals.*;
- import ddf.minim.spi.*;
- import ddf.minim.ugens.*;
- Minim minim;
- AudioInput in;
- FFT fft;
- int w;
- void setup() {
- size(1920, 1080);
- colorMode(HSB, 360, 255, 255, 255);
- strokeWeight(5);
- fill(180, 255, 255, 100);
- minim = new Minim(this);
- in = minim.getLineIn(Minim.STEREO, 512);//デフォルト入力をProcessingに取り込み
- fft = new FFT(in.bufferSize(), in.sampleRate());
- fft.logAverages(60, 2);//(FFTのバンドの数,FFTのオクターブ当たりの分割数)を設定
- w=width/fft.avgSize();
- }
- void draw() {
- background(0);
- fft.forward(in.mix);
- for (int i = 0; i < fft.avgSize(); i++) { //オーディオビジュアライザを描画
- rect((i*w), height, w, -fft.getAvg(i) * 50);
- }
- }