腰痛と首痛と Pure Data の iOS アプリ化

朝、、ベッドから起き上がるときに、腰と首にピリっと痛みが。腰はその後、少し重い感じが続く。
さすがに、Pure Data (とエロ動画検索)に掛かりきりになりすぎて、運動不足になったのか。

大事になる前に、ちょっと自転車乗ってきた。
筋力もさることながら、心肺機能が落ちすぎ。
まぁ、尻の筋肉がなくなっていて、サドルが痛いよー、だったことも大概だったけれども。
もう少し、まめに身体を動かそう。

さてさて、アプリ化できそうにない気がしたので MobMuPlat を諦め、SVGウィジェットが使えそうにない気がして PdParty を諦めたワタクシ、必然的に pd-for-ios にたどり着くのであった。

PdDroidParty で作った物を iOS に移植したいだけなんだけど、なんだか大事になってきたような気がしないでもない。

とりあえず、こちらの先生の記事 を参考に、Xcode の「Connect to a repository」を使って、クローンしてみる。
Xcode ってこんな機能があったのね、知らなかった、そんなの・・・。

先生の記事は、gitrious になってますが、最新版はこっちなような気がするので、コピペ。
https://github.com/libpd/pd-for-ios.git

で、先生の記事にも、上記サイトの README.txt にもあるように、ターミナルでクローン先のフォルダに移動して、いつものおまじない、

git submodule init
git submodule upadate

で、いつもと違うおまじない、

git pull
git submodule update

さて、これまで何度かお目掛かったことのあるファイル群がクローンされたことよ。
腕組みしてうなること数秒。いつものこと、検索。
なんか出た。

http://www.mat.ucsb.edu/yerkes/blog/wp-content/uploads/2011/05/libpd_tutorial.pdf

サンプル・プロジェクトを弄って、色々おせーてくれているような気がするー。

investigate libpd and Pdtest01 が重要そう。
xxxxAppDelegate.h と xxxxAppDelegate.m で、諸々宣言するもよう。
あー、.pd もここで登録するのか・・・。
[PdBase openPatch:@"xxxx.pd" ~

ちなみに、GUI は Interface Builder 的なもの(今、あったっけ?)で作って、紐付けするみたいね。
Xcode をちゃんとやってないとコリャ、しんどい。
もう一年以上触ってないんすけど・・・。
と、自分の怠慢を棚に上げて、不満をいう。

investigate なんて C.S.I のタイトルコール以外で聞いたことないよ。

ま、今日のところは、pdパッチの組み込み方が分かっただけで良しとする。
なんか、どのドキュメントも、お前の使ったオリジナルの Xcode プロジェクト に libpd.xcodeproj を組み込んで~、みたいなことしか書いてなかったので、良く分かんなかったのさ。


とすると、pd-for-android も、ADT とかで GUI 組んで、pdパッチとやり取りする形なのかな?
swing? とやらを使うのかしら。
でも、使いづらいから Java ベースで描画できる Processing を使うと便利よねーって話になってるのかなー?


PdDroidParty で作った Pdパッチや SVG を、ゲロっとツールに通すと、Xcode に読み込めてビルドができるようなツールはないんすかね?
まぁ、なんだったら、アプリ化までやってくれるツールでも良いんだけど。
・・・、いくつになったら夢を見るのを止めるのか。

スポンサーサイト

PdDroidParty アプリ名の日本語化とか

すっかり夏めいてきましたが、梅雨はまだなんだよなぁ。
まぁ、引き篭りをはじめて幾星霜、昨今のアロマ・ブームを考えると、梅雨時期、ギューギュー詰めの通勤電車に乗らなくてすむのことだけは、ホントにありがたい。
きっと、渾然一体となったアロマでむせ返るに違いない。


さて、PdDroidParty のスタンドアローン・アプリ化のつづき。


1回ビルドしたあと、Pd パッチを更新した場合、

更新したパッチを patch フォルダにコピーして、

./pack-patch

ant debug install

で、大丈夫みたい。

必要があれば、ant ~ の前に、

android update project --name XXXX --path .

してやれば良さそげ。

そういや、例の bazaar の revno 、ビルドしてやれば勝手に更新するのかと思ったけど、そういうわけではなさそう。
./pack-patch で、patch フォルダのなかに、VERSION-$revno というファイルを作っているのだけど、VERSION-0 から変わらない。
何か明示的に操作してやる必要があるんだろうか。
この辺は、にわか bazaar 使いには分からないなぁ。今度、調べてみよう。

そして、本題のアプリ名の日本語化。

res/values フォルダの string.xml を開いて、

<string name="app_name">xxxxx</string>

の xxxxx の箇所を日本語で書き換えてやれば大丈夫でした。

最初、 ./convert-app-name で、日本語を使ってエライ目にあったりました。
当然ながらエラーが出て、そこで諦めれば良いのに、そうだ! エスケープ文字でやってみよう!とか思いついちゃうのが、素人のあさはかさ。
エラー乱発で、ビルドまでたどり着けなくなって、しかも元に戻せないときた。
しょうがないので、結局、git clone ~からやり直したというお粗末。

しかも、そのあと、アイコンを書き換えるのを忘れてビルド、端末で起動したときに気が付いて、アイコンを書き換えて再ビルドするも、変わらねー! で大汗。

ま、ウチの端末での反映が遅かっただけみたいなんですけど。
えー、どうやったら直るのー? と検索して、お、ant clean してからビルドすれば良いのかー、の結論にたどり着いて端末を見たら、直ってた。
相変わらず、無駄なことをする・・・。


さて、お次は iOS アプリ化を考えてみる。

公式サイト には、PdParty for iOS か、MobMuPlat ってヤツがあるよと書いてある。

斜め読みだけど、MobMuPlat は、スタンドアローン・アプリ化できなさそうなんだよな。
PdDroidParty でパッチを開く方法みたいな感じで、MobMuPlat で作った GUI と Pd パッチを iTunes につっこんで、起動するとか書いてあるような気がする・・・。

PdParty はまだ調べてない。
こっちから調べるのが近道かしらねぇ。

[追記]
PdParty、調べてみました。

1) ライブラリが iOS7 に対応してくれているようで、MacOSX 10.9 以降じゃないと対応している Xcode がインストールできない。
ウチの環境(MacOSX 10.7.5 & Xcode 4.6.3)だとサンプルのビルドもできなかったよ。
(なので、スタンドアローン・アプリ化できるかどうか不明。でも、Xcode でビルドするんだし、ねぇ?)

