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

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

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

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

Q&A

1回答

94閲覧

ProcessingでLogicProとMIDI通信をしようとするとNullPointExceptionが出る

potatumuri

総合スコア1

Processing

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

0グッド

0クリップ

投稿2025/01/01 13:45

実現したいこと

Processing実行中に1キーを押したらLogicPro(DAWソフト)でC4の音が、2キーを押したらD4の音が出る・・・という風にしたいです。

発生している問題・分からないこと

setup関数内のmyBus = new MidiBus(this, 1, 2);でNullPointExceptionが出て実行画面が固まってしまいます。

エラーメッセージ

error

1NullPointerException 2Could not run the sketch (Target VM failed to initialize). 3For more information, read Help → Troubleshooting. 4

該当のソースコード

Processing

1import themidibus.*; 2 3MidiBus myBus;//MidiBusインスタンスを作成 4int midiChannel = 1;//使用するMIDIチャンネル 5 6void setup() { 7 size(400, 400); 8 9 MidiBus.list(); 10 myBus = new MidiBus(this, 1, 2); //1番の入力と2番の出力を使う 11 12 println("MIDI設定が完了しました。"); 13} 14 15void draw() { 16 background(200); 17 textAlign(CENTER); 18 text("Press 1-7 to send MIDI notes to Logic Pro", width/2, height/2); 19} 20 21void keyPressed() { 22 int note = -1; 23 switch (key) { 24 case '1': 25 note = 60; //C4 26 break; 27 case '2': 28 note = 62; //D4 29 break; 30 case '3': 31 note = 64; //E4 32 break; 33 case '4': 34 note = 65; //F4 35 break; 36 case '5': 37 note = 67; //G4 38 break; 39 case '6': 40 note = 69; //A4 41 break; 42 case '7': 43 note = 71; //B4 44 break; 45 default: 46 println("Key not mapped to a note."); 47 return; 48 } 49 50 //MIDIノートオン(音を鳴らす) 51 myBus.sendNoteOn(midiChannel, note, 127); // チャンネル、ノート番号、ベロシティ 52 println("MIDI note sent: " + note); 53} 54

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

MidiBus.list();で使用可能なMIDIデバイスをコンソールに表示しているのですが、

Available MIDI Devices:
----------Input----------
[0] "Real Time Sequencer"
[1] "Bus1"
[2] "Unknown name"
----------Output----------
[0] "Gervill"
[1] "Real Time Sequencer"
[2] "Bus1"

という風に出ます。MIDI設定でIACDriverのバス名をBus1にしているので入出力は1,2で間違いはないのだと思います。LogicPro側の入力もIACDriverにしているのでProcessing上でのエラーな気がしてなりません

補足

Processingバージョン4.1

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

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

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

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

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

guest

回答1

0

setup関数内のmyBus = new MidiBus(this, 1, 2);でNullPointExceptionが出て実行画面が固まってしまいます。

MidiBusの不具合だと思われます。
NullPointerException from example - fresh windows install processing 4.3 · Issue #36 · sparks/themidibus

10行目をこのように変更していただけますか?

Processing

1// myBus = new MidiBus(this, 1, 2); //1番の入力と2番の出力を使う 2myBus = new MidiBus(); 3myBus.registerParent(this); 4myBus.addInput(1); 5myBus.addOutput(2);

(あまりお勧めはしませんが)上記でダメだった場合は、Processing 3.5.4だとエラーにならないようです(同時に起動はできませんが、複数バージョンのインストールはできます)
Releases / Processing.org

投稿2025/01/01 14:35

TN8001

総合スコア9903

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.34%

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

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

質問する

関連した質問