実現したいこと
下記動画のように音楽の周波数をグラフにあてはめ可視化したものを作りたい
https://www.youtube.com/watch?v=mK4W_j4TfY4
わからないこと
下記サイトを参考にスペクトラム幅を保管する所まで完成した
下記サイトの 「3.1 基本的なサンプルプログラム」の棒グラフ描画では i < specSize; なっているがその場合想定より短いグラフとなるので、画面両端までグラフを伸ばしたい為 i < 1280;で作りたい
http://macromarionette.com/computergraphics/cg9.html
Processing
1PImage img; 2 3// 外部ライブラリ定義 4import ddf.minim.*; 5import ddf.minim.analysis.*; 6import ddf.minim.effects.*; 7import ddf.minim.signals.*; 8import ddf.minim.spi.*; 9import ddf.minim.ugens.*; 10 11AudioPlayer player; // 音楽ファイルを入れ るための変数 12AudioInput in; // オーディオ入力の変数 13FFT fft; // フーリエ変換用変数 14 15void setup(){ 16 size(1280,720); 17 img = loadImage("high-frequency-2_4_orig.jpg"); // 画像読み込み 18 img.resize(1280,720); // 画像リサイズ 19 surface.setLocation(1280,10); // 実行結果ウィンドウ位置指定 20 Minim minim = new Minim(this); // Minimクラスのインスタンスを生成 21 22 in = minim.getLineIn(Minim.STEREO, 512); // ステレオオーディオ入力を取得します 23 fft = new FFT(in.bufferSize(), in.sampleRate()); // ステレオオーディオ入力を FFT と関連づけます 24 25 player = minim.loadFile("schala's-theme-with-reimu-wonderland.mp3"); // 再生ファイル 26 27 player.printControls(); 28 player.setGain(-20); // ボリューム設定 29 player.play(); // 読み込んだ音楽ファイルの再生 30 31} 32 33void draw(){ 34 fft.forward(in.mix); // FFT 実行 35 int specSize = fft.specSize(); // FFTのスペクトラムの幅を変数に保管します 36 fft.getBand(0); // 指定した周波数帯の音量を取り出す 37 38 39 //棒グラフを描画しますから再開 http://macromarionette.com/computergraphics/cg9.html 40 41 // 背景 42 background(255,255,255); 43 image(img,0,0); 44 45 // 型枠 46 noStroke(); 47 fill(#000000,120); // 図形色指定&透明度 48 rect(0,0,1280,40); // 上図形 49 rect(0,680,1280,720); // 下図形 50 51 fill(#25BDF2,175); // Hzグラフカラー 52 53 for(int i = 0; i < 1280; i+=6){ // Hzグラフ 54 rect(3 + i,(height/2)+60,3,12,4); 55 } 56 57 //textFont(); 58 textSize(26); 59 60 fill(#56D1BF); // song_name_color 61 text("Schala's theme with Reimu Wonderland",10,460); // song_name 62 63 //fill(#56D1BF); // artist_name_color 64 text("3ARTh",10,490); // artist_name 65}
使用しているファイルおよびプログラムを外部アップローダーに上げているので御利用ください
pass : asdf
https://4.gigafile.nu/0301-d91e423b5fea5c97ba933e74f7e2117ac
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。