2) PdDroidParty にあった svg ファイルでの GUI の置き換え、いわゆる SVGウィジェット が実装されていない。
実装の計画はあるけど、プライオリティは低いかんね、とか書いてある気がする。
Pure Data の GUI はちょっと・・・だなぁ。

RjDj のシーン・ディレクトリーやバックラウンド、[rj_image],[rj_text]オブジェクトはサポートしてるとか書いてあるような。
RjDj を調べてみるべきか、Pdlib を調べるべきか。

Pure Data のデータ・ストラクチャとか Gem をやったほうが幸せになれんじゃろか。


PdDroidParty でAndroid アプリ 【まとめ】

とりあえず、debug モードでの、apk 化に成功したので手順のまとめ。

Pure Data でパッチを組む。
PdDroidParty で動作するように、各種ボタンやスライダーを変更する。
inkscape を使って 公式サイトからダウンロードした droidparty-tests/svg-wiget の中の .svg ファイルを改造して、GUI デザインを変更する。

ここまでは、通常の手順。

ビルドの準備として、

rpl のインストール
bazaar のインストール
ADT の SDK Manager 、 AVD Manager で、android-12 をインストールしておく。

などを行います。

あとは、公式サイト の手順に従って、ターミナルで、

git clone https://github.com/chr15m/PdDroidParty.git サブフォルダ名(=クローン先)

cd クローン先フォルダ

./convert-app-name xxxx "XXXXX"

(xxxx は短縮アプリ名、 XXXX 正式アプリ名。サンプルの記述では XXXX にスペースが入ってますが、スペース入れるとエラーになりました。""で囲ってあるのに、スペースが区切りと解釈されて、第3引数と思われちゃうみたい。)

ここで、git がエラーを吐くので、

rm .git/index
git reset

して、

git mv src/cx/mccormick/pddroidparty src/cx/mccormick/xxxx(短縮アプリ名)

としてフォルダ名をリネームして git に登録します。

アプリのアイコンとして 72×72 サイズの .png ファイルを用意して、ers/drawable/icon.png と置き換えます。

patch サブフォルダを作って、droidparty_main.pd と、その他のファイル(.svg ファイルなど)を移動します。

この後、./pack-patch を行うのですが、その前に

bzr init

