ぷろせっしんぐ
ひょんなことからProcessingという開発環境を調べてみる。
Javaベースらしいのだが、とても簡単で、めんどくさい系の部分は全て隠蔽され、純粋に処理したいことだけを書けばとりあえずできちゃう感じ。しかも基本的には画像処理むけ。絵が出て楽しいので学習用言語としてとても優れてると思った。
昔作った音に反応して絵がでるプログラムのようなものをちょっと作ってみる。
必要なのはProcessing
http://processing.org/download/index.html
とサウンド処理ライブラリのEss
http://www.tree-axis.com/Ess/
なんとこんな簡単に。とりあえず動いたので酒のんでる。最近はDewar'sのハイボール。
// サウンド入力とFFTのデモ // InputFFTを簡単にしたものです import krister.Ess.*; int bufferSize; // 音声を入れるバッファのサイズ FFT myFFT; AudioInput myInput; float spinX = 0.0; float spinY = 0.0; int SIZE =32 ; // 大きいほうが細かいが、遅くなる int index = 0; float Sdata = new float[SIZE][SIZE]; // スペクトルデータ float cubeMap = new float[SIZE][SIZE]; // 表示データ void setup () { colorMode(HSB,255); size(640, 480,P3D); Ess.start(this); // start up Ess bufferSize=512; myInput=new AudioInput(bufferSize); myFFT=new FFT(bufferSize*2); // set up our FFT myFFT.equalizer(true); // ここの値を変更して調整してください myFFT.limits(0.01,0.5); // 正規化 音が小さくなったとき自動調整 myFFT.damp(0.2);// アニメーションの滑らかさ(0-1) キビキビ動くかどうか myFFT.averages(3);// スペクトルの滑らかさ(移動平均か?)ギザギザしてるかどうか frameRate(25); myInput.start(); } void setData() { // 現在のスペクトルデータを保存する for(int i=0;i
MACでも動くんかな。