フォロー

Kotlin/WasmからWeb MIDI APIを経由してデスクトップ上のMIDI-CIデバイス(仮想)にMIDI1メッセージを送れるようになった…! (まだ受信側の実装の手直しが必要)
まあWeb MIDI APIがネイティブでMIDI 2.0をサポートするようになるまでにはまだ時間がかかるかな。Windowsのサポートが追いつかないだろうし。
アプリ側が問答無用でUMPを送りつけるようにすれば…というのが理想だけど、Web MIDI APIではSysExの送受信に特別なパーミッションが必要になるので、それを実現するためにはsend()とonmidimessageに届いたdataの中身を検証するはずで、そうするとUMPを送ってもたぶんエラー扱いになるはず(未検証)

Kotlin/JSではJzzのnpmパッケージを参照して組んでいたけど(実のところWebで動かせるアプリが無いので未確認)、Wasmでやろうとしたら型システムの不一致でPromise<T>とかが参照解決できなくて、結局Web MIDI APIのIDLを含むMSがTypeScript用に自動生成したdom.generated.d.tsからdukatでKotlinに変換してその一部だけを引っ張ってきて、それをK/JS用からK/Wasm用に微修正して使っている。
K/Wasmは現状ではUint8Arrayとかの扱いが悲惨(1要素ずつコピー…)だけど、動く部分は動くようだ。

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。