で、bazaar を初期化します。
standalone treeを作成しました。(フォーマット:2a) とかメッセージが返ってきます。

初期化が上手くいったら、./pack-patch を行います。

ここまでが公式サイトに書かれている手順です。

このあとは、クローンしたフォルダにある README.md の手順に従います。

git submodule init
git submodule update

で、サブ・モジュール「pd-for-android」をクローンします。

cd pd-for-android
git submodule init
git submodule update

で、pd-for-android のサブ・モジュール「PdCore/jni/libpd」「midi」をクローンします。

cd PdCore
android update project --path .

すると、local.properties が更新、proguard-project.txt が追加されます。

cd ..
cd ..

で、プロジェクトのルート・フォルダに移動し、こちらでも、

android update project --name PdDroidParty --path .

で、local.proerties の更新、build.xml と proguard-project.txt の追加が行われます。

ここまで出来たらビルドです。

ant debug install

BUILD SUCCESSFUL が表示されれば、bin フォルダの中に PdDroidParty-debug.apk が出来ています。
※ワタシの場合は、例の sdk.dir 問題が出たので、export ANDROID_HOME=xxxx/adt-bundle-mac/sdk して、再ビルドで、BUILD SUCCESSFUL!
端末にコピーして、インストールしたら、めでたく起動しました。

長かった・・・。


まぁ、あとは、アプリ名に日本語が使えるかとか、パッチ更新時の手順とか、最終的にリリース版のビルドはどうやるかなど、色々ありますが、一区切り。


おっと、重要なことを書き忘れていた。
開発環境は、MacOS X Lion 10.7.5 です。

PdDroidParty のアプリ化

以前、棚上げしていたアプリ化のテスト、ちょっと続けてみたの巻。

前回のあらすじ。

公式サイト で、「Standalone apps」という単語を見つけて、大喜びのワタクシ、さっそく試してみることに。
書いてある通りにやりゃ、なんとかなるだろう。

./convert-app-name でつまづく。

1) rpl とやらがない。ので、ここから インストール。

2) git のindex が壊れてると言われる。

rm -f .git/index
git reset
git add .

して対処。

patch フォルダーを作って、droidpary_main.pd と、その他のファイルをコピー
./pack-patch を実行。

android update project を PdCore フォルダと、プロジェクトのルートフォルダで行って、ant debug install
ゲロゲロ、なんじゃこのエラー。

と、ここまで。

さて、続きですが、

2)のエラーの原因は不明のままですが、git reset のあと、convert-app-name ファイルを開いて、最後の git rm~ をターミナルに ドラッグ&ドロップして、行末の $1 をアプリケーション名に手打ちで修正することにした。

問題なさそげなので、その後出てくる問題の対処を考えてみる。

一番の問題は BUILD FAILED になってしまうことなんですが、その前の手順に何か問題がないか調べてみる。

まずは、pack-patch から。テキスト・エディタで開いてみる。

いきなり、bzr と見慣れないコマンドが。・・・検索。
bazaar とか言うのが必要みたいです。
とりあえず、MacPorts を使ってインストール

pack-patch を実行。
bzr は動いているようですが、エラーを吐いてます。Not a branch:
うーん、良く分からず、先に進む。

例の、android update project をやって、android debug install 。

BUILD FAILED 。
sdk.dir missing なので、sdk.dir か ANDROID_HOME を指定しろみたいなことを言ってるような気がする。
ので、
export ANDROID_HOME=/XXXXX/adt-bundle-mac/sdk/
してみた。

もう一回、android debug install 。

うーん、今度はターゲットがうんちゃらかんちゃら言っている。
ADT を立ち上げて、Android Virtual Device Manager を見てみる。
前回、android update project でテキトーに、--target 2 とかやってたのが裏目。
ADV manager に登録されてるヤツを選ぶ。

もう一回、android debug install 。

お、景色が変わる。
listening for transport dt_socket at address:xxxx
で、VM 起動待ちか?
・・・、待ちっぱなし。

README.md に書かれていた例では、ターゲットを指定いなかったので、同じように、android update~ して、android debug install 。
ターゲット、android-12 がないよと言われる。
デフォルトだと12になってるのかな?
もう一回 ADT に戻って、SDK manager で、Android 3.1(API12)をインストール。

まぁ、色々やり直して、もう一回、android debug install 。
ゲロゲロメッセージが出て、BUILD FAILD 。
[aapt] ~ Error:String types not allowed(at 'revno' with value ' ').

