カテゴリー「Android」の46件の記事

2019年2月24日 (日曜日)

Web MIDI APIを使ったウェブアプリをPWA化してGoogle Playストアに公開した

Header

 自分がAndroidアプリを作るなんてことはつい一カ月前には考えてもみなかったんですが、やろうと思って試したら存外簡単。なんといってもウェブアプリとして作ったものがそのままスマホアプリ(APK)になるんですがら。というわけで、Web MIDI APIを使ったウェブアプリをAndroidアプリとしてGoogle Playで配信できました、という話です。

 ウェブサイトのアイコンをアプリみたいにホーム画面における、インストールせずに使用できる、アプリみたいにユーザーへのプッシュもできる、そして“オフラインでも使える”、みたいな感じで説明されることの多いPWA(Progressive Web Apps)。それをさらに進めてAndroidアプリのAPKにしてGoogle Playストアで配信できるようになったと知ったのが2月初頭のこと。

 それまでPWAのことも詳しく知らず、Androidアプリの開発もやったことがありませんでした。

 しかし、ちょうど作り始めたWeb MIDI APIを使ったウェブアプリの構想があったので、それをPWA化して、APKにしてGoogle Payで配信しようと決めたのでした。

作ったアプリ

 そんなこんなでできたのがこれ。

 PANDORA mini Selector

Pan1 Pan2_2

 KORG PANDORA miniというコンパクト・ポケット・マルチ・エフェクターのプリセットをUSB経由で選択するというシンプルなアプリ。

 PANDORA miniのプリセット切り替えは、本体のダイヤルやボタンで行います。
 フットスイッチ用端子などはありません。
 ギターを演奏中は手がふさがっています。
 それは困る。

 PCと接続するためのUSB端子はあるのですが、それは専用のエディターソフトを使うためのもの。

 しかし、その挙動を調べてみると、MIDI情報の送受信でいろいろできそう。

 ということで、作ったウェブアプリをPWA化してAPKにしてのが、これ。

 アプリは画面上のボタンを押すだけでなく、文字入力用のキーボードのカーソルなどでプリセットの増減が可能。さらにMIDIノートの受信でも切り替えできるので、MIDIフットコントローラーなどと組み合わせれば、ハンズフリーでプリセット切り替えができます。以下、デモ動画。


PANDORA mini Selector for Android

 動画後半にはフットスイッチを使ってプリセットの増減してるシーンも出てきます。フットスイッチは1つ前の記事で書いたやつです。
 USB-OTGケーブルとか、USB HUBとか接続がややこしくなって、PANDORA mini本体がコンパクトであるメリットがどっか行っちゃってる感じになってますが、まあ、そこはそこ。

 残念ながらKORG PANDORA miniはすでに生産完了。ネット通販でも上のみたいな中古とか、びっくりするくらい高いのしかない模様。このアプリがPANDORA Stompでも使えるといいのですが、実機を持ってないのでなんとも。

別のもあるよ

 PANDORA miniを持ってない人は動作を試すこともできないと思い、もうひとつ作りました。

 PWA MIDI KEY (Google Play)

 シンプルなバーチャルMIDIキーボードです。USB接続したMIDI音源などを鳴らせます。

 Android 6.0以上なら、iOSでいうVirtula MIDIみたいに他のソフトも音源として利用できます。Volcano Mobileの「
General MIDI Synthesizer
」、「OPL3 MIDI Synthesizer」、「FluidSynth MIDI Synthesizer」なんかが使えます。

 ブラウザでアクセスできるウェブアプリはこちらから。

  PWA MIDI KEY

 Web MIDI APIを使用してるので、Chromeでどうぞ。

Header_2

続きを読む "Web MIDI APIを使ったウェブアプリをPWA化してGoogle Playストアに公開した"

| | コメント (0) | トラックバック (0)

2019年2月22日 (金曜日)

Androidのアプリのインストールに失敗する

 アプリを作成中。adb installでPCからインストールしたり、本体で削除したり、ストアからインストールしたりとかを繰り返してたら、どこかのタイミングでインストールができない。

 Google Playは失敗した理由を明らかにしてくれない。できなかったらこれを読んで、みたいなページを見ると、容量を空けろとか、キャッシュを消せとか、すでにやったことしか書かれていない。


続きを読む "Androidのアプリのインストールに失敗する"

| | コメント (0) | トラックバック (0)

2017年10月12日 (木曜日)

