2009年12月15日

MaxMSP コーディングメモ(推敲中)

Max/MSPで大掛かりなパッチを効率的に作るときの覚え書き。
Max/MSP はver.4.6想定。

--------------------------------------------------------------------------------
・一つのサブパッチの中にreceiveをいくつも作らない
 ・receiveの名前は、そのサブパッチの名前と同じものを一つだけつくる
 ・receiveでは[タグ 数値]や[タグ リスト]の形式で受けて、適宜必要に応じてrouteする
 ・結果的に、サブパッチのinlet/outletは0〜1個にとどめることになる

・サブパッチに名前をつける時は、役割名で名前をつける。機能名ではなく

 例) [p movieDistributer]
   × [p distbuteMovie]

・複数インスタンスへのメッセージ送信を行う時は、forwardを使う。
   アペンディックス"00"はダミーとする

・ある程度内容がfixされたサブパッチは、パッチャーオブジェクト化する。
   patcherと地続きなファイル名にすると、後で修正が必要になったときに両ファイルの間を行き来しやすい。

  例)
 [p documentsender]    // サブパッチ
  → [p_documentsender] // パッチャーオブジェクト

・パッチ中でメッセージを編集・加工する必要がある時はshellオブジェクトを活用する。
  ・forループ書く場合、リストの要素を1個ずつ繰り返し処理する場合などはシェルスクリプトで済ませた方が、テストもメンテナンスも圧倒的に楽。

・maxカーネルメッセージを使って、ポリモーフィズムを実践する。
 ・詳細が決まってないときに、とりあえず動かす場合にも使える。

  例)
 [; allplayers read test.mov]   // 同じクラスのインスタンスすべてに送信
 [; player01   read test.mov] // インスタンスを指定して送信

  [; allplayers vol 0.] // すべてのメディア制御オブジェクトのボリュームを0に設定する
  // jit.qt.movieなど。@でオブジェクト内部指定するよりハンドリングが楽になる

--------
■メモ
・パッチを開く時に、commandキーとshiftキーの両方を押しておくと、loadbangを無効化できる
・パッチ最上位で何も選択せずGetInfoすると、インクルードしているオブジェクトをmaxウィンドウに出力する


2009年9月15日

RjDj Team @TMUG Bridge, 2009.09.13

RjDjTeamはiPhoneアプリ「RjDj」の開発チームで、イギリスはロンドンを本拠に、ソフトウェアのデザインを通じて新しい音楽の形態を探っている。

今回のプレゼンはRjDjTeamのメンバーの一人、Robertによるもの。
主な内容を覚書きとしてまとめておく。

-------------------------------
1. RjDjの紹介
 ・ソフトウェアそのものが音楽であり、楽譜や録音に定着されない音楽体験をもたらす
 ・Digital Drug, "Mushroom without mushroom" , Surreal Musicというような言及も
 ・iPhoneSDKの知識は不要。代わりにPureDataの知識を必要とする。
 ・デベロッパープログラムに加入せずとも、iPhoneで動くオーディオアプリを作成できる
 ・種々の入力情報をもとに、音、音楽、音響etc. を生成する
   ・マイクから音声入力
   ・スクリーンのタッチ検出
   ・加速度センサーによる運動の検出
   ・位置情報(GPS)
   ・ネットワーク: TCP,UDP,ゆくゆくはHTTPも。
 ・RjdjはPdパッチの実行環境
 ・Webサイトを経由で、自作パッチをiPhoneにインストールする
 ・パッチテンプレートや、高機能なライブラリが用意されている

-------------------------------
2. 反応音楽レーベル "Kids on DSP" の紹介
 ・RjDjを使って音楽流通の新しい形態を模索する進行中のプロジェクト
   ※どうやら開発チームがプロジェクトの主体らしい
 ・Carl CraigやAcid Pauliが制作したシーンをiTunesStoreで購入できるようになる。
 ・価格は1本 4〜5ドル程度 (※シーンだかアルバムだかは失念)
 ・ドッペルゲンガー、タイムクルージングなどのシーンを再生(※実行というべきかデモというべきか)

