memo

minim

071124.jpg


このところprocessingのFFTライブラリ"minim"を使って作品を制作中。
師に頂いたコードを基に、とりあえず音を映像に反映させての表現を試みています。

某先輩に"blogはただの日記に終始するの?"的な助言を頂いたので
ここでひとつ、メモがてら今やっているコトを書いてみます。
間違いありましたればご指摘くださいませ。


上の画像は、その実験での産物です。


X軸 = 周波数
円の半径 = レベルになっているつもりです。

このminim 君ですが


fftLin.specSize(); で(513個に?)周波数帯に分けて
fftLin.getBand()  でその帯域ごとのレベルを吐き出してくれている模様。(黒円)


ってことは513個の円がまさに秒画されているのですが
僕のマシン、G4君ではちょい荷が重かったです。

そこで、周波数帯をもっと広くしてレベル平均を出すのに

fftLin.avgSize() で周波数帯を分けて
fftLin.getAvg()  分けられた帯域ごとのレベルを出すってのもできる模様です。(青緑円)
ついでに
fftLin.linAverages(); で周波数を何分割するか指定できるっぽくて
最大で256 、最小で1が指定できますが (指定した数-1)に分けられている感じです。



しかし、やっていながら何ですが
FFTをしても、スゴいのはマシンやったりライブラリ(プログラム)やったりするワケで
パフォーマンスや作品として何かスゴくなるわけじゃないと気がつきました。(voice.zeroの方が言ったのを聞いてですがw)
音をとったそれを、最終的にどう出力するかが一番の肝っちゃろうなと
目下苦心しております。


頑張ろー

gachapin-n

080329.jpg


今日は大学で、残り1ヶ月をきった展示に向けての準備...というか実験。


本筋は決まってきているのですが、
不確定要素が多くちょい不安やったりもしますが、イベント自体はめっちゃ愉しみなので頑張りたいところです!


そして、今回p5を少し触る機会があり、p5でプリンターを直接たたくというのを
やってみました。ちょっと感動したのでmemo。


御世話になりましたっ ↓
http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Programs;action=display;num=1160674179;start=0


戻り値が欲しいところなのですが
javaで書かれとるのでついていけないっていう現状は残念です。

void型 で定義されとるってことは、まんまじゃ無理とかいな??


そんで、扱うデータがテキストということで、
loadStrings() でテキストを読み込もうとしたところなんと.....失敗しました!


exampleではいけるのに

void set{
	String lines[] = loadStrings("list.txt");
}
void draw{
	println("there are " + lines.length + " lines");
	for (int i=0; i < lines.length; i++) {
		println(lines[i]);
	}

}

に書き直すとだめでした。
パスも間違ってないはずなのに....。



そこで、INFKさんに教えて頂いたところ
ソースのパスをフルパスにしたらなんと...通りました!
(ありがとうございました)

String lines[] = loadStrings("list.txt");
  ↓
String lines[] = loadStrings("/Users/user/Documents/Processing/sketch_080329b/data/list.txt");



こんなの知りませんでした。
うーん何でやろ。
void 使うとアプレットが書き出される場所が変わるのでしょうか。。


umm....半端コーダーですみません。
勉強せねば。
でも、就職活動もせなな。




!!

PCスピーカのアンプやらツマミを取って逆さにしたら
ガチャピンになりましたよ!

steps to action-Coding

080604.jpg


先日、アクションコーディングなるものを先輩や友人に教えて頂きました。
CBCNETでも紹介されてます。
"APIとしてProcessingを使用し、Rubyで動作するライブコーディング環境”
「映像のライブコーディングとかスゴそうダ!」ってことで、
流行りには疎い僕ですがコレを見たらやるっきゃないってことでチャレンジしました。
割とサクッと勧められたのですが、
Mac エンドユーザもいいとこな僕はヒーヒー言いながら何とか実装 (tatsu先生ありがとうございました)。せっかくなので辿った行程をメモ。

