4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Processing】曲の波形を表示してみた【Java】

Posted at

はじめに

Processingで音楽ファイルを読み込み、波形を表示させる何かを作りました。
遊びで作ったものなので、荒いコードになっていますがご了承ください。

以下が作ったものになります。
よかったらTwitterのフォローお願いします。

Tree

dataファイルを作成し、その中に使用したい音源を入れてください。
音源はmp3の拡張子のみ使用できます。(m4aなどは再生できなかったのでmp3でしか多分無理)

Terminal
$ tree soundwave
soundwave
├── data
│   └── Wouldn't_Change_It.mp3
└── soundwave.pde

コード

Minimのライブラリのインストールが必要です。
ライブラリのインストール方法は、各々調べてください。

soundwave.pde
import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;
import ddf.minim.signals.*;
import ddf.minim.spi.*;
import ddf.minim.ugens.*;

AudioPlayer player;
Minim minim;

String title = "Wouldn't_Change_It.mp3";
int amp = 150;
float effect = 0; //波形にエフェクトをかける
float line = 0;
float left;

void setup(){
  size(1025,900);
  colorMode(HSB);
  minim = new Minim(this);
  player = minim.loadFile(title,1024);
  player.play();
}

void draw(){
  translate(0, 350);
  //if (0.4 < abs(left)) {
  //  background(100,100,200);
  //}
  //else {
  //   background(0,255,0);
  //}
  background(0,255,0);
  for(int i = 0; i < player.left.size()-1; i++){
    line = abs(player.left.get(i));
    left = player.left.get(i);
    line(i+effect, 100 + left*amp, i, 100 + player.left.get(i+1)*amp);    // Lチャンネルの波形
  }
  stroke(line*400,line*1000,500); //線の色
  strokeWeight(line*4); //線の太さ
}

コードの説明

色指定は、全てHSBを使用しています。
effect変数は、数値を入れることで波形にエフェクトがかかります。
コメントアウトの部分は、波形が一定の大きさになった場合に背景色が指定の色に変わります。
コメントアウトを外す際は、else文直下のbackground(0,255,0);を消すなりしてください。
stroke()は、400の部分を大きくすると音が大きくなった際に、波形に赤みが増し減らすと赤みが減ります。
strokeWeight()は、4を大きくすることで音が大きくなった時の線が太くなります。

感想

勉強や開発にのみコードを書いていましたが、私利私欲で意味もなく好きにコードを書くのも楽しいなと思いました。
皆さんの作品も見たいので何か面白いもの作ったよーって方は、この記事にリンクを貼り付けたり、Twitterにリプライなどを送って教えてください!

因みに、上記に埋め込んだTwitterの投稿にあるWokka!!! Wokka!!! Wokka!!!と言うのはR6Sというゲームのプロゲーマーで、Wokkaという方です。その方が投稿している動画のエンディング曲を波形に取ったので「Wokka!!! Wokka!!! Wokka!!!」と呟きました笑笑

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?