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 テストコード
(上記の記事のコードを無限ループにしただけの、お行儀の悪いコードです。)


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に流し込むところまでうまくいってますね。


次は、UdonでMIDIを受信するテストですね。 >> 続く

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

アーカイブ

広告

Top