-------------------------------
3.シーンを作ってみるデモ
 ・制限時間10分のライブコーディング
 ・Pdでプログラムを実行しつつパッチング
   ※プログラムの詳細は割愛。後日サイトにアップされてシェアされるらしい
 ・RjDjライブラリのステップシーケンサー、リバーブなどをフル活用

-------------------------------
■個人的に気になったポイントなど
  ・大傑作シーン "あつけ"
  ・シーンの配布サイトがTumblrの一角
  ・RjDjライブラリが充実してる。Pdでオーディオしてる人はDLしてみるといいかも


イベントのリンク
TMUG presents Bridge

RjDjデモ
RjDj Sprint Tokyo_demo

TMUG Sprintのサイト
http://rjdjtokyo.tumblr.com/

dNA@TMUG Bridge, 2009.09.13

アルスエレクトロニカでも受賞経歴のある、アンビルドな建築ユニット doubleNegativesArchitectureがプレゼンテーションを行い、その様子を見てきたので、備忘録がてら内容をまとめておく。

(建築系のプレゼンを受けるのに不慣れで、またつたない理解で書いてる点はご容赦を・・)

-------------------------------
トピックとしては2つ。
  1.  近作のインスタレーション事例紹介
  2.  空間表記法 SuperEye の説明
-------------------------------
1. 近作紹介
 ・リンツ、山口で会場を変えて行われたインスタレーション
 ・ユニット化されたセンサーを、対象の建物の各所に据えつけ
   ・センサー数のオーダーは20〜30
 ・センサーから収集される微所的な環境情報をリアルタイムに取得
 ・センサーは個々が計画的に配置されており、個々がネットワークのノードである
 ・取得した環境情報を、ネットワークにフィードバックさせて、ノード間の関係をリアルタイムに変化させる
 ・レンダリングした3次元の構造物と実際の建物を重ね合わせて提示

-------------------------------
2. SuperEye - 空間の知覚・表記の代替手法の提案
 ・客観的な視点から出発して構築されるのが従来の建築物
  →主観的な視点から出発して構築される構造は?
   ・蟻塚、蜂の巣、珊瑚
   ・boid, Flock  
  →いずれも構築の主体は、全体像を持っていない
 ・直交座標系 --- 立面図、平面図、パース
  → 極座標系 ---SuperEye, 飛行機や潜水艦のレーダ
 ・SuperEyeによる空間解析のケーススタディ
  ・サヴォワ邸スロープ前を平面に落とし込んでみる
  ・太陽の昇降運動を落とし込んでみる
-------------------------------

イベントのリンク
TMUG presents Bridge

2009年9月14日

ミシェル・ゴンドリーのビデオ術 2

youtubeから。
making of Star Guitar

Chemical Brothersのダンストラック"Star Guitar"のビデオは、音楽に合わせて車窓の風景が変化するという、シンプルだが奥の深いビデオ。

そのメイキングビデオがyoutube上にあがっており、観ると
奇才と呼ばれるミシェル・ゴンドリー監督の頭の中がちょっとだけ覗けたような気分になれる。


メイキングの内容は大きく2つで、新しいビデオのコンセプトを検証する行程が収められている。

 1. 机上でトラックを聴きながら、構造をメモしていく様子
 2. 屋外で撮影したプロトタイプ。フルーツやフォークなどがトラックに合わせたタイミングでフレームに入り続ける (7:20頃〜)

有名な、車窓の風景は登場しない。

  

ミシェル・ゴンドリーのビデオ術

White Stripes のミュージックビデオ"Fell In Love With A Girl"は、レゴを素材にしたストップモーションアニメで、ミシェル・ゴンドリー監督の代表作の一つ。

随所に映るバンドの動きや顔のアップの表情が、通常のアニメとはちょっと違うような気がしたので、その秘訣を掘ってみた。

以下は http://www.director-file.com から。
RES gives a full account of Gondry's process. "I really like the basic-ness of the music - one voice, one guitar, and one drum. I like this concept, and I thought it was very close to the primary color of the Lego blocks." On the video's creation: "We shot a very basic video of the band [in London], we edited it and then we had a program that pixelized the video, roughly the size of the Lego blocks and then we printed each frame [25 frames per second] on paper. Then we had an animation team building up Lego blocks to match each frame. Then we reshot each of those frames on a film camera. We didn't have enough Legos to do more than five frames at a time, so after five frames were shot [the Legos] were demolished to build the next five frames."