あー、revno って、pack-patch で出てきた・・・。
bzr がエラー吐いてるけど、良く分からず放置、ってヤツだ。

bzr が何してるのか調べなきゃ。←いまココ。

次回、ADT でビルドしたほうが早くね? で、ADT に登録している他のプロジェクトがビルドできなくなる巻にご期待ください。

最終回

PC遠隔操作事件の被疑者が自白。

警察の地道な捜査が実ったということだろうけど、一方、誤認逮捕が続いたところを見ると、サイバー犯罪の証拠固めってやっぱり難しいんだなぁ。

結局、被疑者がスマホを土に埋めたところを捜査員が目撃して、スマホの内容と付着していたDNAが一致したのが決め手になったということは、やっぱり、PCに残っていたデータなどの無形物だけでは証拠としては弱いんでしょうか。

この件で、コワいなと思ったのは、サイバー犯罪に対する捜査力に地域格差がありそうなところ。
サイバー犯罪とか、やっぱり中央のほうが人員割いてそうだもんね。
ま、単なるイメージだけど。

で、一番ヤバかったのは、「素直にゲロっちまえよ。そんな少年院に入りてぇのかっ!」机バーン!(ほぼ脚色)
捜査力の地域格差はサイバー犯罪に限ったことではないのかも知れない。
ピーガルたそ。


ロング・グッドバイ

主人公のキャラに、時たまあんちゃんぽい臭いを感じたところと、女優陣がアジアン・ビューティー系ばかりだったところを除けば、おおむね面白かった。
まぁ、結末から考えるに、アジアン・ビューティーである必要はあったのではあるけれど。

原作のアジアへのローカライズもうまかったですね。
無理やりな感じはなかった。

まぁ、OPのカッコよさで大抵のことは許せるケド。

欲を言えば、大物・柄本明との対決(?)シーン、もう少し日本的にクドくやっても良かったかも。
ちょっと、探偵、手も足も出ずに見えちゃったかなぁ。
まぁ、手も足も出なかったから、冨永愛が飛び込んでくるところが生きるんだろうけど。

あと、復興に結びつけるのは、意図としては分かるけど、わざわざ映像化してナレーションをつけるのは無粋。



PdDoridParty で SVG 使って GUI

というわけで、PdDroidParty のお話のつづき。

Pure Data で作ったパッチを Android で動作させるためのアプリ(?)、PdDroidParty。
英語ばかりの公式サイトで、一段と目を引く GUI が書き換えられている画像。
どんなものか試してみたので、分かったことなどを書いておく。

で、前に、こちら で触れたけど 、ラジオボタンは対応してません。
あと、「bang」も対応してませんが、代わりに「wordbutton」 というのアブストラクションが用意されてます。
ラジオボタンも「taplist」で代替が利きそうです。
詳しくは、公式サイトの「Abstractions」を見ていただくとして、簡単な説明。

■wordbuton : bang 的なものだけど、ボックスの中にテキストが入る。
ex. [ wordbutton 80 30 rock ]
= ワードボタン指定 横幅 縦幅 テキスト
※「rock」がボックスの中に入るテキスト。だけどテキストサイズは縦幅にアジャストするので、文字数が多くて、横幅が足りないとはみ出します。
[追記]
wordbutton からの bang を受信する場合、[r wordbutton-テキスト]と言う形で受信する。
wordbutton- がプリフィックス的な?

■numberbox : ナンバーボックスと同様だけど、指定した大きさの四角の中に数字が入る。
ex. [numberbox 64 32 numreceive numsend 0 10 5]
= ナンバーボックス指定 横幅 縦幅 レシーブ センド名 最小値 最大値 初期値

■taplist : タップするたびに指定した内容に切り替わる。内容は数値とテキスト。
ex.[taplist 96 32 send receive hello goat egg wubble]
= タップリスト指定 横幅 縦幅 センド名 レシーブ名 要素1 2 3・・・]
※要素1が初期値、タップするたびに1→2→3・・・と切り替わり最後まで行くと要素1に戻る。

■touch :画面をスクラッチするとxy数値を返してくれる。(公式サイトにはコルグのカオスパッド的って書いてあるけど、gridのAndroid版? )
ex.[touch 200 200 xy]
= タッチ指定 横幅 縦幅 センド名
※センド名(センダー)からxy値がパックして送られてくる。

