ラベル mobile の投稿を表示しています。 すべての投稿を表示
ラベル mobile の投稿を表示しています。 すべての投稿を表示

2016年10月4日火曜日

MPD+Raspberry Pi 3 BによるDAP、及び専用クライアント開発記録_Vol.2

 さて、連載二回目となります。前回JavaMPDというjarを発見して、なんだこれをGUIに乗っけるだけじゃないか、と意気込んでいました。
 過去形ということで察していただきたいのですが、今回はそんな前回の発見と方針などどこへやら、だいぶん違う方策でMPDを制御してゆくことにしましょう。

 というのも、JavaMPDをコンパイルする段階で設定ミスなどなどあったのかも知れませんが、どうやってもコンパイルエラーを吐きまくり、コンパイルできる状態に無かったのです。
 本来は、どこがおかしいのか、どこをどう変えれば修正できるのか探って行くことになるのでしょうが、あいにくとそんな技術を持ち合わせていない以上に、そこまで時間を割くことができない、という状況があります。

 首都大学東京の大学祭、みやこ祭でのオーディオ研究会の展示の一翼を担うものであるだけに、失敗と遅れは許されません。他のメンバーたちは続々と展示物を完成させていく中で焦りが募ります。

 というわけで、JavaMPDを諦めることにしました。といっても、やはりGUIで実装するという目標を変えるというのもこれはこれで残念です。ということで、JavaMPDを使わず、何かの方法でMPDを制御するGUIを制作する必要がありそうです。

  

 では、現状を整理しましょう。現在、Raspberry Pi上ではxwindowを実行しない状態、つまりCUIでRaspbianが走っており、その上で MPDと基本の通信機能を走らせている状態になります。そして、MPDの制御にはとりあえずC言語で書かれたCUIベースMPDクライアントであるMPCが走っており、MPCを介してMPDを制御することには成功しています。
 MPCは大変シンプルなソフトで、mpc playで再生、mpc nextで曲送りなど、きわめて手軽かつ直感的なコマンド操作でMPDを制御できますので、Volumioなどを使わない人にとって、とりあえずMPDを入れた後の動作確認などの段階で同時に入れてしまうことの多いものです。
 
 ならば、MPDを直接いじるプログラムを書くのが難しいのなら、MPCコマンドをsshで送信するGUIアプリケーションを書いてしまえばとりあえず解決するんじゃ無いか、ということに思い至ります。

 以上から、MPDクライアントを自作するというよりは、二次的にMPDクライアントを制作する、つまりMPCをGUIでフロントエンド実装してしまおうという非常に文系的な発想で開発を進めて行くことにしました。

 このアイデアに思い至るまで、オーディオ研究会の皆々様には多大な意見をいただきました。ありがとうございます。

 では、改めて今回作るアプリケーションソフトの定義をしていきましょう。
  1.  MPC/MPDを導入したRaspbianに対して動作するアプリケーション
  2.  言語はJAVA
  3.  ひとまずmac/Windowsを対象としてjarファイルを以て完成とする
  4.  GUIアプリケーション
  5.  必須機能は「再生」「停止」「曲送り」「曲戻し」 「プレイリスト更新」
  6.  可能ならUSBから取り込みも行う
  7.  I2S出力を行うためその部分と干渉しない
ついでに、今回のDAPの定義もしていきましょう(アプリケーション定義以外の部分で)。
  1.  Raspberry Pi 3 Model B上で動作するRaspbian JessyをOSとするシステム
  2.  MPDをメインとする
  3.  音楽再生機能・ネットワークラジオ機能(ひとまずSHOUTcast対応)
  4.  曲は内部保存(あくまでポータブルDAPである)
  5.  電源はUSB経由
  6.  I2S接続のDACチップ経由で出力する
  7.  DACチップはPCM5102A(テキサスインスツルメンツ製品頁)を搭載したモジュール(サンハヤト社MM5102)
開発環境は
  1. macOS sierra macbookAir e2015 上 IntelliJ IDEA 2016.2
  2. Windows 8.1 Embedded Industry Pro 上 IntelliJ IDEA 2016.2
  3. JAVA 8
  4. Raspberry Pi 3 Model B
  5. So-net 0simで運用するテザリング用Android携帯(Xperia A) ←この端末を介してssh接続 
以上の条件で、明日からまた開発を進めていきましょう!

 次回!「正社員ってお給料を安くするための法の抜け穴!?」 お楽しみに!

2014年6月2日月曜日

賢い人っているなぁ・・・

 今日、iPhoneとPCをテザリングするのに、いつもやってるBluetooth接続でのテザリングをやっていました。電池の減りも少なくていいし、なんといってもjailbreakの影響かなんかわかりませんが、不思議とiTunes最新版を入れているのにも関わらず、何度iTunesを再インスコしても何やっても(しまいにはRoqyUSB入れたり)iTunes、というよりWindows8.1UpdateがiPhoneをカメラデバイスとしてすら認識しないので、USBテザリングなんて夢のまた夢なんです。

 iFunBoxはなぜか写真の取り出しをしようとするとバグるし(一枚でも)、iExplorerは有料なので無駄遣いをしている(無駄じゃないけどw)余裕のない∫ignussにはきつい。PPPoE設定を読まないiPhoneさんにはうちのルーターっていうか無線モデムとでも言うべき中国製のGigastone R101ではブロードバンド接続もできないので、Wi-Fi経由で写真をdropboxやiCloudから送るのは通信容量的にきつい。

 写真の愚痴が長くなりました。んで、bluetoothでテザリングをしていたんです。簿記三級の学習サイト<study pro>を開いて大学で勉強するためにね。家帰るとやりたくなくなるし。

 ふと、USBテザリングをしている人が近くにいた。その人はAndroidだったけど(おそらくあれはファーウェイのアセンド)、羨ましくなってきた。いいなー。

 んで、iOSデバイスをなんとか認識させたいなー、と思った∫ignuss、ちょっとググる。(おい、簿記の勉強はよw

 そうしていると、「でじまみ」というブログに出会った。今回の問題を解決するのには実際役に立つ情報ではなかったのだが、その発想に敬服したのでぜひ紹介したい。

 こちらが当該記事だ。

 iTunesは使わない、という人でも、例えば、iFunBoxで総合管理しているとか、CopyTranceやiExolorerなどで管理しているとかいった場合も、Apple mobile device supportなどドライバに相当するアプリケーションは導入が必要だ。しかも、それはiTunesに同梱されている。

 前々からめんどくさい仕様だなー、とは思っていたが、保守的なAppleがWindows用のソフトを定期的に出してくれているだけでも御の字か、と諦めていた。非公式なインストーラとしてドライバのみを導入するソフトもあるにはあるが、ちょっと恐ろしい。

 「でじまみ」では、そんなイライラと不安を簡単に払拭してくれた。


 結論から言えば、iTunesinstaller.exeを展開するのだ。

 考えてみれば当然だ。中にはmsiが入っている。自分でインストーラを設定したことがあるのだから気づいてしかるべきだった。

 案の定、apple mobile deviceなどもmsiとして入っているようだ。


 発想の柔らかい人って羨ましくなりますね。私、もう頭硬いので・・・・・・。もっと柔軟にならなきゃ・・・・・・キール学派並にねw