手順を簡単にまとめると、

1. 撮影と編集
バンドの演奏、プールに飛び込みなどのシーン。ここまでは普通。

2. ビデオをピクセラレート
各フレームをレゴで組める解像度までダウンサンプリングする。

3. 映像の各フレームを紙に出力する
25コマ/秒で!

4. 組立てチームが紙を元にレゴを組み立ててコマ撮り撮影
5フレーム分しかレゴの手持ちが無いので、5フレーム単位で組立て〜撮影を行ったとのこと。


できたビデオはこちら。(youtube)
Fell In Love With A Girl - White Stripes

2009年5月5日

テキストの中の単語数を調べる

テキストファイルにある単語の数を調べるコマンド。
「入門Unix for Mac OS X」から。
tr -cs "[:alpha:]" "\n" < sometext.txt | tr "[:upper:]" "[:lower:]" | sort | uniq | wc -l

考え方としては
 1. 改行を取り除く(?)
 2. 大文字を小文字に変換する
 3. アルファベット順に整列して、単語の重複を排除
 4. 行数カウント
 

2009年2月14日

awkでひとつのファイルから沢山のファイルを切り出す

開発ネタ。

csvファイルなどあらかじめ定型化されているファイルから、1行ごとに個別ファイルへ分割したい場合、awkを知っているとサクっとできてしまう。

大元のcsvファイルの各行1フィールド目に、分割後のファイル名が記載されているものとして、、


# コマンド
awk -F\, -f split.awk org.csv

# split.awk
{
filename=$1
print > filename
close(filename)
}

# org.csv --- 1フィールド目が切出し後のファイル名
0.csv,"^@",200,1.00,1000.00,"0, 200 1 1000;"
1.csv,"^@",400,512.00,10.00,"1, 400 512 10;"
2.csv,"^A",1600,2.00,10.00,"2, 1600 2 10;"
・・・



あとは書き出したファイルを対象に、sedなどの文字列置換で1フィールド目を取り除いてやればOK。

参考: sed&awkプログラミング

2009年2月2日

dashboardの無効化&有効化

開発ネタ。

PCでパフォーマンスをするときに、ダッシュボードを無効にする。
ネット上にツールやソフトはあるだろうけど、もっとシンプルにすると、
こんな感じ

#!/bin/sh
# StopDashboard.command
# ダッシュボードを無効にする
defaults write com.apple.dashboard mcx-disabled -boolean YES
killall Dock


#!/bin/sh
# Start.command
# ダッシュボードを有効化
defaults write com.apple.dashboard mcx-disabled -boolean NO
killall Dock


それぞれ拡張子を .command にして
terminalから開いてやればOK。

mdlsでPDFのページ数を調べる

プログラミングネタの覚え書き。

mdlsを使うと、便利なことにPDFファイルのページ数が取れちゃったりする。
キーワードは、kMDItemNumberOfPages。

富士通のドキュメントスキャナScanSnapはデフォルトでは、
Picturesフォルダの下にファイルを作るので、どれだけページを取り込んだか、なんかもシェルで取得できちゃう。

# Picturesディレクトリ以下のPDFの総ページ数を取得する
find ~/Pictures/ -name "*.pdf" | xargs mdls | grep kMDItemNumberOfPages | awk 'BEGIN{x=0}{x+=$3}END{print x}'
621

scansnap使ってみた


富士通のドキュメントスキャナ、scansnapを使ってみた。



たまった雑誌を処分したいのと、通勤の合間にPDFで購読ができるかな、
と思い、ネットで調べて出会ったのがこのスキャナ。

購入したのはScanSnap for Mac S510M で、
Adobe Acrobat Professional 8 が同梱されてる


とにかくすばらしいのは、
抜群に手数がかからない、ということ。


通常のスキャナなら、
 ・原稿片面につき、ふた開ける→原稿セット→ふた閉じる→ボタン押下→ふた開ける→次の原稿セット→・・・
 ・原稿片面で1データファイル

