« 伊藤園「新緑」のCMの「一人じゃないのよ」 | トップページ | 「micro:bitでつくってみよう!コンテスト」に応募した »

2018年5月 9日 (水曜日)

Chrome 66でWeb MIDI APIがおかしくなってる timestamp問題再び

 ふと気づくと、以前作ったWebアプリが動いてない。Web MIDI APIを使っているのだけど、MIDIデータがぜんぜん送信できない。Windows版Chrome 66の話。

 そう言えば、AudioContext周りで変更があったとか。

 Autoplay Policy Changes  |  Web  |  Google Developers

 でもって、これも。

 Chrome 66 自動再生無効化の影響 | g200kg Music & Software

 とりあえずこれで対処。自分が作ってるやつはWeb MIDI APIがメインなんだけど、時間管理を正確にするために、Web Audio APIのAudioContextを使っていたのだった。上記記事にあるようにユーザーの操作でトリガーするようなコードを追加してみる。

 結果は変わらず。時間は進んでるが、MIDIデータが送信されない。

 さらに調べる。

 こんなのがあった。

 これっぽい。

 テストしてみると、timestampを指定してるとまったく送られてない。なしなら送信できてる。

 修正はかなり面倒な気がする。x-webmidiを使っているというのもあり、ライブラリに手を入れないと解決しなさそうだし、その作業自体もかなり困難。どうせ、Chromeがバージョンアップしたら問題は解消するんだろうし。

 ということで、とりあえずは待ちの状態ということに。

 ここで言ってるWebアプリはこのへん。

 Web MIDI Lab.

 VOCACID

 ポケット・ミクにテキストを送信するやつだけは修正した。ただし、これでAndroidとかでまた問題が出るかもしれないけど。

 Text Input 39 - ポケミク対応改造版テキスト入力アプリ

 そういえば、その昔、Android版のChromeがWeb MIDI APIに対応した当初、timestampが動作しないという状態が続いていた。その時はtimestampで時間を指定しても無視され、即時データが送信されてしまうという状態だったはず。という話は以下。

 AndroidのChromeのWeb MIDI APIでsendのtimestampが無視されているっぽい

 今回のはそれとは違って、まったくデータが送られない。

 ちなみにtimestampを使ってないやつは問題ない。

 棒読み+ シーケンサー
 ポケミクに棒読みさせる - ブラウザで動くシーケンサー作った Web MIDI API

 そんなこんなで、現状を記録に残す。

 早く修正されるといいなあ。
 
(追記 2018/05/11)

 66.0.3359.170へのアップデートで修正を確認。

 「Google Chrome 66」に4件の脆弱性、修正版のv66.0.3359.170が公開 - 窓の杜

 この記事で、脆弱性のアップデートがあったという記事を見て、もしやと思ったらビンゴ。ありがとう、Google。


|

« 伊藤園「新緑」のCMの「一人じゃないのよ」 | トップページ | 「micro:bitでつくってみよう!コンテスト」に応募した »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/35726/66701483

この記事へのトラックバック一覧です: Chrome 66でWeb MIDI APIがおかしくなってる timestamp問題再び:

« 伊藤園「新緑」のCMの「一人じゃないのよ」 | トップページ | 「micro:bitでつくってみよう!コンテスト」に応募した »