質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

1回答

808閲覧

processingにおけるNullpointerExceptionの改善方法(波形の3D表示および音楽との連動)

waxogawa

総合スコア12

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2019/05/30 11:32

null pointer exception の改善方法がわかりません。

音を3Dで表示するようなものを構築しようと思い、ネット情報などを頼りに描いてみたのですがどうにも動作しません。

import ddf.minim.analysis.*;

import ddf.minim.;
import ddf.minim.effects.
;
import ddf.minim.signals.;
import ddf.minim.spi.
;
import ddf.minim.ugens.*;

final int BUFSIZE = 512;

Minim minim;
AudioPlayer player;

AudioInput in;
FFT fft;

int grid = 50;

float gridWidth;
float [][] zs;

public void settings(){

size(800, 800, P3D);
smooth();

}

void setup() {

minim = new Minim(this);
in = minim.getLineIn(Minim.STEREO, 1024);
fft = new FFT(in.bufferSize(), in.sampleRate());

zs = new float[grid + 1][grid + 1];

for(int w = 0; w< grid; w++){
for(int h = 0; h<grid; h++){
zs[w][h] = 0.0;
}
}
gridWidth = width/float(grid);

player = minim.loadFile("SHINICHI OSAWA LOVE WILL GUIDE YOU feat. TOMMIE SUNSHINE.mp3");

player.play();
}

void draw(){

lights();

fft.forward(in.mix);

for(int w=grid-1; w>=0; w--){

for(int h = grid - 1; h >= 0; h--){ if(h == 0){ zs[w][h] = fft.getBand(w) * 3; } else { zs[w][h] = zs[w][h - 1]; } }

}

background(0);

translate(0,0,-300);
rotateX(PI/4.0);
for (int w = 0; w < grid; w++){
for(int h = 0; h < grid; h++){
beginShape();

>> vertex(w * gridWidth, h * gridWidth, zs[w][h]); vertex((w + 1) * gridWidth, h * gridWidth, zs[w + 1][h]); vertex((w + 1) * gridWidth, (h + 1) * gridWidth, zs[w + 1][h + 1]); vertex(w * gridWidth, (h + 1) * gridWidth, zs[w][h + 1]); endShape(CLOSE); }

}
}

どうすればよいでしょうか。どうかご教示のほどよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thkana

2019/05/30 12:33

どこがぬるぽになってるとか、回答者がブログラムを走らせて確かめないといけないのですか? あなたはそれを知ってるんじゃないかと思うのですけれど、なぜ質問に書かないのですか?
swordone

2019/05/30 12:58

そもそもコードブロックの書き方間違えてる。 行頭の>をすべて消して、コード部分を選択して<code>を押してください。
guest

回答1

0

今頃回答するのもなんですが、誰か検索で来たりするかもしれませんので書いておきます。
ヌルポが出るのは、AudioInputがない(=マイクが刺さっていない)からだと思います。
waxogawaさんがやりたかったのは、mp3の波形だと思われるのでinplayerに置き換えました。

コメントのところが変更した部分

Processing

1import ddf.minim.analysis.*; 2import ddf.minim.*; 3import ddf.minim.effects.*; 4import ddf.minim.signals.*; 5import ddf.minim.spi.*; 6import ddf.minim.ugens.*; 7 8final int BUFSIZE = 512; 9 10Minim minim; 11AudioPlayer player; 12 13//AudioInput in; 14FFT fft; 15 16int grid = 50; 17float gridWidth; 18float [][] zs; 19 20public void settings() { 21 size(800, 800, P3D); 22 smooth(); 23} 24 25void setup() { 26 minim = new Minim(this); 27// in = minim.getLineIn(Minim.STEREO, 1024); 28 player = minim.loadFile("SHINICHI OSAWA LOVE WILL GUIDE YOU feat. TOMMIE SUNSHINE.mp3"); 29 player.play(); 30 fft = new FFT(player.bufferSize(), player.sampleRate()); 31// fft = new FFT(in.bufferSize(), in.sampleRate()); 32 33 zs = new float[grid + 1][grid + 1]; 34 for (int w = 0; w< grid; w++) { 35 for (int h = 0; h<grid; h++) { 36 zs[w][h] = 0.0; 37 } 38 } 39 gridWidth = width/float(grid); 40 41 //player = minim.loadFile("SHINICHI OSAWA LOVE WILL GUIDE YOU feat. TOMMIE SUNSHINE.mp3"); 42 //player.play(); 43} 44 45void draw() { 46 lights(); 47 48// fft.forward(in.mix); 49 fft.forward(player.mix); 50 51 for (int w=grid-1; w>=0; w--) { 52 for (int h = grid - 1; h >= 0; h--) { 53 if (h == 0) { 54 zs[w][h] = fft.getBand(w) * 3; 55 } else { 56 zs[w][h] = zs[w][h - 1]; 57 } 58 } 59 } 60 61 background(0); 62 translate(0, 0, -300); 63 rotateX(PI/4.0); 64 for (int w = 0; w < grid; w++) { 65 for (int h = 0; h < grid; h++) { 66 beginShape(); 67 68 vertex(w * gridWidth, h * gridWidth, zs[w][h]); 69 vertex((w + 1) * gridWidth, h * gridWidth, zs[w + 1][h]); 70 vertex((w + 1) * gridWidth, (h + 1) * gridWidth, zs[w + 1][h + 1]); 71 vertex(w * gridWidth, (h + 1) * gridWidth, zs[w][h + 1]); 72 endShape(CLOSE); 73 } 74 } 75}

実行結果

投稿2019/11/25 13:04

編集2024/03/04 09:45
TN8001

総合スコア9317

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問