のところがScanSnapでは
 ・原稿セット(複数枚)→ボタン押下
 ・ボタン1回分で1ファイル


で、説明書読むのもそこそこに試してみたところ、
3時間で100ファイル、120MB、620ページ分取り込みできてしまいました。

3時間というのは、雑誌を裁断する手間も入ってるから、ちまちまやってもこれくらい、という数字。

なかなか優秀です。


他にいいな、と思ったのは・・・
 ・読み取り解像度が4段階選べる
   スピードと画質はトレードオフですが、一番スピードが速い場合でも字が認識できるよう、メニューがしっかりチューニングされています。

 ・紙づまりへの対処が楽
   100ファイル作るうち、4,5回紙づまりが発生したけども、対処はふたを開けるだけ。

 ・機体がコンパクト  

 ・ボタンが2つだけ
   電源ボタンもついてますが、使いません。

 ・A3サイズもスキャン可能
   ちょっと手間はかかりますが、A4の見開きもスキャンできます。ファイルも見開き状態でばっちり作ってくれる。



以上が、ファーストインプレッション。


やってることは十分ハイテクだけど、
操作性を例えるなら、写ルンです並、といえば伝わるでしょうか。


UI・デザインが秀逸なので
Macを選んで使っているひとなら、気に入ってもらえるはず。

2009年1月25日

PDFの紙印刷

引越の際に一度プリンタを手放して以来、プリンタを再度購入するかどうかで結構悩んでおります。

プリンタって案外使わないのよね。
場所取るし、インク補充したりしないといかんし。

そんなことをふつふつ思っていたところに、
「プリンタ買わなくていいよ」
背中を押してくれるようなサービスが、出現。

ローソンのコピー機でPDFが印刷できるようになっている件

コンビニでできるってのがポイント高いような気が。

新しく落としてきたマニュアルなんかを製本したり、
簡単にできちゃいそうですね。

2009年1月24日

Macの描画まわりで気になるソフトが登場

エクスポズやダッシュボードのアニメが滑らかに動くのは
裏で動いているQuartzCompositorのおかげで、これによってMacOS Xは、あたかもビデオミキサーのように複数の描画リソースを管理できるらしい。

最終的には画面に表示されていようがいまいが、エフェクトかかってようがかかっていなかろうが、個別のウィンドウをそれぞれインプットとしてデータを確保しているらしいっす。

■デスクトップをPhotoshopのレイヤーとしてキャプチャするソフト「Layers」

■日本語の解説


ウィンドウがオブジェクトとして扱えるっていうのは、まさにOSの恩恵なんでしょうな。

ダウンロードフォルダ下の日付フォルダをカラム表示時に最新順に表示したい件

長くてようわからないエントリタイトルになっております・・

SafariStandの日付別ダウンロード機能がとても便利で、
自分の中では、「これが無いとPCは使いたくない」
というくらい標準になっているのですが。

一点、むず痒い点がありまして、

というのも
Finderをカラム表示で使っている場合、最新のフォルダが一番下に作成されてアクセスしづらい
点がくるしい。

(これはSafariStandの問題ではなくて、MacOSの問題です、念のため。カラム表示でもソートオプションが使えれば良いのですが、調べた限りでは不可能なようす)

カラム派の人ならやはり、目的のファイルに→、→、→で到達したいですよね。

そんな人のために、日付フォルダ名を変更してむりやり最新順に表示させるスクリプトを書いてみました。(ニッチかなー?)
-----------------------

#!/bin/sh
# AddIndexForDownloads.sh
# SafariStandの日付別ダウンロード機能を使用していることが前提。
# カラム表示時にダウンロードフォルダにて最新のフォルダが上に来るようにしたい!
# →日付フォルダを、あたらしい順に索引をつけた名称に変更します。
#
# 参考:http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/awk/intro/node22.html

# シェルの実行場所となるディレクトリを指定
dir=~/Downloads
cd $dir