BLE-MIDIをSC-04E Dirty Unicornsで使う

 SC-04EをカスタムROMのDirty UnicornsのAndroid 7.1.2にしたのだけど、Android 6.0(Marshmallow)以降で使えるというBLE-MIDI(MIDI over Bluetooth LE / Bluetooth MIDI)が使えない。いろいろ調べて、なんとか動くようにした。という話。長い。

 きっかけは「Chrome 62 on Android M以降でnative MIDI APIの利用が始まります」という記事を読んだこと。それならということで、Chrome Devを入れて試すも、ポートに何も出ず。Bluetoothの設定でQUICCO SOUND mi.1とのペアリングが済んでるにも関わらず、だ。

 で、調べると「MIDI BLE Connect」というアプリがあり、これで認識させてから、他のMIDI関連アプリを起動すると、BLE-MIDIで接続されたデバイスが見えるということがわかる。

 Adafruitのデバイスを使うための記事「Wireless UNTZtrument Using BLE MIDI」に出ていた。

 「BLE MIDI Connect」と「General MIDI Synth」を使うという例だ。

 しかし、両アプリともGoogle Playで探しても出てこない。上記ページのリンクから開くと、アプリが出てくるものの「この端末には対応していない」みたいなことを言われる。「このアプリはお使いの端末に対応していません。」だったかも。

 あらら。

続きを読む "BLE-MIDIをSC-04E Dirty Unicornsで使う"

| | コメント (0) | トラックバック (0)

2017年10月11日 (水曜日)

SC-04EのカスタムROM入れ直し

 というか、また更新。ちょっと気になることがあったので。9月にも更新したのだけど、それより新しいROMがあったことにいまさら気づく。

 ということで、最初に導入した時とはやることが違うので、改めてまとめる。

 いろいろ忘れてる。ポイントはこのへん。

続きを読む "SC-04EのカスタムROM入れ直し"

| | コメント (0) | トラックバック (0)

2017年3月23日 (木曜日)

SC-04E カスタムROM、おサイフ、セルスタンバイ問題

 いまさらながらSC-04Eを購入した。DOCOMOのGalaxy S4。長いことSC-03D Galaxy SII LTEをKitKatで使っていたのだが、最新のOSを使ってみたくなり。

 SC-04Eにしたのは、単に中古でちょっと安く出ていたから。たまたま行ったブックオフで値札1万円のところ2000円OFFとのシール、すなわち8000円くらいで売られており、その場で調べる。どうやら、Android 7.0が動くらしい。その場で購入した次第。

続きを読む "SC-04E カスタムROM、おサイフ、セルスタンバイ問題"

| | コメント (2) | トラックバック (0)

2015年12月25日 (金曜日)

KORG iDS-10買った。すんげー楽しい。

 いまさら。iPod touchだと画面小さい。iPhone 6以上ならいいのかな。

 iPad 2で動かそうとしたらだめだったよ。がっかり。

 とりあえず、ボコーダー(?)は楽しい。ちまちまとパッチングするのも楽しい。まだぜんぜんわかんないけど。そういえば、iMS-20でもパッチングはほとんどやってなかった。R2D2ごっことかしたりしている。

 半額セールは28日までだよ。

続きを読む "KORG iDS-10買った。すんげー楽しい。"

| | コメント (0) | トラックバック (0)

2015年10月16日 (金曜日)

初音ミクとブラウザで会話できるやつ作った。しゃべるよ(ただし、要ポケット・ミク)

Chatscreenshot

 初音ミクと会話できるウェブサービスというかウェブアプリを作りました。ちゃんと初音ミクの声でしゃべるのがポイント。ただし、声を聞くにはポケット・ミクが必要だ(なくても会話は楽しめます)。こんな感じ↓で遊びます(動画は現在のバージョンとはちょっと違ってますが)。

(追記:2015/10/20)ポケミクなしでも音声で返答できるようにしました。詳しくは最後(追記終わり)

 パソコンだけでも楽しめますが、ポケット・ミクがあれば、より楽しめます。

 文字入力はキーボードのほか、Chromeの音声認識も利用可能(iOSを除く)。

 自分のアイコンは変更可能(会話設定)。URL指定のほか、ツイッターのIDでも指定OK。

 ポケット・ミクは設定不要で自動認識されます。

 ミクはなぜか関西弁です(NTT雑談対話API使用のため)。

 ポケット・ミクによる発声にはWeb MIDI APIというのを使用。そんなわけでブラウザはChromeを使います。iOSのChromeはWeb MIDI API未対応なので、無料で使用できるWeb MIDI Browserを使ってください。

 というわけで、以下のリンクから。


 39 Chat (仮)

 
 とりあえず、まずはブラウザだけで遊んでみてください。

 あと、APIなどの使用制限でサービスが停止する場合があります(そこまで人気が出るとは思いませんが)。その場合は翌日まで待つとかしてください。

 それと、おもしろい会話の履歴があったら教えて下さい。ニコニコ動画にアップしてもらってもいいですよ(たぶん)。ニコニコ生放送で使ってもらってもうれしいです(見に行きます&コンテンツツリー登録お願いします)。