wikiに書いてあるまんまするだけなんですけどね(笑。良い勉強になりました。


環境:Mac OSX 10.4.11 PowerBook G4


STEP 1 .とりあえずxCode

恥ずかしながら今更です。
Mac OS X のインストールディスクから カスタムインストール。

参考にさせて頂きました↓
http://www7a.biglobe.ne.jp/~tzwada/Mac/xcode/index.html#Xcode-Tiger


STEP 2. JRuby をダウンロード
JRubyのDLはこちらから。
僕は調子に乗って最新の jruby-src-1.1.2 を落としたのですが
コンパイルするには ant のアップデートが必要やったので一手間増えました。
近道したい方は jruby-src-1.1.1 でも問題ないっぽいです。

落としたファイルは好きなとこに配置。僕は/Users/user に"Develop" フォルダを作ってそこに入れました。


STEP 2.5. ant をインストール。。
JRuby 1.1.2 の場合は ant を更新。
ターミナルを立ち上げて

ant -v

って打つ。
"Apache Ant version 1.7.0"よりver.が低ければ
apache-ant-1.7.0-bin.zip をここからダウンロード。

/usr/local/ に入れて解凍。
所有権の設定(?), エイリアスの作成ぐらいで後はPATHを通しただけ(かいな?)

参照元:THANKS!!
http://www.asceticmonk.com/blog/?p=388

ターミナルで以下を打つと、Finder で確認しながらできます。

不可視ファイル表示コマンド

defaults write com.apple.finder AppleShowAllFiles TRUE

Finder 再起動コマンド
killall Finder



zip の 解凍(unzip)はFinderでやってしまいましたがこんな感じでした。

xxxx:~ user$ cd Desktop 
	;;Desktopに移動

xxxx:~/Desktop user$ sudo sh
Password:
;;権限の認証(?)

sh-2.05b# mv apache-ant-1.7.0 /usr/local/
;;apache-ant-1.7.0 を /usr/local/に移動

sh-2.05b# cd /usr/local/
;;/uer/localに移動

sh-2.05b# ls
apache-ant-1.7.0 lib
bin share
;;local ディレクトリをリストで表示(現在地確認の為だけ)

sh-2.05b# chown xxx:xxx apache-ant-1.7.0
chown: xxx: Invalid argument
;;apache-ant-1.7.0 ディレクトリの所有者を自分に設定(?)

sh-2.05b# ln -s apache-ant-1.7.0 ant
;;apache-ant-1.7.0 のエイリアス を antという名前で作成


STEP 3. jruby インストール。。
/Users/use にあるテキストエディタで".bash_profile"というファイルを開き(なければ作り)以下の2行を 追加。

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
export ANT_HOME=/Developer/Java/Ant

※ant を上記の方法で更新した際は2行目はこちら
export ANT_HOME=/usr/local/ant

※.bash_profile は再起動しないと読み込まれない鴨。


JRubyのソースを解凍して、build_libの中にあるjunit.jarを/Developer/Java/Ant/lib/にコピー。
※ant を上記の方法で更新した際は /usr/local/apache-ant-1.7.0/lib/ にコピー。
ターミナルでjruby-1.1.2/ まで移動。(build.xmlがあるディレクトリ)
僕の場合は 。。

cd Develop/jruby-1.1.2

あとは

ant

と打てばコンパイルしてくれます。

参照させて頂きました↓
http://yebo-blog.blogspot.com/2007/06/jruby-onto-rails-on-mac-os-x.html
http://d.hatena.ne.jp/t3kai/searchdiary?word=%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB


STEP 4. PATH 設定
".bash_profile" を開き、以下2行を追加。

export JRUBY_HOME=/Users/user/Develop/jruby-1.1.2
export PATH=$PATH:$JRUBY_HOME/bin

これで、ターミナルで

jruby -v

って打ってjrubyのバージョンが表示されれば成功ですねん!
コマンドについてはこちらを参照させて頂きましたー。
http://www.k-tanaka.net/unix/
http://homepage.mac.com/akihide/iblog/C1557102128/E1968370044/index.html




間違いなく過去最長エントリ....続きは明日。
要らない行程があったり、必要な行程が抜けているかもしれませんが
とりあえず何の責任もおえませんのでででっ。

steps to action-Coding2

080613.jpg


遅れに遅れましたが、前回の続きです。


STEP 4. Processing インストール
ここからダウンロードしーのフォルダごと /Applications に入れーのですね。はい!


STEP 5. チェケラ (svn的な意味で
次は"チェックアウト" 。
トーシロな僕には意味が分からなかったのですが
平たくいえば、データをCVSとかSubversion(SVN)とかのバージョン管理システムから
サーバからローカルに取ってくるってところで良いんでしょうかねー?
とりあえずこちらからバイナリパッケージを落としてインストールしました。
が!!
CUIでうまいことチェックアウトできず!!もしや Martin Ott は違うとかいな!?
ってことで、助けてくれたソフトがSCPlugin
Finderで使えるのが便利過ぎです。
インストールしたら、ローカルにフォルダを作って右クリックで
Subversion >> checkOut でチェケラ。
その際に出現するファイルダイアログでは
Repository URL は
http://action-coding.googlecode.com/svn/trunk/
Username と password は googleのアカウントのを入れましった。

参考させて頂きました。
http://shin-ishimaru.cocolog-nifty.com/blog/2007/11/macfindersvn_cl_bd1e.html


STEP 6. processingのパスを設定
続いてもwiki通り svn/trunk/config.yaml編集。
/Applications に普通に入れていれば編集しなくて良い感じですね。
っで、準備完了!!


STEP 7. レッツ run。
TextMate から実行(持ってないのでやってません)
or
svn/trunk/run.command をダブルクリックで実行。
or
コマンドで

jruby aco.rb
を実行です。

実行方法にはオプションがあるそうで
VJで使う時とかは

jruby ../../../../aco.rb -d1  full_screen_app.rb

とすると繋いだ別のウィンドウにフルスクリーンで表示されまっす。







wiki 通りやっとるだけやーん!しかも紆余曲折!更に若干うろ覚えっという
しどけなさですが.....以上です!
間違っている点等ありましたらご指摘頂ければ...と思います。

環境:Mac OSX 10.4.11 PowerBook G4
ruby 1.8.6 (2008-06-03 rev 6586) [ppc-jruby1.1.2]jruby1.
processing 0135 で正常に動作してます。



バグ見つけて wiki で報告できるぐらいいじり倒したいですなー。
ruby 勉強せなやななな.......。

oF

080625.jpg


機会、というよりも挽回の一環で、openFrameworks 試してみました。
聞いたことがある様な...程度で何のことか、良くわからなかったのですが
processing みたいなノリが c++ でできる様にした library っといった感じでしょうか?
c++ ってことで 処理速度 もダテじゃないぜ!っぽいです。


現在はプレ リリースってことで、サイトから素直にメーリスに加りdownload して、サンプルをいじる。セットアップの仕方は本家サイトに親切丁寧に書いてあるので安心してできました。


まず Xcode 2.4.1 以上じゃないとダメなのでappleからダウンロードしてアップデート。僕のマシンは Leopard じゃないので Xcode 2.5 。


あとは of_preRelease_v0.05_xcode/apps/examples/ の中の任意のサンプルの中の
openFrameworks.xcodeproj をXcode開いて、"ビルドして実行"。


サンプルを改変したければsrc/testApp.cpp 内を編集。
上の画像はタイポのサンプルなのですが、読み込むフォントを加えたりする際は
ヘッダーファイル(src/testApp.h) も書き足してやるとウマくいきました。

openGL グラフィックもアニメーションも、音も、タイポもQTも、
イベントとったりもほとんどサンプルで試せて楽しんだだけで
1からどう使うかとかはよく分かりません(笑。

glut.plist

080703.jpg



メモ!!


前に、openframeworksで書かれたレーザーポインタでビルにボムる.appで遊ぼうと試みましたところ、途中でフリーズして、その後から、そのアプリもoFのサンプルも、立ち上がらんなー...なんでやろー?ってなりましった。

原因は、テキトーに環境設定にチェックしたっちゅうだけやったのですが
of で書かれたのはデフォルトだと、みんな同じ設定ファイルを読んでいるってのを
やっとこそ知りました。



Preferences設定ファイル↓
user/Library/Preferences/com.apple.glut.plist

"command + Q" だと設定は上書きされて
"esc"でやめると上書きされないんですな!

英語解読は怠るべからずですね。。

term

080927.jpg



いやに今月は長く感じるのはなんでだろーか。。。
今週はチームメイトのmzumt氏と名古屋、大垣と行ってきました。
大垣ビエンナーレ面白かったです。商店街を散策しながら巡るスタイルは密閉空間で何作品と連続対面するよりも余裕があって、途中に水まんじゅう食べたりできるのがすんごく良かった。
快晴だったのも恵まれてました。
(写真は大垣城)
大垣ビエンナーレは明日までだそうです。





あと、スティキーズのメモを減らしたいので、すごい脈絡ないけどメモ!!




FLEX インストール

1.ダウンロードする
http://opensource.adobe.com/wiki/display/site/Home

"I have read the Adobe Flex 3 SDK License, and by downloading the software listed below I agree to the terms of the agreement."にチェックボックスにチェックするとDLできるようになる。

2.解凍して、任意のディレクトリに移す。

3.パス通す。
~/.bash_profileを編集(無い人は作る)
PATH=$PATH:/Developer/SDKs/flex/bin


完了!!!


terminal で mxmlc xxx.as でコンパイルですね。
こちらが詳しく紹介せれています。ありがとうございました。



max.msp 4.5以降のoscオブジェクトの在処。
http://archive.cnmat.berkeley.edu/MAX/old/otudp.3.0.2.OSX.sit

max5なご時世に書く必要性は微塵もないんやろうけど、リンク切れとかで結構迷ったので
一応。。。


the gen

081008.jpg

先日、mzmt氏にisadoraがアップデートしたと教えてもらったので久々に映像ジェネジェネ遊び。適当感が楽しいなー。
controlのMonitorの使い方がわかったので一応のメモ。
バインディングのさせかたが他のGUIオブジェクトと違うのがわかりにくいぞ..。



Actorのvideo outもしくはrgb out アウトレットから赤線を引っ張って画像の黄色い部分でクリック。するとコントロールIDを設定できるのでリンクさせたいMonitorのコントロールIDと同じ番号にすれば良し!


でも、またしばらく使わんっちゃろうな。


convoy

081119.jpg

いつのまにか寒さも本気になってきたってばよ。
やたら葉っぱがつむじ風に舞っているのをみるので、木の葉の里の人も忙しいのだなとしみじみ思う今日このごろです。最近、ついにバイトを始めたので自由な時間が激減したのですが「今やらないかん感」が増したせいか、卒制は割と進んでいる気がします。


今日は今週末のワークショップのセットアップを少しお手伝いしたのですが、p5がなにやらパッケージングされていて、ちょいびびりました。p5のライブラリーの置き方を一応のメモ。


processing.app を右クリックで"パッケージの内容を表示"で
Contents/Resources/libraries

こん中に minimとか、video 標準ライブラリがありましたよと。
でも、
書類/processing/libraries とかに置いても読み込んでくれるみたいでどっちが良いっちゃろうねー。という話でした。


明日は朝早いので超ハンパやけどとりあえず10日ぶりの更新。


司令官の正体は確かM.T氏。

dynamicsArray

090115.jpg


最近、”こんな大学生にはなりたくないなモデル”にまさになっている様な。
正月はTVでやっていたバックトゥーザフゥーチャーを観ていて、正月過ぎたら生活の根幹をバイトが占めているという感じ。
休む為に働き、働く為に休み...とはよく言ったものだなー。

そんなこんなでボツボツと進めている卒業制作。
動的配列についてほんの少しメモ。

processing(というかjava?)では、ArrayList というクラスがあることを以前、我らがtatsu氏に習い、oF(というかC++?)を調べてみると、vectorというクラスが使えるそうな。
動的に配列の数を変えられるので、for文で配列の数だけ回せるというのはよいですな。


vector array1;
vector > array2;

っという感じでヘッダーファイツで定義すれば、動的配列に動的配列という二次元とかでもいけるので便利と思うのです。取り出すときは

for (int i=0; i < array2.size(); i++) {
for (int j=0; j < array2[i].size(); j++) {
ofCircle(i,j,array2[i][j]);
}
}

でできます。

openframeworksでの良いサンプルがヘッダの馬がかわいいこちらのサイトにございました。
http://www.ecole-art-aix.fr/article3011.html

C++でのvectorの解説はこちらの御世話になりました。
ありがとうございます。


しかし、配列for分でアクセスするのと、イテレータでアクセスするのとどう違うんかなー。と思いながらvector実装したデバッグ用画面のキャプチャ。

endpath()

090709.jpg

フライヤ作りでボツになったもの。
最初はp5のPDF書き出しライブラリでやろうとしたけど
ハッとnodeboxを思い出して変更。
インタプリンタに慣れない僕ですが
グイGUI数値がいじれて、こういう時は特に具合が良いなぁ。
sinとか使う時は要import
from math import radians, sin, cos
いい加減過ぎて結局ボツやどさっ。


あと、全然関係ないですけど
英語圏でよく見るコレ→ :)
smileのマークって最近知りました。
左に首を傾けなわからんやん。

monoSpace font

091110.jpg


結局出番なかったけども、せっかくリストしたので等幅フォントをいくつかメモ。



  • Andale mono

  • HelvMono

  • Osaka

  • Monotype sorts

  • Ayuthaya

  • Courier

  • Courier New

  • LetterGothic std

  • Lucida Sans Typewriter

  • monaco

  • MS ゴシック

  • MS 明朝

  • OCR A std

  • Orator std

  • Prestige Elite std

  • Sim Sun

  • Webdings

  • #PCMyungjo


画像にある方法でいちいち判別してしまったのですが
フォントブック or フォントパネルでうまいこと
フィルタする方法とかあったら是非知りたいです。

google IME shortCut

100725.jpg



Mac で Google IME の入力ソースを変更する時のショートカットキーを変更します。
想定しているのはMacノートのユーザでUSキーボードにしてしまった人。



1./Library/Input Methods/GoogleJapaneseInput.app/Contents/Info.plist を開きます。
2.tsInputModeKeyEquivalentModifiersKey と tsInputModeKeyEquivalentKey を設定します。
3.再起動します。



プレーンテキストエディタで、英語入力モードにするショートカットを変更する場合の例。
デフォルトが"Control + Shift + ;" を "Control + w" に変更します。


ビフォー!! ! (多分こんな感じのデフォルト)
 Info.plist
Line:
143: <key>com.apple.inputmethod.Roman</key>
144: <dict>
145: <key>TISInputSourceID</key>
....
157: <key>tsInputModeKeyEquivalentKey</key>
158: <string>;</string>
159: <key>tsInputModeKeyEquivalentModifiersKey</key>
160: <integer>4608</integer>
....

アフター!!!
 Info.plist

Line:
143: <key>com.apple.inputmethod.Roman</key>
144: <dict>
145: <key>TISInputSourceID</key>
....
157: <key>tsInputModeKeyEquivalentKey</key>
158: <string>W</string>
159: <key>tsInputModeKeyEquivalentModifiersKey</key>
160: <integer>4096</integer>
....

バージョンがアップデートされると、デフォルト値に戻るようなのでメモ。
他のショートカットキーとバッテイングした時や、どっか間違っちゃた〜な時は
何かしら良くないことが起こるかもしれません。
そのうち、普通に設定できるようになるんでしょうけどね。
OS10.6 の googleIME 0.12.410.101 では動作中。

この設定値について詳しく知りたい!!という方には
こちらのサイトが丁寧に記してらっしゃいます。
http://park15.wakwak.com/~concordia/cocoa_break/dev/src/ADCSamples/NumberInput_IMKit_Sample/index03.html


ここからはただの日記。


そもそもこんな七面倒くさいことをしてるのは、
「キーボードに印字された日本語って意味ないやん!」と深く考えずに色気づいてUSキーボードにしたことが発端。
いざ使ってみると、英数キー&かなキーが無いせいで上記の対策と、記号キーの場所も1から覚えなおしの刑を強いられているであります。
恐るべしUSキーボード。