# 本シェルによって既にリネームされているフォルダがある場合、フォルダ名を元に戻す
for file in `ls . | egrep '*_\w\w\w\w\-\w\w\-\w\w$'`
do
mv $file ${file#*_}
done

# 日付フォルダに、逆順にインデックスをつける
ls . | egrep "^\w\w\w\w\-\w\w\-\w\w$" | tail -r | cat -b > tmp.$$
awk '{printf "mv %s %s_%s\n", $2, $1, $2}' tmp.$$ | sh

# 後片付け
rm -f tmp.$$

-----------------------

これを、ダウンロードディレクトリにフォルダが作成される度に呼出しするようにすればOK・・・のはず

フォルダアクションあたりで設定すれば良いのかな。ようわからんけど。


てか、カラムのソートオプションはOSでしっかり拡充してほしいところ。。。

2009年1月18日

外部接続して、データを取得するアプリを作る、ということで。
いままでおざなりにしてきていたネットワークの勉強をはじめる事に。

いくつか本を買ってきてみた。その雑感:

■これならわかる TCP/IP 入門の入門
TCPの、送信/受信のメカニズムの説明がわかりやすい。
ウィンドウ制御をトラックでの配送に例えたりして。

■基礎からわかるTCP/IP ネットワークコンピューティング入門

■コマンドで理解するTCP/IP

MacBook(Early 2008)のHDDを7200回転に換装する

使用しているMacBook(Early 2008)のデフォルトのHDDは5200回転の富士通製。
これを7200回転のHDDに交換してみた。

体感で多少速度が向上したように思える。
特に、Finderのカラム表示は応答が良くなった。

ベンチマークソフトで取得した結果:

■交換前
 Sequential 56.97 
  --Uncached Write  71.83 44.10 MB/sec [4K blocks]
  --Uncached Write  68.98 39.03 MB/sec [256K blocks]
  --Uncached Read   33.26  9.73 MB/sec [4K blocks]
  --Uncached Read   85.28 42.86 MB/sec [256K blocks]
 Random 23.45 
  --Uncached Write   8.68  0.92 MB/sec [4K blocks]
  --Uncached Write  53.25 17.05 MB/sec [256K blocks]
  --Uncached Read   40.85  0.29 MB/sec [4K blocks]
  --Uncached Read   82.20 15.25 MB/sec [256K blocks]

■交換後 Seagate Momentus 7200 320GB SerialATA
 Sequential 88.48 
  --Uncached Write 142.02 87.20 MB/sec [4K blocks]
  --Uncached Write 143.23 81.04 MB/sec [256K blocks]
  --Uncached Read   52.69 15.42 MB/sec [4K blocks]
  --Uncached Read   81.91 41.17 MB/sec [256K blocks]
 Random 32.67 
  --Uncached Write  10.21  1.08 MB/sec [4K blocks]
  --Uncached Write 156.93 50.24 MB/sec [256K blocks]
  --Uncached Read   89.54  0.63 MB/sec [4K blocks]
  --Uncached Read  144.81 26.87 MB/sec [256K blocks]

2009年1月13日

android端末G1初見

昨今話題になっているandroid端末G1の実機を見せてもらう機会があった。

いい感じに仕上がっている。

ぱっと見、黒の、マットな仕上がり。
高価なツルピカ感や、おもちゃのようなチープ感もない。

エンガジェットに写真がいくつか掲載されている。


リンク先には無いが、気になったのは端末背面のドローイング。
背面の半分くらいを覆うように、模様というには気の抜けた、
ドローイングというには控えめな画がかかれている。

内容は、ボコボコの立体感を表現しているかのような、敷き詰められた沢山の三角形と、androidのマスコットキャラクター。

色は、黒字に金一色。(というのは印象で実際は、赤〜黄色だったかも)

これをどう受け止めるかは、個人の印象が大きいと思う。


僕は、仏頂面でスノッブなハードウェア(スマートを謳ってる)にユーモアをドレスアップしている印象を受けた。

キャラクターを纏うとなるとどうしても子供じみた印象になりがちだけど、
うまい具合にバランスを取っていると思う。


・・と、ここまで書いてゲームボーイTシャツを思い出した。


この辺のニュアンスは、ゲームやアニメにリスペクトの念を持ちながら、
いわゆるアキバ系とはまたちょっと違うニュアンスを表現しているような気がする。

あまり時間がないので、この辺はまたあらためて掘り下げてみたい。