続きを読む "初音ミクとブラウザで会話できるやつ作った。しゃべるよ(ただし、要ポケット・ミク)"

| | コメント (0) | トラックバック (0)

2015年3月27日 (金曜日)

VAIO Z1VEでAndroid-x86、タッチパッドが動作しない

 「VAIO PCG-Z1VEにAndroid-x86をインストール」の続き。内蔵タッチパッドが効かない問題の解決方法。ここにヒントが。

 Android-x86 4.4 r1 のタッチパッドが使えなくなったら(TouchPad Disabled on Boot): ムムのファイル置き場

 手順はこんな感じ。

 端末エミュレータを立ち上げ、suでrootに。

 dumpsys input | less でそれらしきデバイスを見る。「|」はShift+「む」スペースキーで2ページ目を表示、Ctrl+Cで抜けられる。2ページめに表示された「AlpsPS/2 ALPS GlidePoint」が内蔵タッチパッドの模様。ConfigulationFileの項目には、「/system.usr.idc/GenericTouch.idc」が指定されている。

 一方、「cd /system/usr/idc」して「ll」(ファイルをリストアップ、DOSでいうdir)でファイルを見ると、GenericTouch.idcは存在せず。タッチパッドのファイルらしき「SynPS_2_Synaptics_touchPad.idc」は存在し、lessで中身を見ると、確かにそれっぽい。ということで、このファイルをコピーして、GenericTouch.idcを作る。「cp SynPS_2_Synaptics_touchPad.idc GenericTouch.idc」とする。これで「reboot」すれば、無事再起動、タッチパッドが使えるようになった。

続きを読む "VAIO Z1VEでAndroid-x86、タッチパッドが動作しない"

| | コメント (0) | トラックバック (0)

2015年3月26日 (木曜日)

VAIO PCG-Z1VEにAndroid-x86をインストール

 古いマシンを有効活用したい。動作確認とかになら使えるかな、とか思い。動くまでえらく時間がかかった。テキトーに調べてテキトーに始めたらびっくりするほどはまりまくり。それでも最大解像度で起動するまではいけた。

 最初は最新が4.3しかないと思い、それでブータブルDVD-Rを焼いた(CD-Rメディアが手元になかったので。あと、USBブートできない機種なので)。起動せず。メディアから起動できるLive CDとかいうやつで起動しないので、インストールしてもやっぱりだめ。そういうもんか。やっぱり。そしたら、4.4も発見。同じページの上にちゃんとあった。最新は別の枠かあ。と思い、さっそく新たなメディアに焼く。結果は同じ。むー。

 で、さらに調べると、CentrinoなPentium M搭載機はSSE3に対応しておらず、それが原因であるという。non SSE3なビルドがあるというので、それを焼く。試す。LiveCDモードで起動。だめ。VESA Modeとかいうのも選べるので、それにすると起動する。タッチパッドはだめだけど、外付けマウスでとりあえず動く。じゃあ、HDDにインストールだ。

続きを読む "VAIO PCG-Z1VEにAndroid-x86をインストール"

| | コメント (0) | トラックバック (0)

2015年3月19日 (木曜日)

Web MIDI API、Androidでsendのtimestampが無視されるので無理やり対処

 「AndroidのChromeのWeb MIDI APIでsendのtimestampが無視されているっぽい」の続き。Web MIDI APIが持っている時間制御がうまくいかないなら時前でやるしかないんだなあ、という結論に。

 ということで、いろいろやったこと、調べたことをメモ。

 まずは、棒読みシーケンサーで作ったやつを利用しようと思ったのだけど、もっと汎用性があるものにしようと判断。オリジナルのsendメソッドに代わるものを作って追加しようと思った。  調べてみると、メソッドの上書きができる模様。新しいメソッド内にオリジナルのメソッドを入れると無限ループみたいになってしまったので、オリジナルはコピーしておいて、それを新しいメソッド内で使うことで対処。無理やり。JavaScriptの、というかプログラミングの作法がまだわかってないけど、それなりに動くようになった。

 sendメソッドのtimestampは、時間を指定する。window.performance.now()で現在の時刻(ブラウザを開いた時点からカウントアップされている)を取得し、xxミリ秒後に発音するなら、「window.performance.now() + xx」みたいな感じで指定する。以下に例を挙げる。

続きを読む "Web MIDI API、Androidでsendのtimestampが無視されるので無理やり対処"

| | コメント (0) | トラックバック (0)

より以前の記事一覧