■menubang : Android(PdDroidParty) のメニュー画面に bang の機能を持たせたメニューを追加できる。アイコンは72×72の .png 形式で、ファイル名のプリフィックスは、menubang-。
ex.[menubang hello]
= メニューバン指定 センド名(実際は「menubang-hello」になる。)

■loadsave : Android の 「ファイルを開く」「保存」のインターフェイスを呼び出す。
ex.[loadsave store]
= ロードセーブ指定 センド・レシーブ名
※実際には、load、send の bang などのボタンを用意して、センド名 store に save savedir sav 、load savedir sav など、動作やディレクトリなどをメッセージで送るようです。

■droidnetreceive : PdDroidparty 上で動作しているパッチ同士でタイミングや状態を共有できる、とかなんとか。

まぁ、公式サイトから droidparty-tests.zip と、droidparty-abstractions.zip をダウンロードして中身を見ればなんとなく分かるかと。

というわけで、テストで組んでみたパッチに、ラジオボタンとバンを使っていたワタクシ、トグルとタップリストに置き換えてみたんでした。
上記一覧の機能は、PC上の Pure Data では動作しない(というか、エラーの認識)ので、 実際に端末に送って動かしてみるまで正しく動作してるかは分からないです。
まぁ、例のごとく、組んでは端末送り→不具合→修正・・・を繰り返し、なんとか思ったとおりの動作をするように改造。

で、やっと本題、GUI に画像データを使うぞー。おー。

公式サイトの「SVG Widgets」を読んでみる。

何やら、inkscape を使えとか書いてある模様。
ここに来て、また新たなソフトを習得せねばならぬのか。

実はMacOSXを64bitに切り替えたときに、それまで使っていた画像編集ソフトが使えなくなって、無料のソフトで良いものはないと密かにインストールしてみたものの、それまで使っていたソフトとの UI の違いについていけず、挫折したソフトではないか。ぐぬぬ。
というわけで、インストールはしてたんです。でも、日本語入力できないんすよね、コレ。

GUI で一番困ってたのは、ボタン名が日本語で表記できないところだったので、うーむ、どうしたもんか。
悩んだら検索すれば良いのだ。
おっと、テキストファイルで日本語入力して、コピペすれば大丈夫との情報が。

とりあえずボタンとして四角を書いて、日本語のボタン名をコピペしてセーブ。
端末に送る。日本語が表示されない。
そしてさらに、表示位置が大幅にずれる。

公式サイトを読む。
「ま、droidparty-tests の svg-widgets に入ってる .svg を改造して使うのが無難じゃね?」とか書いてある。

ので、droidparty の svg-widgets にある Toggle.svg を開いて、日本語テキストをコピペしてセーブ。
端末に送る。位置がずれるのは直ったけど、日本語は表示されない。
以降の流れはいつものことなので端折る。

結論から言うと、テキストのパス化をしてなかったんです。
で、位置ズレは「ファイル」メニュー→ドキュメントの設定→カスタムサイズ で大きさを描画サイズに合わせてなかったから。
(「ページサイズをコンテンツにあわせて変更」でもダメだったんだけど、なんででしょうかね?)

同じく、矩形ツールや円ツールで書いたものも、「パス」メニュー→オブジェクトをパスへ、でパス化しないと表示されません。
パス化しなくても、カラー指定は効いているみたいで、トグルなどは四角く指定色になるもんだから、余計原因が分からなかったんでした。

ま、良く読むと、「The renderer only really works on plain paths, so make sure you convert any objects like rectangles or circles to plain SVG paths.」と、パスしかレンダリングしないよ、矩形とか円のオブジェクトでもパス化しろよって書いてあるんですけどね。
相変わらずの粗忽者っぷり。

画像サイズは、Pure Data で、オブジェクトのプロパティで設定したサイズにアジャストしてくれます。

で、ファイル名。
トグルボタンだったら、Toggle.svg とすると、トグルボタンを置き換えてくれます。
ボタンそれぞれに別の画像を使いたいときは、ボタンにセンド名かラベルをつけて、その名前を Toggle- の後ろにつけて、Toggle-xxx.svg とするとそのボタンに割り当たります。

