ブログトップ
コンピュータと共にある創造的日常
uneoyaji.exblog.jp

メディアアート・プロジェクトにハマったオヤジの日常生活
by une0exct
カテゴリ
全体
未分類
以前の記事
2016年 06月
2014年 09月
2012年 10月
2012年 04月
2012年 01月
2011年 10月
2011年 06月
2011年 01月
2010年 07月
2010年 06月
2010年 04月
2010年 03月
2009年 08月
2009年 05月
2009年 02月
2009年 01月
2008年 12月
2008年 10月
2008年 08月
2008年 07月
2008年 06月
2008年 05月
2008年 04月
2008年 03月
フォロー中のブログ
メモ帳
最新のトラックバック
ライフログ
検索
タグ
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧
アプリのアイコン
次のリリースを Version 1.5 とすることにしました。アプリのアイコンに Version 番号を入れているので、アイコンのイメージも作り直しました。Leopard の開発環境に入っている Icon Composer で古いアイコンファイルを開いてみると、これまで 128x128 pixel が最大だったのに、512x512 と 256x256 があるではないですか。どこでこんな大きなアイコンを表示するのかと思ったら Leopard の新機能 Quick Look で Finder のウィンドウを思いっきり大きくしたときに使われるんですね。というわけで、Photoshop で作っていたアイコンを 512x512 対応にしました。
出来上がった Photoshop のファイルを Icon Composer にドラッグ&ドロップしてびっくり。pre-multiplied alpha は良くないというコメントと共に、アイコンの周囲がなんか黒っぽくなっているではないですか。試しに Photoshop で透明度を指定するときに、これまでは、境界をぼかした選択をして、選択を反転して消去してたんだが、これをアルファチャネルを追加して、そこをぼかして白で塗りつぶすというやり方でうまくいきました。めでたしめでたし。できたアイコンは、こんな感じ。
b0129209_21425966.gif

[PR]
# by une0exct | 2008-03-29 21:45
AppleScript をアプリに埋め込む
3/25 のブログに書いたランダム系列を制御するプログラムは AppleScript で書いたもので、DT4自身のアプリとは独立したモジュールだったんですが、これをアプリに埋め込んで、デフォールトでランダム系列が走るようにしました。
早い話しが、アプリのバンドル・リソースにスクリプトファイルを入れて、実行開始時に別スレッドで、そのスクリプトを実行するわけです。スクリプトが無限ループになってるので、別スレッドにしないとGUIの操作ができなくなってしまうんだなこれが。しかし、API リファレンスには

Important: You should access NSAppleScript only from the main thread.

って書いてあるけど。。。

あと、問題はユーザがランダム系列による制御を停止する方法。無理矢理スレッドを強制終了にする方法もありそうだけど、ここでは、スクリプトから参照可能な read only の属性を仕込んでおいて、アプリのコードの方で、その属性値を変更して、スクリプトの方ではループ内でこの属性を参照して、値が変わってたら exit repeat して、スクリプトを終了するという風にしました。

NSAppleScript なんていう便利なクラスが組み込まれてて、非常に簡単でした。が、ちょっと引っかかったのは、Xcode 3 の Resources のところにスクリプトファイルを追加しても自動的にはアプリのリソースにコピーされず、ターゲットの構築手順にも追加しておかないといけないという点でした。

では、本日の画像:
b0129209_2224575.jpg

[PR]
# by une0exct | 2008-03-28 22:26
DT4 のサウンド部分を少々拡張
DT4では Core Audio を使って合成音とサンプル音をいろいろ加工して出している。ソースコードを眺めていたら、どうも無駄な計算してるところがあったので、改良。少し効率アップしたはずです。
もう1つ、音の長さを調節するスライダーを追加。短くするとちょっとワイルドな感じになりました。こんな感じ。

MP3 もアップロードできるといいのにね。
[PR]
# by une0exct | 2008-03-27 17:52
DT4 のデバッグは限りなく
MacOS X の Objective-C でプログラミングやってるんですが、Mac の CPU が Intel になってから Dual Core あたりまえということで、CPU パワー命な、リアルタイム・リアクションを求める当方としては、当然、マルチスレッド使う訳です。で、共有メモリーのロックとか、結構クリチカルなわけですよ。実行時のバグも、毎回現象が違ってたりして、原因を見つけるのが難しい。デバッガにかけると何も異常がなかったり。


今朝見つけたバグは、そんな高尚?なんではなく、単に NSArray arrayWithObjects: の最後に nil を入れるのを忘れていたという、ちょっと間抜けなものでした。デバッガのお陰ですぐフィックスできたのは幸い。


もう1つ、昨日いじったところで、awakeFromNib の中でスレッドを作ってたのを applicationDidFinishLaunching に移しました。awakeFromNib だと、まだ load し終わっていない NIB とかがある場合に、スレッドがデッドロックすることがあるので、というか、そういうプログラムになっていたので、起動時にときどきハングアップしてたのでした。


これだけじゃ、なんなので、今日のDT4イメージでも載せておきます。

b0129209_1144154.jpg

[PR]
# by une0exct | 2008-03-26 11:47
日記つけてみるか
年をとると物忘れがひどくなると同時に、昔のことをいろいろ思い出すわけで、そんな日常では、最近のことを思い出せなかったりする。そこで、ブログに日記をつけてみようと思い立ったのだが、はたして続くかどうか。。。


タイトル通り、4年前くらいからメディアアートにハマっていて、現在はスイス人と共同プロジェクトを推進中。プロジェクトの情報はこちらを見てもらうとして、ここは、推進途中の模索とかいろいろ書いてみようと思います。


とりあえず、最近はこんなのです。




[PR]
# by une0exct | 2008-03-25 21:20