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

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、おサイフ、セルスタンバイ問題"

| | コメント (0) | トラックバック (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)

2015年3月17日 (火曜日)

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

 ポケット・ミクに棒読みさせるシーケンサーをWeb MIDI APIで作りました。音楽の演奏よりしゃべらせるほうがおもしろいんじゃないかと思ったり。

 シーケンサーというのは、機械とかで自動演奏させるやつ(雑な説明)。Web MIDI APIのおかげで、JavaScriptで1つプログラムを作れば、Windows/Macはもちろん、iPadとかAndroidのブラウザで電子楽器を制御できます。こんな感じ。


ポケミク 棒読みシーケンサー / POCKET MIKU speaks in a monotone by Web MIDI API Sequencer

 ということで、試せるページはこれ。

 棒読み+ シーケンサー for ポケット・ミク(仮)

使い方

 自動演奏用のデータ、というかシーケンスは16個のスイッチのON/OFFで発音タイミングを。棒読み用なので、音程は考えない方向で。

 とはいえ、それだけだとつまらないので、音程を上下させるツマミ(ノブ)も配置。MIDI信号のピッチベンドを使用しています。一応、画像も。

Pokemikubo

 ページを開いた際にはMIDIデバイスを指定する必要あり。シーケンサーの再生ボタンを押した時にMIDIデバイスが設定されていなければ、設定用ダイアログが出ます。

 SENDと書かれたボタンが右にある入力欄は、歌詞入力用。棒読み用だから、歌詞じゃないか。

 シーケンスには2種のプリセットの読み込みと、全部消すボタンも。手抜きなので、iOSやAndroidだと反応がにぶい(タッチ対応してない)。

デバイスなどの準備

 ポケミクをブラウザで動かすには、Windows、Mac、AndroidではChromeを使用。iOSデバイスではWeb MIDI Browserを使用します(App Storeのリンクは最後)。いずれも無料です。すばらしい。

 Chromeでは最初に以下のURLをブラウザで開いて設定が必要。

 chrome://flags/#enable-web-midi

 「Web MIDI APIを有効にする」の欄にある「有効にする」 をクリックして、Chromeを再起動します。

 (追記:上記操作は現在は不要になりました)

 とか、そのへんはこのプログラムの元になったヤマハのGitHubのページ「Yamaha-WebMusic GitHubPage」に詳しい。

 Web MIDI Browserは面倒な設定は不要。すばらしい。ただ、CHromeももうすぐ上記設定が不要になる模様。

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

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

2015年3月12日 (木曜日)

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

 AndroidのChromeを対象にWeb MIDI APIをテスト。.sendメソッドでデータを送る際にtimestampをパラメータとして与えても無視される。そのため、即時送信されている模様。「Web MIDI APIでAndroidのChromeだけで発生するタイミング問題で困っています。」の続きです。

 以下、調べてわかったこと、その時点で思ったことを時系列に記録。無駄に長い。

 テストしているプログラムの一例はこれ。

 Wrapper for Web MIDI API

 「Fire MIDI」ボタンのクリックでで、ドラミファソラシドと鳴るのだけど、AndroidのChromeでは、すべて一瞬で鳴っているのか、「プツッ」って鳴って終わり。1音だけではないような気がするけど、一瞬すぎてわからない。

 最初は使われている(と、思っていた)ライブラリWebMIDIAPI.jsのせいかと思ったら、現在のChromeではそもそも使われていない模様。Web MIDI API未対応のブラウザのためのものだったようで(何もわからず、AndroidのChromeからadbでログを拾ったりと、えんえんいろいろチェックしてしまったのだけど、なんのヒントも見つけられず。該当ライブラリが使われてないことだけがわかった)。

 で、再度、メインのプログラムを見る。データをMIDIデバイスへの送信に使われているのはsendメソッド。

 sendメソッドではポートにデータの送信を開始する時刻をtimestampで指定できるのだという。以下のリンクにあった。

 Web MIDI API (日本語訳)

 これがちゃんと機能していない。無視される。Chrome Beta(Ver. 41.0.2272.90)でも結果は同じ。

 上のドキュメントの日本語訳を見ると、timestampは「Optional」となっている。むむ。

 オプションだから、AndroidのChromeではサポートされてないのか? RFCのOPTIONALについての文章では、ベンダーの裁量により選択するみたいなことが書いてある(テキトーな解釈)。

 結局、現状ではこのtimestampに頼らずにコードを書いてなんとかするしかなさそう。

 という、素人なりの結論に達した。

 デスクトップのChromeとは別のやり方をしなくてはらないというのは、かなり面倒。どうしよう。今、手を付けているのを放り出したくなった。

 なんか勘違いだったら、逆にうれしいのだけど。

 どなたか、ご存知でしたら教えて下さい。

続きを読む "AndroidのChromeのWeb MIDI APIでsendのtimestampが無視されているっぽい"

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

より以前の記事一覧