スライダー は特殊で、スライダーの枠と可動するつまみ(?)部分を別ファイルにします。
横向きのスライダーの場合、それぞれ、Slider-horizontal.svg、Slider-widget-horizontal で、スライダーごとに別のデザインにする場合は、トグルと同じくセンド名かラベルを指定して、Slider-xxx-horizontal.svg、Slider-xxx-widget-horizontal.svg とします。(xxx 部分がラベル、センド名)
縦向きの場合は、Slider-vertical.svg、Slider-widget-vertical、Slider-xxx-vertical.svg、Slider-xxx-widget-vertical.svg とします。

あと、グラデーションは表示できないようですね。
doriparty-tests の svg-background-3 にある background.svg に、グラデを使ってるパスがありますが、表示されていないようですし。

あ、background.svg は読んで分かるように、背景画像です。

というわけで、色々 .svg ファイルを作ってみたら動いたよー。


[追記]
公式サイトにある「Sharing your patches」、パッチや .svg があるフォルダを zip 圧縮して、拡張子を .dpz に書き換えて~とありますが、コイツを端末に送って PdDroidParty を起動すれば PdDroidParty が解凍して起動してくれるのかと思ったら違った。
端末に送った .dpz ファイルを起動(=自動解凍)すると、PdDroidParty が(インストールされてれば)起動するんだった。
次回、パッチを起動したいときは、PdDroidParty に登録されているので、PdDroidParty を起動すれば、メニューから選択できるようになっています。

PdDroidParty

というわけで、pd-for-Android でのアプリ化を一旦棚上げして、PdDroidParty を試してみる。

適当なパッチを作って、公式?サイト を参考にAndroid端末に送ってみる。

上のサイトから「PdDroidParty-debug-264.apk」 (2014年5月時点)をダウンロードして、端末に送ってインストール。

で、アプリ名(?)で PC にサブフォルダを作って、パッチをコピー。
パッチ名を「droidparty_main.pd」とリネーム。
で、こやつを端末のsdcard の PdDroidPartyフォルダ(なければ作る)に送ってやって、PdDroidParty を起動。
勝手にパッチを探しだして、フォルダ名(アプリ名)を表示してくれるので、選択すると、あら簡単に起動しましたわ。

おっと、配置しておいたラジオボタンがなくなってしまった。
ラジオボタンは対応してないみたいですね。
トグルに置き換えて、上記手順を繰り返す、と、おお、今度は大丈夫。
コメントがずれたりしてましたが、ボタンに名前をつけただけなので、ラベルに置き換えて対応。

GUI には不満はあるものの、一応、動作はしたぞ、と。

で、公式サイトをつらつら読んでいくと、下の方に「Standalone apps」という見出しが・・・。
どうやら、パッチをアンドロイド・アプリにできるらしい。
ってことで、やってみる。

1) git でPdDroidParty をソースをクローンして `git clone https://github.com/chr15m/PdDroidParty.git MySynthesizer`
2) クローンしたアプリ名を自分の好きな名前に変えて  `./convert-app-name mysynth "My Synthesizer"`
3) アイコンを作って置き換えて res/drawable/icon.png
4) スプラッシュ画像の置いて res/raw/ (省略化)
5) About ボタンを押したときに表示される内容を書き換えて assets/about.html (省略化)
6) 「patch」サブフォルダーを作って、droidparty_main.pd と、関連ファイルを置いて
7) 「./pack-patch」を使って「patch」サブフォルダーを Android zip にして
8) ビルドのやり方は、README.txt を読んでね。

1)は問題なかったんだけど、2)のアプリ名の変更でハマった。
どうやら、アプリ化するためにソースレベルからコンパイルするようで、そのソース(テンプレート?)で使用しているアプリ名を書き換える作業のようだけど、まず、convert-app-name 内で使っている rpl というコマンドがないとエラーが出た。

検索をかけてみたものの、良く分からずにMySQLをインストールしたりする素人なワタクシ。
無駄無駄無駄無駄ー!
で、行き着いたところが ココ
これまた良く分からずに MacOSX と書いてあるやつをダウンロード。

ターミナルで gnutar xzf rpl-1.3.0b3-mac-osX.tar.gz で解凍せいとか書いてある。
あれ、ダウンロードした時点で、.tar まで解凍されてる。

Safari の環境設定→一般の「ダウンロード後、”安全な”ファイルを開く」のチェックを外して、再ダウンロード。
で、上のコマンドで解凍&解凍先フォルダに移動。
INSTALL ファイルを読みつつ ./Build を実行。
ビルド中に表示された内容に従って、出来上がった bin フォルダ内の rpl と、man/man1/rpl.1 のパーミッションを変更(chmod 0755 rpl 、 chmod 0644 rpl.1)して、所定の場所へコピー。

