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

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

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

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

解決済

内蔵マイクを使用したい

emthy
emthy

総合スコア17

Processing

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

1回答

1グッド

0クリップ

233閲覧

投稿2022/11/05 07:46

編集2022/11/05 10:31

前提

ProcessingでMac内蔵マイクに声を入れると音に反応して線香花火が大きくなるサンプルコードを実行しましたが、エラーが出てしまい、検索したところ、完全に該当したものが見つからず、困っています。
サンプルコードはこちらです
http://www.joshibi.net/prof/ryodebuchi/Source/sample24/applet/sample24.html

実現したいこと

Mac内蔵マイクから正常に音を認識できる状態にしたいです。

発生している問題・エラーメッセージ

2022-11-05 16:39:37.855 java[7459:7545439] _TIPropertyValueIsValid called with 4 on nil context! 2022-11-05 16:39:37.855 java[7459:7545439] imkxpc_getApplicationProperty:reply: called with incorrect property value 4, bailing. 2022-11-05 16:39:37.855 java[7459:7545439] Text input context does not respond to _valueForTIProperty: 2022-11-05 16:39:37.856 java[7459:7545439] _TIPropertyValueIsValid called with 4 on nil context! 2022-11-05 16:39:37.856 java[7459:7545439] imkxpc_getApplicationProperty:reply: called with incorrect property value 4, bailing. 2022-11-05 16:39:37.856 java[7459:7545439] Text input context does not respond to _valueForTIProperty: ==== JavaSound Minim Error ==== ==== Unable to return a TargetDataLine: unsupported format - PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian === Minim Error === === Minim.getLineIn: attempt failed, could not secure an AudioInput. NullPointerException

該当のソースコード

Java

1//線香花火プログラミング 2import ddf.minim.*; 3Minim minim; 4AudioInput in; 5 6void setup() 7{ 8 size (500, 500);//フルスクリーン 9 colorMode(RGB, 256, 256, 256, 256);//カラーモード指定 10 11 minim = new Minim(this); 12 minim.debugOn(); 13 in = minim.getLineIn(Minim.STEREO, 512); 14} 15 16//変数宣言 17int x0, y0, x1, y1; 18int x2, y2, x3, y3; 19 20void draw() 21{ 22 background(0);//背景 23 smooth();//滑らかに 24 fill(250, 100, 0, 50);//塗りつぶし 25 26 x0 = x1 = 0; 27 y0 = y1 = 0; 28 x2 = x3 = 0; 29 y2 = y3 = 0; 30 31 stroke(150, 150, 0, 100);//線の色 32 strokeWeight(5);//線の太さ 33 line(width / 2, height / 20, width / 2, height / 2);//線香花火の芯 34 35 //線香花火の火花 36 stroke(250, 100, 0, 50);//線の色 37 strokeWeight(1);//線の太さ 38 for(int i = 0; i < in.bufferSize() - 1; i += 5)//間隔 39 { 40 float r1 = in.left.get(i) * 150 + 5;//反応後のサイズ+半径 41 x1 = x0; 42 y1 = y0; 43 x0 += -r1 / 2 + random(r1); 44 y0 += -r1 / 2 + random(r1); 45 line(x0 + width / 2, y0 + height / 2, x1 + width / 2, y1 + height / 2);//座標 46 float r2 = in.right.get(i) * 200 + 10;//反応後のサイズ+半径 47 x3 = x2; 48 y3 = y2; 49 x2 += -r2 / 2 + random(r2); 50 y2 += -r2 / 2 + random(r2); 51 line(x2 + width / 2, y2 + height / 2, x3 + width / 2, y3 + height / 2);//座標 52 float r3 = in.right.get(i) * 15 + 10;//反応後のサイズ+半径 53 ellipse(width / 2,height / 2, r3, r3); //線香花火の玉 54 } 55} 56 57//停止 58void stop() 59{ 60 in.close(); 61 minim.stop(); 62 super.stop(); 63}

試したこと

ぬるぽがエラーで出ているので、マイクから音声の入力がされないことが原因なのでしょうか
エラーコードで検索したところ、おそらくOSのバージョンが関係しているのかもしれません。
https://github.com/ddf/Minim/issues/75
このサイトに書いてあることを完全に理解できたわけではないのですが、AudioInputをAudioPlayerに置き換えてみましたが、置き換えるだけでは動かないのかin = minim.getLineIn(Minim.STEREO, 512);でエラーが出てしまいました。

エラーのここがよくわかりませんでした、、
Unable to return a TargetDataLine: unsupported format - PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian
Hzなど形式がステレオと合っていないということでしょうか

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

TN8001👍を押しています

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

TN8001

2022/11/05 08:44

in = minim.getLineIn(Minim.STEREO, 512); を in = minim.getLineIn(); に変えるとどうなりますか? --- コードは「Javascript」ではないです。 「Java」あるいは「Processing」が適当かと思います。
emthy

2022/11/05 08:53

コード変更したところ ==== JavaSound Minim Error ==== ==== Unable to return a TargetDataLine: unsupported format - PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian === Minim Error === === Minim.getLineIn: attempt failed, could not secure an AudioInput. NullPointerException と同じエラーが出てきてしまいました。 --- コードの名称間違い申し訳ありません、、、以後気をつけます!
TN8001

2022/11/05 09:57 編集

> 同じエラーが出てきてしまいました。 このへんはどうでしょう。 getLineIn(Minim.MONO); getLineIn(Minim.MONO, 1024, 48000, 24); getLineIn(Minim.MONO, 1024, 44100, 16); メニューのファイルーサンプル... から Contributed Libraries/minim/Advanced/setInputMixer を実行するとボタンはいくつ出ますか? その中で接続できたのはありますか? > コードの名称間違い申し訳ありません、、、以後気をつけます! 質問はいつでも何度でも編集できます。
emthy

2022/11/05 10:42 編集

質問編集ボタン見落としており、修正させていただきました getLineIn(Minim.MONO) このコードでうまくいきました! 「試したこと」の中にあるリンクに書いてあったこと理解できていなかったみたいで、TN8001さんのgetLineIn(Minim.MONO);の記述で理解できました、、、ありがとうございます 貴重なお時間いただき、丁寧に質問に答えてくださって本当にありがとうございました!! もしよければ、ベストアンサーにさせていただきたいので回答にコピーアンドペーストでのせていただけないでしょうか💦
TN8001

2022/11/05 10:49

> 修正させていただきました 対応ありがとうございます。 > このコードでうまくいきました! そうですか!よかったです^^ > もしよければ、ベストアンサーにさせていただきたいので回答にコピーアンドペーストでのせていただけないでしょうか💦 特に何もしていないので「自己解決」で結構です^^; [teratail【テラテイル】|ITエンジニア特化型Q&Aサイト](https://teratail.com/help#resolve-myself)
emthy

2022/11/05 11:11

本当に助かりました、ありがとうございます! 今回はご厚意に甘えさせていただき、自己解決にさせていただきます🙏

回答1

1

自己解決

親切な方に教えていただいたのですが、自己解決にしていいと言っていただいたので、今回は自己解決の形にさせていただきます!

in = minim.getLineIn(Minim.STEREO, 512);→in = minim.getLineIn(Minim.MONO);
と修正したところ、正常に動きました

投稿2022/11/05 11:13

emthy

総合スコア17

TN8001👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Processing

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