VRChatにMIDIを送信する(調査)01
VRChatで、ローカルPCからワールドにMIDIで信号を送るにあたって、必要そうな技術の忘備録
アプリから出力するMIDIをループバックして、ローカルPCに入力するツール
loopMIDI
http://www.tobias-erichsen.de/software/loopmidi.html
loopMIDIでつなぐ
https://webmidiaudio.com/npage501.html
PCからMIDIデバイスとして信号を出力するPythonライブラリ
pygame.midiでつくる仮想キーボード ①下準備〜MIDI入力の確認・信号の送信
https://qiita.com/Karakuri_Polta/items/dc9aaa5aa6bb901b3439
Python テストコード
(上記の記事のコードを無限ループにしただけの、お行儀の悪いコードです。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | import pygame.midi as m import time def main(): m.init() i_num = m.get_count() for i in range (i_num): print (i) print (m.get_device_info(i)) midiout = m.Output( 3 ) #直前のMIDIポート一覧から仮想デバイスのポート(自分の環境では「IAC Driver My Port」)のIDを確認して、その数値にしてください while True : midiout.note_on( 60 , 100 ) print ( "note_on(60,100)" ) time.sleep( 1 ) midiout.note_off( 60 ) print ( "note_off(60)" ) midiout.note_on( 64 , 100 ) print ( "note_on(64,100)" ) time.sleep( 1 ) midiout.note_off( 64 ) print ( "note_off(64)" ) midiout.note_on( 67 , 100 ) print ( "note_on(67,100)" ) time.sleep( 1 ) midiout.note_off( 67 ) print ( "note_off(67)" ) time.sleep( 1 ) midiout.note_on( 60 , 100 ) print ( "note_off(60)" ) midiout.note_on( 64 , 100 ) print ( "note_off(64)" ) midiout.note_on( 67 , 100 ) print ( "note_off(67)" ) time.sleep( 1 ) midiout.note_off( 60 , 100 ) print ( "note_off(60,100)" ) midiout.note_off( 64 , 100 ) print ( "note_off(64,100)" ) midiout.note_off( 67 , 100 ) print ( "note_off(67,100)" ) midiout.close() m.quit() exit() if __name__ = = "__main__" : main() |
実行結果

受信テスト
https://mikatahara.github.io/SendReceive/

これでVRChatにMIDIの信号を送るテストは出来そう。
というわけで、Voxel Keiさんのワールドを借りて実験、VRChatに流し込むところまでうまくいってますね。
VoxelKeiさんのワールドを借りて実験!
— みっちー (@Dream_Drive) February 1, 2022
外部からpythonで送ったMIDIの信号が、ちゃんとVRChatのワールドに届いていることが確認できましたー! 次はUdon側の受信プログラム作らなきゃー。 #VRChat #MIDI pic.twitter.com/QGtDbU95lD
次は、UdonでMIDIを受信するテストですね。 >> 続く
コメントを残す