では、もう一度 ./convert-app-name してみる。
おお、ちゃんと動いてるみたいー。
・・・最後の git で fatal ・・・。
何度かやり直してみたけど、「bad source」か、「index file corrupt」と言われる。
うーむ。
一回「bad source」が出た時点で、index が壊れてるのかな。

しょうがないので、良く分からないまま、

rm -f .git/index
git reset

してみる。
まぁ、壊れてるファイルを削除して、リセットしたっつーことでしょう。
で、もう一度やってみたけど、やっぱり fatal・・・。

うーん、ファイルの内容は rpl で書き換えてるみたいなので、最後に git にフォルダ、ファイル名の変更を報告すれば良さそげなんだけど・・・。
って、フォルダ名が src/cx/mccormick/PdDroidParty から書き換わってない。
もう、面倒くさいので、手作業でフォルダ名を変更。

もう一回、
rm -f .git/index
git reset
して、
git add .
とかで対処してみる。きっと後でひどい目に遭うでしょう。

3) のアイコンはそのままでいいや。ビルドできるかどうかのテストだし。
4)、5)は省略可能なので、省略。
6) はそのまま、サブフォルダを作って pd ファイルコピー。
7) も ./pack-patch すると色々やってくれます。

では、ビルドに取り掛かります。

8) の説明では、「README.txt」を読めとありますが、ここは git でお馴染み「README.md」になってます。

pd-for-android をサブモジュール指定してあるので、取ってこいとか書いてあるよ。

git submodule init
git submodule update

で、 pd-for-android にもサブモジュールがあるからソレも取ってこいと。

cd pd-for-android
git submodule init
git sudmodule update

MIDI関係のライブラリがクローンされるみたいですね。
それで、PdCore を ant でビルドできるようにするために

cd PdCore
android update project --path .

最後にプロジェクト全体を ant でビルドできるように、

cd ..
cd ..

で、同じように

android update project --name PdDroidParty --path .

したら、ターゲットを指定しろとか言われる。
どう指定したら良いか分からず、検索。

android list target

で、一覧が見られるそうです。
ま、Android 4.2.2 とかならいいんじゃないですかね。テキトー。

android update project --name PdDroidParty --path . --target 2

とかにしたら、色々ファイルができた模様。

さて、ビルド。

ant debug install

ゲロゲロエラーが吐かれて、BUILD FAILED。
例の aapt がないとかなんとかその他もろもろ。
ant/build.xml でエラーが出てる模様。

ant clean debug install

も試してみるけどダメ。

601、647、688

一旦棚上げして、しばらく追跡調査。


Pure DataでAndroid -初心者まとめ-

GWを費やして、まだ何も作れてない悔しさまぎれに、ここまで分かったことをまとめてみる。

初心者なので、間違っている可能性大。

■ Pd-extended: Pure Data の各種ライブラリを含んだアプリ。Pd パッチはコレで作る。

■ pdlib: 各種プラットフォーム(iOS、Android、MacOS、windows、Linux)向けの(アプリ制作用の?)ライブラリ。

■ pd-for-andoroid: pdlib の Android 向けに特化したライブラリ。ネイティブで動くので、pdlib よりレイテンシが低い? 開発ツールは ADT。

■pd-for-iOS: pd-for-android と同じく、iOS向けに特化。開発ツールは Xcode。

■Processing: 画像処理ツール。これで pd-for-android の GUI を作ると親和性が高い。※pd-for-iOS の GUI はXcodeでOK。

てな、感じですかね。
他にも細かいことは色々ありますが、まぁ、とりあえず。
ふぅ、先は長いな。

開発止まってる? とか書いちゃった PdDroidParty ですが、誤情報でした。
こちら で、ずいぶん進化しているようです。
こちらは、Pd-extended で作ったパッチの GUI を、そのまま Android や iOS で再現する方向で進化した模様。
初心者はこちらのほうが使いやすいかも・・・。悩む。


enchantjs 音が出ない

enchant.js 、FireFoxだと音が出ないなぁ。

うっすら理由が分かったので、記事にしようかと思ったんだけど、その前に、本家サイトをチェックしておこうと思ったら、アレ? v0.8.1 が来てた
いや、2014年3月末にリリースされてたらしいんで、ずいぶん遅い情報ですが。

■enchant.ENV.SOUND_ENABLED_ON_MOBILE_SAFARI のデフォルト値が true に

■enchant.Sound.load と enchant.WebAudioSound.load の第三引数のロード完了コールバックが省略可能に

新しい Web audio API をサポート

Firefoxでの enchant.DOMSound.load の動作改善

と、サウンド周りが充実したようです。

まだ、リファレンスは読んでないんですが、サウンドでお悩みの方は V0.8.1を使ったほうが良さそげですね。
enchant.js 側で、ブラウザの判定ができるようになったらしいので、最悪、こちらを使えば・・・。


[ メモ ]
当ブログのカテゴリー「備忘録」に Pure Data に関する記事を分類してましたが、内容が備忘録なのか、悪戦苦闘記なのか分からなくなってきたため、「Pure Data」を含め「cocos2d」「enchantjs」を備忘録から独立させました。


Pure Data で Android その4

王様のブランチの読書ラバーズのゲストに栗山千明。
読書好きの有名人がオススメ図書を紹介するこのコーナー。
栗山千明のオススメは、「新世界より」と「物語シリーズ」。
・・・変わりませんな。

コスプレも再開して欲しいもの。
加藤夏希もね。

中川翔子は・・・、最近色々あったみたいですが、アイ・アム・冒険少年 とか、中川翔子抜きの「飛び出せ科学くん」みたいな番組が始まってるし、そっち系からは卒業するんですかね。

って、関係ない話長すぎ。


さてさて、Pure Data で、Androidアプリが作れるかって話ですが、作れる作れないかって話だけなら作れそう。

とりあえず、Pd でパッチを組む。
pd-for-android で、android アプリがビルドできる環境を ADT で構築する。

ところまでは分かった。
ってGW全部使ってここまでー?

さて、作ったパッチをどう ADT に持っていくか? ってところなんですが、
こんなサイト がありました。

なにやら、Processing という見覚えのない単語が。
サイトを斜め読みすると、グラフィック関係の処理に強いアプリのようで、こいつで Android端末上のGUIを作って、Pd にタッチ・イベントなどを引き渡す、とか書いてあるような気がする。

ので、とりあえず ダウンロード してみる。
Donate してちょ、とか書いてありましたが、すみません、貧乏人&まだお試しなんで No Donation のラジオ・ボタンをクリックして Download。

みごとに「アプリ」がダウンロードできました。なんかテンプレート的なモノも含まれてるのかと思った。
うーん、Pd の使い方もまだ良く分からないのに、こいつの使い方も勉強しなきゃならんのか。
なんかこう、ちょっと試してみる的なことはできないないのか。

ありました。
processing の ADT への組み込みはちょっと面倒くさいんで、downloading the sample templete project とか使ったらどう? と言われた気がしたので、ダウンロードしてみ、ようとしたら git を使うんだった。

で、ターミナルでおまじないを唱える。
git clone https://github.com/twobigears/Pd-Processing-Template.git

ダウンロードがすんだ Pd-Processing-Template フォルダを pd-for-android にそのままコピー。
うむ、この辺り、良く分かってないことだけは良く分かる。
そして、ADT で、Project Explorer を右クリック「NEW」→Android > Android Project from Existing Code で、 コピーしたフォルダを読み込む。
すると、Main Activity というプロジェクトが追加されるので、選択して Run 。

android-18 がねーよ! と言われて、AVD を作って再度 Run 。
動いたよ。
エミュレータの画面をドラッグすると、音程と音量が変わって、同時に画面の色が変わりました。

これで「libs」フォルダに「processing-core.jar」が出来るので、他のプロジェクトの「libs」フォルダにコピーすれば良い、のかな?
Pd-Core を読み込んだときみたいに Properties で Add するのかも。


調べてるうちに こんなサイト も見つけた。

Pure Data は4インチのスクリーンは動かないので、コンピュータ上でパッチを組んだら、Android端末では UI なしで動かせとか書いてあるような気がしますね。
で、UI は Processing.app を使えばラクチンみたいな?

なんか、Processing+PD の example の URL が載っているので、こちらも git。
ターミナルでおまじない。
git clone https://github.com/rjmarsan/YayProcessingPD

時間がないので、今日はここまで。


色んなサンプルを見て、うっすら分かったこと。
プロジェクト > res > raw フォルダに .pd ファイル(単体の場合?)か、.pd を zip圧縮したファイル(.pd が複数の場合?)を置いときゃビルドしてくれるのかもー?